2011-11-03 14 views
0

クラスプロジェクトとして、在庫を追跡するAccess 2010データベースを作成しています。この質問の目的のために、関連する2つのテーブル、資産とアクション、関連する1つのフォーム、更新資産があります。私の目標は、誰かがAssetsテーブルのレコードを更新するたびに、新しいレコードをActionsテーブルに挿入させることです。新しいアクションレコードには、保存時の現在のレコードに含まれるフィールドのスナップショットが含まれます。Access 2010マクロでのSQLエラー

Update Assetフォームには、After UpdateイベントにAuditLogというマクロが添付されています。

SQL文:

INSERT INTO Actions (AssetTag, LocationID,Slot,Status,Timestamp,TechID) ; 
SELECT(AssetTag,LocationID,Slot,Status,LastUpdated,TechID) FROM Assets WHERE 
    Assets!AssetTag = Me!AssetTag ; 

使用トランザクション:はい

しかし、私はレコードを保存するために行くとき、私は次のエラーを取得する:マクロは、次のパラメータでRUNSQLコマンドを使用していますINSERT INTOステートメント

構文エラー

マクロ名:監査ログ

アクション名:RUNSQL

引数:アクションINTO INSERT(ASSETTAG、LocationID、スロット、ステータス、タイムスタンプ、TechID)。 !!ASSETTAG資産ASSETTAG = Meで資産から(ASSETTAG、LocationID、スロット、ステータス、LastUpdated、TechID)を選択します。、はい

エラー番号:

私はデータベースとフォルダを追加しましたアクセスの信頼できる場所の一覧に。アクセスは間違いなく私の強みなので、どんな助けでも大歓迎です。

答えて

0

それは私の強い点は、どちらかが、私はセミコロンが複合文でなければなりませんSQL Serverのような表現/文の最後とそれ、であることを賭ける(選択...に)いないので

その最初のセミコロンを削除します。

資産資産からのアクション(ASSETTAG、LocationID、スロット、ステータス、タイムスタンプ、TechID) SELECT(ASSETTAG、LocationID、スロット、ステータス、LastUpdated、TechID)INTO INSERTにASSETTAG = MeでASSETTAG!!;

0

セミコロンは "完全な"ステートメントです。基本的には、INSERT INTOアクション(AssetTag、LocationID、Slot、Status、Timestamp、TechID)でステートメントを切っています。 < -

将来参照するために、アクセスにセミコロンを使用する必要はほとんどありません。それはあなたのためにそれを追加するかもしれませんが、このようなものを避けるために、それを入れてはいけません。

0

他の人も示唆しているように、セミコロンが原因です。 Access SQLステートメントで将来の問題が発生した場合は、そのステートメントをAccess Query Designerに貼り付けることができます。そうすることで、クエリーデザイナーが問題を見つけ出すことができます(構文上の問題があるコードを強調表示)。

関連する問題