gpt4 book ai didi

excel - VBA - 无法找到 accdb 格式的提供程序

转载 作者:行者123 更新时间:2023-12-03 02:52:54 25 4
gpt4 key购买 nike

使用下面的代码,当找不到运行提供程序时,我收到以下错误,下面的代码是从网上复制和编辑的,它以前使用.mdb文件,但我尝试将其更改为.accdb,因为这是我的格式需要它。我正在尝试制作一个宏,在运行时将某些单元格复制到数据库中,然后添加到其中。

我收到此错误

 run-time error "3706"
Provider cannot be found it may not be properly installed

-

Const TARGET_DB = "testdb.accdb"

Sub AlterOneRecord()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Dim MyConn
Dim lngRow As Long
Dim lngID As String
Dim j As Long
Dim sSQL As String

'determine the ID of the current record and define the SQL statement
lngRow = ActiveCell.Row
lngID = Cells(lngRow, 1).Value

sSQL = "SELECT * FROM tblPopulation WHERE PopID = " & lngID

Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.path & Application.PathSeparator & TARGET_DB

With cnn
.Provider = "Provider=Microsoft.ACE.OLEDB.12.0;"
.Open MyConn
End With

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:=sSQL, _
ActiveConnection:=cnn, _
CursorType:=adOpenKeyset, _
LockType:=adLockOptimistic

'Load contents of modified record from Excel to Access.
'do not load the ID again.
For j = 2 To 7
rst(Cells(1, j).Value) = Cells(lngRow, j).Value
Next j
rst.Update

' Close the connection
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub

有更简单的方法吗?或者我应该尝试解决这个问题?

最佳答案

您缺少的是数据库文件的完整连接字符串。

(More about connection string)

我给你一个粗略的想法,通常适用于我的代码:

删除代码中的这一行:

.Provider = "Provider=Microsoft.ACE.OLEDB.12.0;"

改用这个:

.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;"

或者您可以使用这个:

.Provider = "Microsoft.ACE.OLEDB.12.0"    

欲了解更多信息,您可以查看this w3schools website .

关于excel - VBA - 无法找到 accdb 格式的提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18206396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com