2013-05-03 96 views
1

新手在這裏。在互聯網上找到以下代碼。它已存在多年。我已經爲我的應用程序定製了它。更新了MS Office 12.0訪問數據庫引擎庫的參考。我一直在.Parameters行出現3265錯誤。該查詢在Access內運行良好,我已經能夠使用此代碼拉入非參數查詢。檢查拼寫正常。參數中的「Rez ID」是一個別名。實際的標題是AIANHH。已經嘗試了別名和實際標題的所有組合,但仍得到3265 at。參數
由於Excel中的特定格式,不想執行推送。試圖避免MS Query,因爲我已經在Access中有一切正常工作。我有很多查詢,不想從MS Query重新開始。我注意到的唯一區別是,在Access中,條件格式爲:[「Rez ID」]試圖移動[]和「沒有成功。似乎我很接近讓這個工作,但無法克服駝峯。任何幫助,將不勝感激。將Access Access accdb查詢導入Excel 2007錯誤3265

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

您是否試圖在where語句中添加參數?你寫出的實際查詢是什麼? – scott 2013-05-03 17:52:44

+0

查詢是訪問,並在訪問SELECT DISTINCT aiangeo.SUMLEV工作正常,AIANSF_Segment_031.CHARITER,aiangeo.AIANHH,aiangeo.TTRACT,AIANSF_Segment_031.PCT0030001,AIANSF_Segment_031.PCT0040001,AIANSF_Segment_031.PCT0030002,AIANSF_Segment_031.PCT0040002,AIANSF_Segment_031.PCT0030106, AIANSF_Segment_031.PCT0040003 FROM(AIANSF_Segment_031 INNER JOIN aiangeo ON AIANSF_Segment_031.LOGRECNO = aiangeo.LOGRECNO)INNER JOIN AIANSF_Segment_01 ON aiangeo.LOGRECNO = AIANSF_Segment_01.LOGRECNO WHERE(((aiangeo.SUMLEV)= 「250」)AND((aiangeo.AIANHH )= [「Rez ID」])); – user2347038 2013-05-03 23:24:26

+0

我是新來這個論壇,所以仍然試圖找出語法我只是想從MyQueryDef從Excel中調用查詢 – user2347038 2013-05-03 23:28:43

回答

0

好吧我想通了。我不得不向Access Query添加一個Like語句。我不知道爲什麼,但現在一切正在工作。