• ベストアンサー

実行時エラー 2001 直前の操作は取り消されまし

アクセスVBAで DoCmd.OpenQuery "Qクエリ", acNormal を実行しようとしたら、 実行時エラー 2001 直前の操作は取り消されました。 と言うエラーになりました。 何が原因なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

プログラムでエラーで止まるのは (1)プログラム プログラムがまずい (2)データ データがそのアプリ・言語などの想定外である。 のうち、(1)に頭が行きやすいが、(2)をもっと、重視すべきと思う。 しかし、OKWAVEの質問者は、質問にデータを記して、質問する人は極く少ない。 アクセスでは、データ数が多い場合もおおい。 したがってエラー解析は、データや環境(諸設定)を用意やできない読者・回答者にとっては、当てもののようなことになる。 とはいってもデータによるエラーストップは、データーの存非(ヌルと空白)やデータ型(数値と文字列)や内容的に限度オーバー・コード限度を超える場合に限られると思う。 本件ではまずデータの問題にしている項目データが、ヌルでないかどうかを調べてから質問すべきでは。(NZ( )で回避できるケースではないか。) ーー 過去に同じような質問がある。 Googleででも「Access 実行時エラー 2001」で照会すると出てくる。 本件が、初めて走らせた場合なら http://accessclub.jp/bbs3/0306/superbeg93449.html >テーブルのデータ型、書式、もう一度確認してみます。 >型宣言が書いてないのでなんともいえませんが、RDCodeがNullの可能性があります。 ここにもNz関数を使いましょう。 http://www.accessclub.jp/bbs/0178/beginers56710.html 特殊なケース(今までうまく走っていて、なら) https://support.microsoft.com/ja-jp/kb/416357 リテラル値の書き方不適当 http://www.geocities.jp/samplecode_20131004/Category_runtimeerror.html

ZXUOTPUJWQQDX
質問者

お礼

ありがとうございます。

関連するQ&A

  • アクセス2000でVBAを使ってクエリを実行したいのです

    Access2000でVBAを使っています。 Docmdでクエリを実行させたいのですが、 DoCmd.OpenQuery stDocName1, acNormal, acHidden とするとクエリの実行結果が表示されます。 クエリだけ実行されて実行結果を非表示にする方法は ありますでしょうか? Form1のコマンドボタンを押下後、クエリが実行されて 別のFormにデータ表示させたいので、なるべくクエリの実行結果を表示させたくないのです。 よろしくお願いいたします

  • ACCESS フォームから開く【クエリ「パラメータの入力」】でキャンセルしてもエラーにならない方法は?

    よろしくお願いします。 ACCESSのフォームでコマンドボタンに以下のように記述しました。クエリを開く単純なものですが、このクエリには「パラメータの入力」が必要で、入力すれば問題ありませんが、キャンセルした時にエラーが生じます。 Private Sub cmd受講者名簿表示_Click() DoCmd.OpenQuery "Q_受講者名簿用" End Sub **エラー表示内容** 実行時エラー ‘2001’: 直前の操作はキャンセルされました         終了   デバック   ヘルプ 直接クエリをひらいた場合にキャンセルしても問題ないのに、フォームでVBAで記述した場合にパラメータの入力があるクエリをキャンセルしてもエラーにならない方法は無いのでしょうか?

  • エクセルからアクセスの更新クエリを実行するコード

    アクセスなら 自身のデータベースの更新クエリを実行する場合は DoCmd.OpenQuery "Q更新クエリ" で出来ますが、 エクセルから、 D:\Access.mdbの"Q更新クエリ"を実行するには どうすればいいのでしょうか? ADOを使うのでしょうか? ヴァージョンは2003です。 よろしくお願いします。

  • 実行時エラー7「メモリが不足しています」

    アクセスで DoCmd.OpenForm Form_F1.Name, acNormal で、開こうとすると、 実行時エラー7「メモリが不足しています」がでました。 今まで一度も出なかったのですが、いきなりどうしたのでしょうか? パソコンのメモリは8Gです。 不足するほど少ないのでしょうか?

  • エクセルVBAでアクセスの更新クエリを実行

    エクセルVBAでアクセスの更新クエリを実行する方法はありますか? アクセスもエクセルも常に起動している状態です。 エクセルからアクセスの更新クエリを実行するコードを教えてください。 アクセスで実行するとしたら Sub test1() DoCmd.OpenQuery "更新クエリ" End Sub というコードになります。 できれば、ADODBを使ったやり方がいいのですが、 エクセルからアクセスのプロシージャーのtest1を呼ぶしかないのでしょうか?

  • 実行時エラー2118

    アクセス2010です。 アクセスVBAのコードで Forms("フォーム1").Controls("サブフォーム").Requery を実行しようとすると 実行時エラー2118 ”Requery/再クエリ”アクションを実行する前に、 カレントフィールドを保存する必要があります。 となります。 VBA実行中に、手作業でデータを修正した事により発生したエラーなのですが そもそもVBA実行中にデータをいじる事は可能なのでしょうか? 出来る時とできない時があります。 更に、上記のエラーが発生しているときは、 VBAが中断の状態で、 そのデータを保存することができません。 データの保存が出来ないと、コードが進まないのですが こういう時はどうすればいいのでしょうか? VBAを停止して、手作業で修正したデータを保存するしかないのでしょうか?

  • 実行時エラー 29068

    いろんなプロシージャーを経て、 DoCmd.Save acForm, "フォーム1" と言うコードに差し掛かった時、 実行時エラー 29068 この操作を 完了することができません。 コードを中断し、再度実行してください。 と言うエラーが発生します。 前のコードでフォームのコントロールの削除をしているのが原因でしょうか?

  • 「実行時エラー 3035メモリ不足です」

    アクセスのテーブルを開いてレコードを並び替えようとすると 「メモリ不足です」と表示されます。 VBAで、 DoCmd.RunSQL SQL のコードでも同じように 「実行時エラー 3035メモリ不足です」と言うエラーが発生します。 VBAでエラーになった場合は、 一度エラーでとまりますが、そのままF5を押すと問題なく実行できます。 メモリは4G積んでいます。win7です。 そんなにメモリが低いでしょうか? アクセスのレコード数は40000くらいです。

  • 実行時エラー’2164’

    アクセスVBAで、実行時エラー’2164’ コントロールがフォーカスを取得しているときは、 コントロールを無効にすることはできません と言うメッセージが出てしまいます。 何が原因なのでしょうか?

  • 実行時エラー3086 削除クエリができない

    アクセスでvbaでアクションクエリを実行しようとしたら、エラーになりました。 エラー内容は 「指定されたテーブルから削除できませんでした。(エラー 3086)」 です。 コードは mySQL = "DELETE Tフォルダ名.* FROM Tフォルダ名;" DoCmd.RunSQL mySQL です。 今まで問題なく使えていたのにいきなりダメになりました。 テーブル名もフィールド名も存在するし、データも入っています。

専門家に質問してみよう