次の方法で共有

Access 2013 「DELETE」後の「INSERT INTO」でエラーになる場合はありますか?

Anonymous
2015-07-18T14:15:30+00:00

テーブルのデータを全削除したあと、すぐにデータの追加を実行させた時、

DELETE削除が追い付かず、エラーになる場合はありますか?

DoCmd.RunSQL "DELETE FROM テーブル名"

DoCmd.RunSQL "INSERT INTO テーブル名 ~~~

もしあるとすれば、どのような対処法があるでしょうか?

**モデレーター注**

タイトルを編集しました。

編集前タイトル : アクセス2013 「DELETE」後の「INSERT INTO」

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2015-07-18T15:25:59+00:00

DoCmd.RunSQLは非同期実行です。

処理が終了しないうちに、次の行の処理を開始します。

これでは困る場合は、DB.ExecuteにすればOKです。

こちらは終了するまで次の処理に進みません。

この回答は役に立ちましたか?

2 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

6 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-07-19T13:39:12+00:00

    お疲れ様です。

    『更新をロールバック』というのは、複数の更新をセットで行う際に使用します。

    テーブルAとテーブルBの更新を同時に行う必要がある(整合性を維持する必要がある)場合などに使用します。

     テーブルAの更新がうまくいったが、テーブルBの更新でエラーになった時に、テーブルAの更新もなかったことにする というのが、更新のロールバックです。(整合性をとるために必要です)

    Workspace.BeginTrans メソッド (DAO)

    https://msdn.microsoft.com/ja-jp/library/office/ff821457.aspx

    このサンプルなどご覧になってみてください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-07-19T13:24:10+00:00

    全ての変更やっと終わりました。

    dbFailOnError

    「エラーが発生時に更新をロールバック」ということですが、よく理解できません。ロールバックってエラーが出ると、無限ループになったりしませんか?dbFailOnerrorと、ただ尻尾に付けるだけでもよいですか?DoCmd.RunSQL "DELETE FROM テーブル名"  ここは、DB.Executeに変更でもエラーなしDoCmd.RunSQL "INSERT INTO テーブル名  こちらはDB.Executeに変更で一部エラーです。とりあえずDELETEをDB.Executeにして INSERT INTO はDoCmd.RunSQLでやらせています。ネットで調べるとWhere文あたりがあやしいみたいでした。ご回答、ありがとうございます。
    

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2015-07-18T17:27:43+00:00

    うわぁ~~ショックです。

    修正個所が多すぎて。がんばります。

    とりあえず、Ctrl+H (置換)で、DoCmd.RunSQL を CurrentDB.Excute に置換すればいいかと。

    できれば、dbFailOnErrorオプションを付けるといいですね。

     CurrentDB.Excute "SQL文",  dbFailOnError

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2015-07-18T17:12:41+00:00

    うわぁ~~ショックです。

    修正個所が多すぎて。がんばります。

    SIMOZ様、いつもご回答いただき、ありがとうございます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません