2

条件が DataSelect テーブルに一致する場合、テーブル DataSelect のソース コードでテーブル Cleaned を更新するループを実行しようとしています。基準の例としては、年が 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
4

1 に答える 1

0

「パラメーターが少なすぎます。1 を期待してください。実行時エラー 3061」のようなメッセージ。は通常、クエリに引用符で囲まれていないデータ値が含まれていることを示しており、Access はそれをフィールド名として解釈しています。クエリで引用されていない識別子は と のみであるため、datacodeそのMRCうちの 1 つを引用する必要があるようです。

UPDATE Cleaned SET [Cleaned].[datacode] = '" & strDataCode & "' ...
                                          ^ ...add quotes...  ^
于 2012-04-04T21:33:18.417 に答える