テーブルを更新するループを実行しようとしています。条件がDataSelectテーブルと一致する場合は、テーブルDataSelectのソースコードでクリーンアップしました。基準の例は、2012年から2011年の間で、チャネルがTM、MRCが5〜10のようなものです。私は、プログラムがそれぞれ1つずつループするように、さまざまなタイプの基準を保持するためにDataSelectを作成します。ソースコードをCleanedで割り当てます。これまでのところ、私は常に「あまりにも少数のパラメータがあります。どんな助けでも大歓迎です。更新クエリでループを実行する方法 - アクセス
おかげで、 ニキ
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
:あなたのクエリでのみ引用符で囲まれていない識別子が
datacode
とMRC
あるので、あなたがそれらのいずれかを引用する必要があるように、それが見えますか?それが 'db.Execute ... 'の場合は、debug.printを使ってstrSQLの内容を表示し、Accessで直接実行してみましたか?最初に行うことは、データ型がSQLの引用符と一致するかどうかをチェックすることです。たとえば、MRC_YEARは実際に数値フィールドではありませんか? –'rs(" code ")'フィールドに数値データが入っていますか?そうでない場合は、識別子を引用する必要があります。 'rs(" mrc_low ")'と 'rs(" Mrc_high ")'と同じです。 – mellamokb