我正在尝试做一个循环,将更新表清理与表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