OLEDB连接无法连接到Access 2013数据库。

3

我正在尝试使用OLEDB连接将我的数据库加载到Visual Basic程序中。 但是,我收到了这个错误:“找不到可安装的ISAM。”

我正在使用Microsoft Access Database 2013。 据我所知,12.0是正确的版本。

这是我的代码:

    Dim con As New OleDb.OleDbConnection
    Dim databaseprovider As String
    Dim dblocation As String
    databaseprovider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
    dblocation = "Date source = C:\HotelBookingDatabase.accdb"
    con.ConnectionString = databaseprovider & dblocation
    con.Open()
    MsgBox("open")
    con.Close()
    MsgBox("closed")

编辑 - 我已经将“Data source...”更改为“Data Source...”,并安装了2007 Office System驱动程序,但这并没有帮助我的事业。

编辑 #2 - 今天再次查看上面的代码。我找出了问题所在。我的代码中有“DATE Source”而不是“Data Source”。糟糕。更新的代码如下所示:

        Dim con As New OleDb.OleDbConnection
        Dim dbprovider As String
        Dim dbsource As String
        dbprovider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
        dbsource = "Data Source = C:\HotelBookingDatabase.accdb;"
        con.ConnectionString = dbprovider & dbsource
        con.Open()
        MsgBox("ok")
        con.Close()
        MsgBox("bye")

你有“date source”,这是正确的还是打错了?你看过这个吗?http://kb.tableausoftware.com/articles/knowledgebase/resolving-could-not-find-installable-isam-error - Chris Haas
2
如果您使用 OleDbConnectionStringBuilder 类 开始,您将避免出现 "Date Source" 而不是 "Data Source" 等打字错误。此外,C: 的根目录是放置文件的特别糟糕的位置。 - Andrew Morton
@ChrisHaas 谢谢,我没有注意到,但即使我改变了它 - 它仍然给我相同的错误。我想我必须下载你提供的链接中的软件?也谢谢Andrew。 - Hectic
我安装了2007 Office系统驱动程序,但这也没有帮助。请原谅我的无知,如果我没有con.open代码等,我的数据库是否仍然能够正常运行?它似乎在没有这行代码的情况下运行良好,但显然对我来说并不好,因为我没有指示数据库是否“打开”。 - Hectic
你应该在dblocation的末尾和databaseprovider的开头之间留有空格吗? - Brian Hooper
@BrianHooper,不幸的是我仍然得到相同的错误。 - Hectic
1个回答

1
我已经解决了这个问题。
我把我的代码改成了这样:
Dim con As New OleDbConnection("Provider=MICROSOFT.ACE.OLEDB.12.0; Data Source=C:\HotelBookingDatabase.accdb")

        con.Open()
        MsgBox("ok")
        con.Close()
        MsgBox("bye")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接