我正在嘗試做一個循環,將更新表清理與表DataSelect的源代碼,如果條件與DataSelect表匹配。標準示例如果年份在2012年至2011年之間,Channel等於TM且MRC介於5和10之間。我創建DataSelect以容納所有不同類型的條件,我希望程序循環遍歷每個條件分配清理源代碼。到目前爲止,我總是得到一個「參數太少,期望1.運行時錯誤3061」。任何幫助將不勝感激。如何做一個更新查詢循環 - 訪問
感謝, 尼基
Private Sub doDataSegm_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL, strSearch, strReplace As String
Set db = CurrentDb()
Set rs = db.OpenRecordset("dataselect", dbOpenTable)
If rs.RecordCount = 0 Then Exit Sub
rs.MoveFirst
For i = 1 To rs.RecordCount
strChan = rs("Chan")
strDataCode = rs("code")
strMrcYrLow = rs("mrcyr_low")
strMrcYrhigh = rs("mrcyr_high")
strMrcLow = rs("mrc_low")
strMrchigh = rs("mrc_high")
strSQL = "UPDATE Cleaned SET [cleaned].[datacode]= " & _
strDataCode & " where [CLEANED].[CHANNEL] Like '" & strChan & _
"' AND [CLEANED].[MRC_YEAR] Between '" & strMrcYrLow & _
"' And '" & strMrcYrhigh & "' AND CLEANED.MRC Between " & _
strMrcLow & " And " & strMrchigh & ";"
db.Execute strSQL, dbFailOnError
rs.MoveNext
Next i
End Sub
什麼線是給這個錯誤?如果它是'db.Execute ...',你是否嘗試過使用debug.print來顯示strSQL的內容,然後直接在Access中運行它?首先要做的是檢查你的數據類型是否與SQL中的引用匹配。例如,MRC_YEAR是不是一個數字字段? – 2012-04-04 19:54:13
rs(「code」)'字段中是否有數字數據?如果不是,則需要引用標識符。與rs(「mrc_low」)和rs(「Mrc_high」)一樣。 – mellamokb 2012-04-04 21:33:57