1

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

1 回答 1

0

好的,我想通了。我必须在访问查询中添加一个 Like 语句。我不知道为什么,但现在一切正常。

于 2013-05-05T17:21:54.770 回答