将Access accdb查询拉入Excel 2007错误3265

时间:2013-05-03 17:06:13

标签: sql database excel-vba vba excel

新手在这里。在互联网上找到以下代码。它已存在多年。我已经为我的应用程序定制了它。更新了对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  

1 个答案:

答案 0 :(得分:0)

好的我明白了。我不得不在Access Query中添加一个Like语句。我不知道为什么现在一切正常。