标题:VB ACCESS数据库关不掉
只看楼主
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
结帖率:91.22%
已结贴  问题点数:10 回复次数:6 
VB ACCESS数据库关不掉
代码:
Dim New_mdb As Object    '定义对象
Private Sub Command1_Click()
'New_mdb.Application.Quit acQuitSaveAll
'WScr.application.quit acquitsaveall
New_mdb.Close
End Sub

Private Sub Form_Load()
Dim acc As String
Dim strpath As String
Dim mypassword As String
Dim Mmdb As String
Dim Fform As String
Dim WScr As Object
On Error Resume Next
acc = "Database3"    '数据库名
Mmdb = ".accdb"  '数据库类型
Fform = "窗体1"  '登陆窗体名

strpath = App.Path & "\" & acc & Mmdb    '数据库路径

Set New_mdb = CreateObject("access.application")
Set WScr = CreateObject("WScript.Shell")
''''启用所有宏
WScr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\" & New_mdb.Version & "\Access\Security\VBAWarnings", _
        "00000001", "REG_DWORD"
New_mdb.OpenCurrentDatabase strpath, False, mypassword   '在新文件中打开数据库文件
New_mdb.UserControl = True    '用户激活新打开的文件
New_mdb.DoCmd.OpenForm Fform    '     '打开数据库的窗体,注意access不可以设置启动窗体
Set WScr = Nothing
Set New_mdb = Nothing
End Sub
我现在可以用VB打开ACCESS数据库,可是无法关掉。
提示:


请指教,谢谢!
搜索更多相关主题的帖子: ACCESS 数据库 Dim String 打开 
2019-07-28 19:41
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:5 
代码好像有些矛盾,在Private Sub Form_Load()中New_mdb已经释放,Set New_mdb = Nothing  再在Private Sub Command1_Click()中使用应该有问题。
2019-07-28 20:05
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
得分:0 
谢谢!Set New_mdb = Nothing
我把这条语句挪到按钮单击事件中
New_mdb.Close
Set New_mdb = Nothing
也不行,出错:

2019-07-29 08:12
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:5 
Access.Application  没有 Close 方法 应该是CloseCurrentDatabase 关闭现有文件,大致的操作如下

程序代码:
Dim New_mdb As Access.Application
Private Sub Command2_Click()

   Set New_mdb = CreateObject("access.application")
   New_mdb.UserControl = True

   New_mdb.NewCurrentDatabase App.Path & "\ggg.mdb" 'new create mdb

    '''''''''''''Other code
End Sub

Private Sub Command3_Click()
    New_mdb.CloseCurrentDatabase 'close  mdb

    New_mdb.Quit 'close access
    Set New_mdb = Nothing 'delete object
End Sub
2019-07-29 10:26
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
得分:0 
回复 4楼 jklqwe111
谢谢!OK了。你是个大神
2019-07-29 10:50
china_shy_wz
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-6-5
得分:0 
Private Sub Command3_Click()
if  New_mdb.state=1 then
    New_mdb.CloseCurrentDatabase 'close  mdb

    New_mdb.Quit 'close access
    Set New_mdb = Nothing 'delete object
endif
End Sub
2020-11-12 17:25
teshubancai
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2017-5-28
得分:0 
回复 4楼 jklqwe111
辛苦了!
2021-01-19 09:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496076-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.113638 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved