• 締切済み

ACCESSのODBC接続

ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS10(PRO) ACCESS 2013 SQL SERVER EXPRESS 2016 ODBCを使用してACCESSからSQL SERVERに接続しています。 データ参照やINSERTは問題なく、データ削除で2万件ほどのデータを削除しようとすると、「実行時エラー'3146' ODBC---呼び出しが失敗しました」のメッセージが表示され止まってしまいます。 1000件ほどでしたら、削除は行えます。 ・パススルークエリでDELETE FROM ○○を実行 ・リンクテーブルをVBAからクエリを開き削除 ・SQL SERVERにストアドを作成して、ACCESSから実行する を試したのですが、結果は変わりありません。 また、LOOPで1000件づつ削除も試したのですが、6回(6000件)ほどで同じメッセージが表示されてしまいます。 ODBCでの接続がネックなのかと思っているのですが、解決策が見出せません。 ヒント等でも教えていただければ助かります。 よろしくお願いします。

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

なんとなくなのですが、データベースに変更する時に何らかのエラーが発生した場合に備えて、元に戻せるように前の状態を保持しているのです。 そういう機能をトランザクションというのですが、そのために生じるエラーもあり得るかなと思いました。 1000件を一度に削除できるのであれば、1000件の削除ごとにcommitしてみてはどうでしょうか。 https://msdn.microsoft.com/ja-jp/library/ms131281.aspx

関連するQ&A