注册 登录
编程论坛 VB6论坛

VB ACCESS数据库关不掉

chen3bing 发布于 2019-07-28 19:41, 3067 次点击
代码:
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数据库,可是无法关掉。
提示:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

请指教,谢谢!
6 回复
#2
jklqwe1112019-07-28 20:05
代码好像有些矛盾,在Private Sub Form_Load()中New_mdb已经释放,Set New_mdb = Nothing  再在Private Sub Command1_Click()中使用应该有问题。
#3
chen3bing2019-07-29 08:12
谢谢!Set New_mdb = Nothing
我把这条语句挪到按钮单击事件中
New_mdb.Close
Set New_mdb = Nothing
也不行,出错:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#4
jklqwe1112019-07-29 10:26
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
#5
chen3bing2019-07-29 10:50
回复 4楼 jklqwe111
谢谢!OK了。你是个大神
#6
china_shy_wz2020-11-12 17:25
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
#7
teshubancai2021-01-19 09:51
回复 4楼 jklqwe111
辛苦了!
1