- ベストアンサー
アクセス イベントの発生を停止させたい
アクセスでイベントを発生しないようにしたいのですが エクセルで使用できる、Application.EnableEvents = Falseを使うと、 コンパイルエラーになります。 フォームを指定して、 .FilterOn = True を通ると、 該当のフォームのPrivate Sub Form_Current()イベントが発生してしまうので、 Application.EnableEvents = Falseのように、イベントの発生を停止させたいです。
- znuwschbkgdv
- お礼率38% (13/34)
- その他(データベース)
- 回答数1
- ありがとう数12
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
下記のようにイベントプロパティに "" を代入して、イベントとプロシージャの関連付けを解除してから実行してください。 .OnCurrent = "" .FilterOn .OnCurrent = "[イベント プロシージャ]"
関連する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 は使えないのかな?? どなたかご教授をお願いします。
- ベストアンサー
- Visual Basic
- 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 ------------------------------------
- ベストアンサー
- Excel(エクセル)
- イベントを発生させたくない EnableEvent
エクセルでは Application.EnableEvents = False で、イベントを発生させないことができますが、 アクセスで同じようにとあるときのみイベントを発生させたくない時は どうすればいいでしょうか? 上記のコードだとエラーになりました。
- ベストアンサー
- その他MS Office製品
- アクセス 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です。
- ベストアンサー
- その他MS Office製品
- エクセル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
- ベストアンサー
- Excel(エクセル)
- ACCESS 固定した条件でフォームを開く
商品テーブルを元に、在庫一覧というフォームを開こうとしています。 商品テーブルの、「在庫状況」という欄の、「欠品」と「在庫」という2種のデータだけを表示させたいのですが、うまくいきません。 ためしに、まず条件を「在庫」だけにしてみたのですが、それでもできませんでした。 フォームを開くのイベントプロシージャに、下記のように記述しています。 Private Sub Form_Open(Cancel As Integer) Me.Filter = "在庫状況 = '在庫'" Me.FilterOn = False End Sub よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。