2017-09-12 7 views
0

docmd.RunSqlを使用してテーブルを更新しようとしましたが、更新できません。変数を使用したSQLによるテーブルの更新

idlook = DLookup("[ID]", "119_review", "[todays_date] = #" & Format("" & Me.Combo87 & " " & Me.Combo89 & " 20" & Me.Combo91 & "", Medium) & "#") 

MySQL = "UPDATE 119_review SET [Earned_Income]=" & Val(EarnedIncome) & " AND [Earned_income_withcal]=" & Val(EarnedIncomeCal) & " WHERE [ID]= " & idlook & ";" 

Debug.Print MySQL 
DoCmd.RunSQL MySQL 

は、私はとフィールド上の括弧なしの両方を試してみた、すぐにウィンドウが読み:

UPDATE 119_review SET Earned_Income=62 AND Earned_income_withcal=58.4 WHERE ID= 23; 
UPDATE 119_review SET [Earned_Income]=62 AND [Earned_income_withcal]=58.4 WHERE [ID]= 23; 

私が間違っているつもりです任意のアイデア?

+0

すべてのエラーメッセージは?そのIDを持つユーザーがいると思いますか?これらのフィールドは両方とも数値ですか?これはすべて有効と思われるので、この更新プログラムを複製できません。 –

+0

私が更新しようとしているIDは "23"で、テーブルの中にあります。更新される2つのフィールドのデータ型は通貨です。エラーは表示されず、コードを読み取って何もしません。 – user2002716

答えて

1

あなたは単純な構文エラーを作成しました。

更新ステートメントの異なる列は、ではなく、,で区切る必要があります。 奇妙なことに、この間違いをしても構文エラーは発生しませんが、何も更新されません。

変更以下に、あなたのSQL文字列を設定する行:

MySQL = "UPDATE 119_review SET [Earned_Income]=" & Val(EarnedIncome) & " , [Earned_income_withcal]=" & Val(EarnedIncomeCal) & " WHERE [ID]= " & idlook & ";" 
+0

ライフセーバー!私はウェブサイトのコーディングに巻き込まれていますが、私はそれを試してもいませんでした。奇妙なことに、私はそれを試したことがないと思った! – user2002716

関連する問題