【发布时间】:2014-05-13 21:11:15
【问题描述】:
我正在尝试使用 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")
编辑 - 我已将“数据源...”更改为“数据源...”并安装了 2007 Office System 驱动程序,但这对我的事业没有帮助。
编辑 #2 - 今天再次查看上面的代码。我解决了这个问题。我的代码不是“数据源”,而是“日期源”。哎呀。更新的代码,有效:
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")
【问题讨论】:
-
你有“日期来源”,是正确的还是只是一个错字。你见过这个吗? kb.tableausoftware.com/articles/knowledgebase/…
-
如果您从使用OleDbConnectionStringBuilder Class 开始,您将避免使用“日期源”而不是“数据源”之类的拼写错误。此外,C: 的根目录是放置文件的特别糟糕的地方。
-
@ChrisHaas 谢谢,我没有注意到这一点,但即使我改变了它 - 它仍然给了我同样的错误。我想我必须下载您提供的链接中的软件?也感谢安德鲁。
-
我安装了 2007 Office System 驱动程序,但这也无济于事。原谅我的无知,但如果我没有 con.open 代码等,我的数据库还能运行吗?没有这条线似乎运行良好,但显然这对我不利,因为我不知道数据库是否“打开”。
-
您是否应该在
dblocation的结尾和databaseprovider的开头之间留一个空格?