• ベストアンサー

アクセス イベントの発生を停止させたい

アクセスでイベントを発生しないようにしたいのですが エクセルで使用できる、Application.EnableEvents = Falseを使うと、 コンパイルエラーになります。 フォームを指定して、 .FilterOn = True を通ると、 該当のフォームのPrivate Sub Form_Current()イベントが発生してしまうので、 Application.EnableEvents = Falseのように、イベントの発生を停止させたいです。

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

  • ベストアンサー
回答No.1

下記のようにイベントプロパティに "" を代入して、イベントとプロシージャの関連付けを解除してから実行してください。 .OnCurrent = "" .FilterOn .OnCurrent = "[イベント プロシージャ]"

znuwschbkgdv
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • TEXTBOX_CHANGEのイベント抑制

    TEXTBOX_CHANGE イベントでのイベント抑制方法を教えてください。 エクセルのVBAで、ユーザーフォーム内のTEXTBOXの内容を変更した際にイベントが発生しない様にしたいのですが、うまくいきません。 Private Sub TextBox1_Change() Application.EnableEvents = False UserForm1.TextBox1.Text = "" Application.EnableEvents = True UserForm1.TextBox1.SetFocus End Sub  ユーザーフォーム内では Application.EnableEvents  は使えないのかな?? どなたかご教授をお願いします。

  • VBA ユーザーフォームのChangeイベントを停止したい

    ユーザーフォームのChangeイベントは Application.EnableEvents = Falseで停止できないのですか? シート上のChangeイベントの停止はできましたが、ユーザーフォーム上のテキストボックス等のChangeイベントは停止できませんでした。 ユーザーフォームのChangeイベントを停止する方法があれば教えてください。

  • VBAから変更した時だけイベントを発生させない方法

    Excel VBA で、コンボボックスの選択をユーザーが変更した時はイベントハンドラが呼び出されて処理をしていますが、VBAのコードからコンボボックスの選択を変更した時には、このイベントハンドラが呼び出されないようにしたいのですが、どのように記述すればよいでしょうか。 例えば、下記のコードの (A) の部分で、VBAのコードからコンボボックスの選択を変更していますが、ここでイベントが発生しないようにしたいのですが、Application.EnableEvents = False を記述してもイベントが発生していますがなぜでしょうか。どのように記述すれば (A) の部分でイベントが発生しなくなりますでしょうか。 よろしくお願いします。(Windows7 , Excel2010 ) ---Module1---------- Option Explicit Sub main()  UserForm1.Show End Sub ---UserForm1-------- Option Explicit Private Sub UserForm_Initialize()  Dim i As Integer  ComboBox1.Style = fmStyleDropDownList  For i = 1 To 30   ComboBox1.AddItem Format(i, "00")  Next i End Sub Private Sub CommandButton1_Click()  Dim num As Integer  Dim index As Integer  num = ComboBox1.ListCount  index = ComboBox1.ListIndex  If index = num - 1 Then   Application.EnableEvents = False   ComboBox1.ListIndex = -1 '<----------(A)   Application.EnableEvents = True  Else   ComboBox1.ListIndex = index + 1  End If End Sub Private Sub ComboBox1_Change()  MsgBox ("ComboBox1_Changeイベント発生") End Sub ------------------------------------

  • イベントを発生させたくない EnableEvent

    エクセルでは Application.EnableEvents = False で、イベントを発生させないことができますが、 アクセスで同じようにとあるときのみイベントを発生させたくない時は どうすればいいでしょうか? 上記のコードだとエラーになりました。

  • アクセス Between  Andの使い方 日付型

    フォームをテーブルに紐づけて コマンドボタンを押下したら、日付にフィルタをかけたいのですが、 0件で抽出されます。 フィールド1 2013/05/19 2013/05/20 2013/05/21 というテーブルがあり、 フォーム上のコマンドボタンのクリックイベントは Private Sub コマンド1_Click() Me.Form.Filter = "フィールド1 Between " & Date & " And " & Date + 1 Me.Form.FilterOn = True End Sub です。 2013/05/19 2013/05/20 が抽出されるべきだと思うのですが、なぜ何も抽出されないのでしょうか? エラーにもなりません。

  • Loadイベント中にほかのイベントを発生したくない

    VisualC# .net です。 フォームを表示する場合に コンストラクタが呼ばれその後ロードイベントで フォームのコントロールの初期設定を行っています。 (この方法がまちがっている?) ロードイベント内でコンボボックスの初期設定を行うと コンボボックスのイベントが発生してしまいます。 以下参照にて このイベントでメッセージを表示しているのですが 初期設定では出てほしくありません。 そこで、 これを防ぐためには以下のようにフラグを立てるような 方法しかないのでしょうか? それともDebugger.IsAttached のようなものが 用意されているのでしょうか public bool iload = false;     (←仮フラグを追加) private void Form1_Load(object sender, EventArgs e) { iload = true;    (←仮フラグを登録) ComboBox1.SeletedIndex = 0; iload = false;   (←仮フラグを削除) } private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (iload) return;     (←仮フラグ登録時はなにもしない) MessageBox.Show("変更しました"); }

  • VBAでシート上のTEXTBOXの値を変更するとイベントが無限に入る。

    ExcelのVBAでシート上に貼り付けたCheckBoxで  内容を変更したくない場合、  下記のようなプログラムを作りました。 Private Sub CheckBox1_Click()     MsgBox "内容を変更しないでください"     If CheckBox1.Value = True Then       CheckBox1.Value = False     Else       CheckBox1.Value = True     End If End Sub すると、イベントが入りまくって、抜け出せなくなりました。 セルの場合は、Application.EnableEvents = False を使用してイベントを止めることができたのですが、 コントロールの場合は、そのような命令が見つかりません。 なにか良い手はないでしょうか。 よろしくお願いいたします。

  • excel2007 VBで

    下記のマクロ作成して実際にセルにA、あるいは何かデータを入力しても下記イベント?が発生している気配がありません。 Application.EnableEvents = Falseの行がなにか問題なのでしょうか。実プログラムは If Target.Value = "A" Or Target.Value = "A" Thenの他にB、C、計算も含んでいるのですがApplication.EnableEvents = TrueはEnd Subの前行に入れてあります。 他に設定することがあるのでしょうか。どなたか教えてください。 Private Sub Worksheet_Change(ByVal Target As Range)    If Target.Count > 1 Then Exit Sub '複数セルの入力は無視 Application.EnableEvents = False '割込み停止 ’[B3] = 123 ’Stop If Target.Value = "A" Or Target.Value = "A" Then Target.Value = "A" End If Application.EnableEvents = True '割込み再開 End Sub excel2007 VB6.5です。

  • エクセルVBAでユーザーフォームのテキストボックス

    ユーザーフォーム上にテキストボックスを8個設置しました。 そこに数値が入力された場合は自動的にカンマ区切りが表示されるように以下のコードを書きました。 これで希望の動きはしてくれるのですが、このやりかたは正しいでしょうか? また、テキストボックスは8個あるので、それぞれに下記のように8通りコードをかかなければいけないのでしょうか?ご教示ください。 Private Sub TextBox1_Change()   If IsNumeric(TextBox1.Value) Then Application.EnableEvents=False     TextBox1.Text = Format(TextBox1.Value, "#,##0") Application.EnableEvents=True   End If End Sub 途中(2~7)略 Private Sub TextBox8_Change()   If IsNumeric(TextBox8.Value) Then Application.EnableEvents=False     TextBox8.Text = Format(TextBox8.Value, "#,##0") Application.EnableEvents=True   End If End Sub

  • ACCESS 固定した条件でフォームを開く

    商品テーブルを元に、在庫一覧というフォームを開こうとしています。 商品テーブルの、「在庫状況」という欄の、「欠品」と「在庫」という2種のデータだけを表示させたいのですが、うまくいきません。 ためしに、まず条件を「在庫」だけにしてみたのですが、それでもできませんでした。 フォームを開くのイベントプロシージャに、下記のように記述しています。 Private Sub Form_Open(Cancel As Integer) Me.Filter = "在庫状況 = '在庫'" Me.FilterOn = False End Sub よろしくお願いいたします。

このQ&Aのポイント
  • VisualBoxでWindows7 PRO(64Bit)を立てようとしていますが、画面が真っ暗なまま進まない問題に直面しています。一度は正常起動したこともありましたが、SSDに移した後に再起動するとデスクトップが見えなくなりました。ゲストの削除や再作成を試しましたが、問題は解決しません。
  • 現在使用しているWindowsのバージョンは21H2であり、VisualBoxのバージョンは6.1.14です。CPUはCore i5 10400、マザーボードはASUSのTUF GAMING B460M-PLUSを使用しています。メモリはCrucialのDDR4 PC4-25600 8GBを四枚搭載しており、SSDはインテルのSSD 335 Series SSDSC2CT180A4K5 180GBです。
  • ゲスト起動の原因ははっきりとは分かりませんが、可能性としてはSSDの移行やWindowsのバージョンアップが影響している可能性があります。問題の解決方法としては、VisualBoxやWindowsの最新バージョンへのアップデート、ゲストの再作成などが考えられます。また、起動時に不要な設定変更を行わないようにすることも重要です。
回答を見る