0
Dim sqlUpdate As String

sqlUpdate = "UPDATE [Stock Conversion] SET [Stock Conversion].Status = 'PRINTED' " & _
"WHERE ((([Stock Conversion].Status) = 'NEW'));"

' Turn off warning
DoCmd.SetWarnings False

'Run SQL
DoCmd.RunSQL (sqlUpdate)

'Turn on warning
DoCmd.SetWarnings True

基本的にエラーメッセージはありませんが、何も起こらないのですか?

誰か助けてもらえますか?

4

2 に答える 2

3

このステートメントを新しいAccessクエリのSQLビューに貼り付けて、テストします。

UPDATE [Stock Conversion]
SET Status = 'PRINTED'
WHERE Status = 'NEW';

それが機能しない場合は、エラーメッセージが理由を理解し、修正できるようになることを願っています。

正しく機能する場合.Executeは、DAO.Databaseオブジェクトのメソッドを使用してVBAから同じステートメントを実行します。を使用しないので、オフにするDoCmd.RunSQL動機はありません。オフSetWarningsにすると情報が抑制されるため、これは重要なポイントです。SetWarnings

Dim db As DAO.Database
Dim sqlUpdate As String

sqlUpdate = "UPDATE [Stock Conversion]" & vbCrLf & _
    "SET Status = 'PRINTED'" & vbCrLf & _
    "WHERE Status = 'NEW';"
Debug.Print sqlUpdate
DoCmd.SetWarnings True ' in case it had been left off somehow '
Set db = CurrentDb
db.Execute sqlUpdate, dbFailOnError
Set db = Nothing
于 2012-10-08T15:33:45.950 に答える
0

役立つもの:

  • [Stock Conversion]から削除しますsetwhere
  • Whereの不要な括弧を削除します
  • セミコロンを削除します
  • もう一度チェック。
  • それが機能しない場合は、を削除してwhere再試行し、were句に問題があるかどうかを確認してください
  • SQLトレースをデータベースに追加して、クエリが実際に送信されているかどうかを確認します
  • ここに完全なSQLステートメントを貼り付けて、さらに支援できるようにします
于 2012-10-08T14:26:58.883 に答える