access2000 vba の テキストイベント取得

このQ&Aのポイント
  • access2000 vbaで、テキストボックスの値が変化したときにイベントを発生させる方法について詳しく教えてください。
  • テキストボックス1の値が変化したときにイベントを発生させる方法について、初心者の方でも理解しやすく解説していただけませんか。
  • access2000 vbaでテキストボックスの値が変化したときにイベントを検知する方法を教えてください。
回答を見る
  • ベストアンサー

access2000 vba の テキストイベント取得

access2000 vbaで、プログラムを組んでいます。 画面にテキストボックス1と、表(あるテーブルの内容をあらわしているもの)があります。 [初心者でこの表のうまい言い方がよくわかりません・・] テキストボックス1は、プロパティの、データ/コントロールソースが、あるテーブルのコードになっています。 このテキストボックス1は表のレコードを選択することにより、内容が変わります。(選択したレコードの、コード値になります。) ここで、テキストボックス1の値が変化したときに、イベントを発生したいのですが、なかなかできません。 change,afterupdateではだめでした。 うまくつたわらないかもしれませんが、手入力以外による値の変化は、テキストボックスイベント検知はできないものでしょうか。

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

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

>手入力以外による値の変化は、テキストボックスイベント検知はできないものでしょうか。 というのは、 あるレコードを表示している状態で別のレコードに移動したとき、テキストボックスの値の変化を検出したい ということですよね? そういうことでしたら、自前で、移動前の値を変数に保存しておいて、それと移動後の値を比較するしかなさそうです。 ( Change 等のイベントは、そういう目的のものではありません。)

