【发布时间】:2019-11-17 17:44:36
【问题描述】:
我想从 Excel 向 Access 数据库发送请求(查询)。但是当我的请求以链接表为目标时,它会触发 3021 错误。但是,当我在 Access 中运行相同的请求时,请求编辑器(动态集)显示 1300 行。
我已经测试了各种解决方案:
-
我尝试使用
执行请求conObj.execute(SQLString)
-
然后用下面的,同样的错误
RecordSet.Open SQL, "DsnODBC"
-
终于有了
RecSet.Open SQL、conn、adOpenForwardOnly、adLockReadOnly、adCmdText
但是没有任何效果;每次我在这一行遇到错误时
LesResult = RecSet.GetRows()
'=========Instansiation des objets=========' 'init object
Set RecSet = New ADODB.recordset
Set conn = New ADODB.Connection
'=========================================='
'===========Connection à la base===========' 'DB connect
conn.ConnectionString = ThisWorkbook.leControler.strConnectString
conn.Open ThisWorkbook.leControler.strConnectString
'=========================================='
Select Case HerbierAdmin.ActiveAction
Case "PM":
[Somme code]
SQL = "SELECT SAP_ClassItems.[Plan de montage] "
SQL = SQL & "FROM SAP_ClassItems "
SQL = SQL & "WHERE ((SAP_ClassItems.[Plan de montage] Like 'PM 21S *'));"
Debug.Print SQL
Set RecSet = conn.Execute("SELECT SAP_ClassItems.[Plan de montage] FROM SAP_ClassItems WHERE ((SAP_ClassItems.[Plan de montage] Like 'PM 21S *'));")
LesResult = RecSet.GetRows() 'error here
RecSet.Close
For i = 0 To UBound(LesResult, 2)
Me.ListeBox.AddItem (LesResult(0, i)) 'add result to drop down box
Next
预期结果:查询结果可以添加到下拉列表中。
【问题讨论】:
-
您将 lesresult 定义为什么?
-
我将其定义为变体