新手在这里。在互联网上找到以下代码。它已存在多年。我已经为我的应用程序定制了它。更新了对MS Office 12.0访问数据库引擎库的引用。我不断在.Parameters线上得到3265错误。查询在Access中运行正常,我已经能够使用此代码引入非参数查询。已检查拼写确定。参数中的“Rez ID”是别名。实际的标题是AIANHH。尝试了别名和实际航向的所有组合,但仍然在.Parameter上得到3265 由于Excel中的特定格式,不想进行推送。试图避免MS Query,因为我已经在Access中正常运行了。我有很多查询,不想重新开始使用MS Query。我注意到的唯一区别是在Access中,标准格式为:[“Rez ID”]尝试移动[]和“”没有成功。看起来我已经非常接近让这个工作,但无法克服困难。任何帮助将不胜感激。
Sub RunParameterQuery()
'Step 1: Declare your variables
Dim MyDatabase As DAO.Database
Dim MyQueryDef As DAO.QueryDef
Dim MyRecordset As DAO.Recordset
Dim i As Integer
'Step 2: Identify the database and query
Set MyDatabase = DBEngine.OpenDatabase _
("C:\Users\Phil\Documents\Indians\Population & Employment\2010 Population\Census_Data_Set\MS2007_Files\2010_AIANSF_a_1_2_6_8_9_10.accdb")
Set MyQueryDef = MyDatabase.QueryDefs("Reservation_TTRACT")
'Step 3: Define the Parameters
With MyQueryDef
.Parameters("[Rez ID]") = Range("D3").Value
'.Parameters("[CHARITER]") = Range("D4").Value
End With
'Step 4: Open the query
Set MyRecordset = MyQueryDef.OpenRecordset
'Step 5: Clear previous contents
Sheets("Sheet1").Select
ActiveSheet.Range("A6:K10000").ClearContents
'Step 6: Copy the recordset to Excel
ActiveSheet.Range("A7").CopyFromRecordset MyRecordset
'Step 7: Add column heading names to the spreadsheet
For i = 1 To MyRecordset.Fields.Count
ActiveSheet.Cells(6, i).Value = MyRecordset.Fields(i - 1).Name
Next I
MsgBox "Your Query has been Run"
End Sub
答案 0 :(得分:0)
好的我明白了。我不得不在Access Query中添加一个Like语句。我不知道为什么现在一切正常。