関連するQ&A

  • VBAのイベント処理について

    VBAのイベント処理について お世話になってます。現在、VBAでアプリケーションを作成しています。 1つのフォームに4つのテキストボックスと1つのボタンが配置されており、それぞれイベントが設定されています。 その中のテキストボックスに関するイベントなのですが、1つのテキストボックスに対してKeyPress、KeyDown、MouseUp、AfterUpdate、以上4つのイベントを作成します。 フォームに配置されている4つのテキストボックスすべてに、上記で示したイベントを作成する必要がありますが、各イベントにおける処理の内容はオブジェクト名が違うだけで全く同じです。 ひとつひとつイベントを作成していけば、処理目的は満たせそうですが、ソースがかなり長くなってしまいます。ひとつのオブジェクトに対してこれらの処理をひとまとめにする様な記述方法はありませんでしょうか?考え方だけでも教えていただければ幸いです。 質問が長くなってしまい申し訳ありません。回答宜しくお願い致します。

  • VBA テキストボックスのイベントについて

    Microsoft ACCESS 2010を使用しています。 「テキスト0」という名前のテキストボックスがあり、 Me![テキスト0].Value = "こんにちは" というコードでテキストボックスの文字を変更します。 この時、テキストボックスの値が変更されたという条件でまた別のコードを動作させたいのですが、テキストボックスのイベントである、「更新前処理」「更新後処理」「ダーティー時」「変更時」では、動作しませんでした。 テキストボックスの値を変更する段階で別のコードを入力すれば対応は可能なのですが、「テキストボックスの値を変更した時」のタイミングで別コードを動作させることで、コードをまとめたいと考えています。 これに対して良い方法はありますか?よろしくお願いします。

  • エクセルVBAのユーザーフォーム上のテキストボックスについての質問です

    エクセルVBAのユーザーフォーム上のテキストボックスについての質問です。 Aのユーザーフォームの内容をBのユーザーフォームのテキストボックスへ引き継いで、Bのユーザーフォーム上で内容を編集するという仕組みにしたいのです。 Bのユーザーフォームは新規入力もかねたユーザーフォームなので、テキストボックスのイベントにAfterUpdateを使用して、テキストボックスの内容が書き換えられるとデータベースから検索して新規か既存か判断させています。 AのユーザーフォームからBのユーザーフォームのテキストボックスへ引継ぎさせるときにこのAfterUpdateを発生させたくないのですが、Application.EnableEvents=Falseなどを使ってもイベントが発生してしまいます。 また、イベントがどのタイミングで発生するかと、コードをステップで実行させると、このイベントは発生しません。そのために、いきづまってしまいました。 AのユーザーフォームからBに引き継ぐ処理  ユーザーフォームB.Load ---ユーザーフォームBのイニシャライズが実行される  ユーザーフォームB.テキストボックス = ユーザーフォームA.テキストボックス  ユーザーフォームB.Show ちょっと簡単に書きすぎですがこんな感じです。 コードをステップで実行するとユーザーフォームBのAfterUpdateは実行されません。(VBAエディタのバグ?) どなたか回答お願いします。

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • Access VBA acCmdSelectRecordについて

    こんにちは。 いつもお世話になっております。 サブフォームで選択した行を分かりやすくしたかったので、 サブフォームのプロパティで レコード移動時のイベントプロシージャ に以下のようにコードを記述しました。 DoCmd.RunCommand acCmdSelectRecord これで選択した1行は黒く反転されてるのですが、 レコードソースで指定してるテーブルの最初の項目のテキストボックスの部部分をクリックした後、他の行を選択すると前に選択したテキストボックス のみ黒く反転が残ってしまうのです。 他のテキストボックスを選択して他の行を選択しても前回のテキストボックスが黒く反転が残ることはありません。 1番最初のテキストボックスのみ、このような現象がおきてしまいますが、 テキストボックス毎に何か設定があるのでしょうか? よろしくお願い致します。

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。

  • AccessのVBAで「イベント」を捉える方法について

    フォームを作り、その上に2列×15個のテキストボックスを配置しました。(2列15行の「表」(ひょう)のような状態です。) 左列は入金関係、右列は出金関係金額を入力します。 一番下行のテキストボックス2つは各列の合計(入金合計・出金合計)を入れたいのです。 各列の、どれかのテキストボックスに値が入力されたら、即時にその列の合計を変えたいのです。 複数の(同種と仮定して)コントロールをグループ的にまとめて考えて、そのどれかにイベントが起こったことを捉える方法はあるのでしょうか。14×2個のテキストボックスのChangeイベントを書けば良いとかを思い付くのですが鬱陶しいのと、VBAプログラムのレパートリーを広げたくて、どなたか(不可能という結論も含めて)、ご存知の方は教えてください。 98・Access97・Access2000です。

  • Accessのフォームの詳細カテゴリーでのテキストボックスについて

    Accessで以下のようなフォームを作成しました。 -------------ヘッダー---------------------------- [名前] [所属コード] [ 詳細 ] -------------詳細-------------------------------- あいう [ ] [ ] かきく [ ] [ ] さしす [ ] [ ] 名前と所属コードはテーブルにフィールド定義しています。 ここで、所属コードが入力されると、そのコードからほかの テーブルを検索し詳細に内容を出力しようとしているのですが 詳細に値をセットすると全レコードの詳細のテキストボックス に内容がセットされてしまいます。 「あいう」の所属コードが入力されたら「あいう」の詳細テキスト ボックスのみに値を入れることはできないのでしょうか? やはり、新たにクエリを作って詳細を紐付けるか「詳細」を同じ テーブルのフィールドとして定義するしかないのでしょうか? ご教授願います。

  • アクセスのVBAなんですけど

    アクセスのVBAでフォームからフォームへ値を渡すことはできますか?具体的にいうとあるフォームでコンボボックスから選択し、OKボタンで次のフォームを開くのですが、初めのコンボボックス(ちなみに5つ選択項目があります)で選んだ条件でフォームの表示内容を変更させようと思っています。 今のところ、選択した項目を一時的にテーブルに保存して、新しいフォームが開くときにテーブルから値を取得してやるのか・・・・と考えているのですが、まどろっこしいので・・・・・よろしくお願いします。