最新トピック
1
25 日前
排他制御 25 日前
2
1 ヶ月前
Hatena様にご質問 1 ヶ月前
6
4 ヶ月前
モジュールでカレントフォームのコントロールを使うには 4 ヶ月前
7
4 ヶ月前
日付のテキストボックスからフォームが開けません 4 ヶ月前
9
4 ヶ月前
レポートにおける数値の間隔を広げる方法 4 ヶ月前
12
4 ヶ月前
リストボックスから複数選択しそれをテーブルに格納したい 4 ヶ月前
タグリスト
Markdown テーブル生成
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
そうですね。モジュール(VBA記述画面)だけを見ていると理解できないんですが、各コントロールのプロパティで
[イベント プロシージャ]を指定して自動生成できるプロシージャはその引数に特別な意味を持つ特別なプロシージャになりますこれらは、
コントロール名_イベント名([引数])の書式になり(引数はイベントによりあったりなかったり)自動生成せずに、モジュールで直接記述(コピペ)してからコントロールに[イベント プロシージャ]を設定しても同じです。データ上はただのテキストでしかありませんこのようなちょっと理解しにくい仕組みの上で、
コンボ_KeyDownプロシージャの中でKeyCodeを操作すると、実際のACCESS上でのキー入力を制御できるという仕組みが成り立っています前の質問でも少し言葉が出ましたが、「スコープ」が問題になります
「このプロシージャで宣言されている
KeyCodeという引数を操作することにより、ほにゃららできる」というのが諸々の趣旨になりますが、引数はそのプロシージャの中でのみ有効ですhirotonの指摘の本質ですが、「
コンボ_KeyDownプロシージャの中で記述したKeyCodeのみ」が、その時のキー操作の制御に影響します。その他の場所で記述されたKeyCodeは、それが有効となる宣言方法に従って動作しますやりたいことは「
コンボ_KeyDownプロシージャの中KeyCodeの操作」なので、どんなに他の場所でKeyCodeの変数宣言を行っても「コンボ_KeyDownプロシージャの中KeyCode」を変更することはできません。これは、不意の動作が行われないように守られているとも言えますし、「KeyCode」という簡単な名前を至る所で使うことに問題がないようになっているとも言えます。これが、スコープ問題というやつですここまで理解した上でようやく、スコープが制限されている値を変更するためにはどうしたらいいか?スコープを跨ぐ方法は?となります。ここまで来れば、hatenaさんの回答につながる(回答を見て理解できる)でしょう