在vb.net中关闭msaccess.exe

在vb.net中关闭msaccess.exe,vb.net,ms-access,Vb.net,Ms Access,我正在创建一个vb.net程序。我有一个按钮,单击该按钮将浏览MDB文件(代码1),选中该按钮后,将执行一些代码行,将access数据库中的所有宏填充到一个组合框中(代码2)。我遇到的问题是MSACCESS.EXE进程在代码2运行后没有关闭。我尝试过几种不同的方法,比如objAccess.CloseCurrentDatabase(),但都不起作用。。你知道我做错了什么吗 代码1 Private Sub CommandDBPath_Click(ByVal sender As System.Obje

我正在创建一个vb.net程序。我有一个按钮,单击该按钮将浏览MDB文件(代码1),选中该按钮后,将执行一些代码行,将access数据库中的所有宏填充到一个组合框中(代码2)。我遇到的问题是MSACCESS.EXE进程在代码2运行后没有关闭。我尝试过几种不同的方法,比如objAccess.CloseCurrentDatabase(),但都不起作用。。你知道我做错了什么吗

代码1

Private Sub CommandDBPath_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandDBPath.Click
    Dim dialog As New OpenFileDialog()
    dialog.Filter = "Access database (*.mdb)|*.mdb"
    If DialogResult.OK = dialog.ShowDialog Then
        TextDBPath.Text = dialog.FileName
    End If
    SelectDatabaseMacro()
End Sub
代码2

Private Sub SelectDatabaseMacro()
    Dim objAccess As Object  '' Access.Application
    Dim i As Long
    Dim path As String
    path = TextDBPath.Text
    objAccess = CreateObject("Access.Application")
    objAccess.OpenCurrentDatabase(path)
    For i = 0 To objAccess.CurrentProject.AllMacros.Count - 1
        TextReportMacro.Items.Add(objAccess.CurrentProject.AllMacros(i).Name)
    Next
    objAccess.CloseCurrentDatabase()
    objAccess = Nothing

End Sub

突然扼杀这一进程

For Each p As Process In Process.GetProcesses()
    If p.ProcessName = "MSAccess" Then
        p.Kill()
    End If
Next
或者,要想获得更“优雅”的方法,请尝试以下方法

进程必须具有windows界面(窗口)才能工作


突然扼杀这一进程

For Each p As Process In Process.GetProcesses()
    If p.ProcessName = "MSAccess" Then
        p.Kill()
    End If
Next
或者,要想获得更“优雅”的方法,请尝试以下方法

进程必须具有windows界面(窗口)才能工作


尝试在
objAccess.CloseCurrentDatabase()之后添加
objAccess.Quit
语句

尝试在
objAccess.CloseCurrentDatabase()之后添加
objAccess.Quit
语句

objAccess.Quit也无法解决此问题。。如果这很重要,那么使用Access 2010.objAccess.Quit也无法解决此问题。。使用Access 2010可能不是最好的方法,但在代码1中的SelectDatabaseMacro()之后添加可能不是最好的方法,但在代码1中的SelectDatabaseMacro()之后添加可能有效