縦に長いフォームを作っているのですがフォームビューをするとフォームがやや下の方の画面で開けられてしまいます。
原因はフォームオープン時に対象レコードをテキストボックスに入れたり、プルダウンボックスにレコードをセットしたりしているからだと思います。(全てコーディングで)
どうすればスクロールバーを一番上まで戻すことができますか?元からスクロールバーを移動させずにレコードをセットする方法でもかまいません。
それともう一つ、フォームのプルダウンボックスに、プロパティの値集合ソースからSQLをセットしたりする方法がありますが、VBAのグローバル変数をWHERE句に使用したい場合はこの方法は使えませんよね?
最後にもう一つクエリはVBAのグローバル変数使えませんよね?
フォームのコントロールから値を取得することもできませんよね?
No.1ベストアンサー
- 回答日時:
ACCESSをお使いになっていると想定して返答させて頂きますね。
(クエリ等の話が出ているので)
フォームのスクロールは
VBAのコーディングで値をセットしているならば
それらが終わった後で
SendKeys "{PGUP}"
を実行してPageUpキーを送信してやるのが手っ取り早いかと。
クエリがフォームのコントロールの値を取得する事は可能です。
[Forms]![フォーム名]![コントロール名]
の形式でクエリに埋め込んでみてください。
ただし、参照先のフォームはフォームビューで
開かれている必要があります。
VBAのグローバル変数はクエリから直接は参照できませんので
VBAのコーディングでグローバル変数を使ってSQLの文字列を構築し
Currentdb.QueryDefs("クエリ名").SQL = "作成したSQL"
でクエリのSQLを書き換えるという方法があります。
この回答への補足
SendKeys "{PGUP}"の方法ダメでした。順番的に一番最後に処理させているのですが、デバッグモードで調べてもピクリとも反応しませんでした。
なぜできないのか原因はわかりませんが、とりあえず他の方法で対処できました。
[Forms]![フォーム名]![コントロール名]の方法は利用してみます。
フォーム中のコントロールの埋め込み式(値集合ソース)で利用して、別のフォームのコントロール値を取得して現在のフォームのプルダウンボックスのSQLにセットできそうなので今度やってみます。
Currentdb.QueryDefs("クエリ名").SQL = "作成したSQL"この方法は今のところ使うところがないので頭の片隅に置いておきます。
No.2
- 回答日時:
対処できたとの事ですので補足になりますが
SendKeysステートメントはあくまで単純にキー操作を
実行するだけの処理ですので、タイミングがずれると
意図した通りに動いてくれない事はあります。
キーボードからの操作を受け付けないタイミングで実行されて
動かない事も考えられますし、デバッグモードで実行しても
通常実行時と同じ動きにはなりません。
(デバッグモードの画面に対してキー操作した事になる)
手っ取り早い方法という事で挙げてみましたが、あまり安定したやり方とは言えないので
フォーム上部の方にあるコントロールに対して
[コントロール名].SetFocus
でフォーカスを移した方が良かったかもしれませんね。
ただこれだとコントロールの位置に依存しますし
画面の最上部までスクロールする保証はなかったものですから。
ありがとうございます。
実は私もその方法でしました。フォームの一番上に可視のテキストボックス(後で不可視にする)を貼り付けて、そこにフォーカスを一旦移動させてから、その少し下の目的のコントロールにフォーカスを移動させることで対応しました。
SendKeysステートメント自体初めて見たので参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- PDF PDFのテキストを追加機能 1 2022/06/18 12:45
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
アクセスVBA フォームのスクロールバーを動かす。
Visual Basic(VBA)
-
スクロールバーをVBAで操作したい
Access(アクセス)
-
-
4
Access2000 フォーム表示位置が変わる
Word(ワード)
-
5
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
6
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
7
access 改ページコントロール
Access(アクセス)
-
8
TextBoxの最下行を表示しておきたい
Visual Basic(VBA)
-
9
リストボックスで任意の行を表示するには?
Excel(エクセル)
-
10
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
11
ユーザーフォームのスクロールについて(エクセル2000VBA)
Excel(エクセル)
-
12
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
リストビューをスクロールさせるには
Visual Basic(VBA)
-
16
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
17
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
18
コントロールの存在確認
Visual Basic(VBA)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでフォームのスクロールバー...
-
VBAにてメッセージボックスを最...
-
アクセスVBA フォームのス...
-
リストボックスをクリックする...
-
ディスプレイ解像度より大きな...
-
VB.net(VB)で、フォームにExcel...
-
Googleフォーム・複数人の申し...
-
accessで2つ以上のフォームを起...
-
アクセス・別フォームの新規レ...
-
Accessでフォームから別フォー...
-
サブフォームの行ごとにコンボ...
-
メッセージボックスの背景色
-
PDFフォームに本日の日付を自動...
-
子フォームから親フォームのオ...
-
csvに保存しているデータをURL...
-
AccessVBAで入力有無のチェック
-
毎日新聞「女の気持ち」匿名希...
-
ASP.NETとC#でWebフォームを呼...
-
Access:ストアドプロシージャ...
-
Accessでサブフォームの合計を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAにてメッセージボックスを最...
-
VB.net(VB)で、フォームにExcel...
-
リストボックスの選択解除
-
Googleフォーム・複数人の申し...
-
サブフォームの新規レコードに...
-
Accessでフォームから別フォー...
-
accessで2つ以上のフォームを起...
-
サブフォームの行ごとにコンボ...
-
フォーム上の全てのコントロー...
-
アクセスVBA フォームのス...
-
VBA リストボックスをダブルク...
-
サブフォームのイベント取得
-
メッセージボックスの背景色
-
PDFフォームに本日の日付を自動...
-
VBAでフォームのスクロールバー...
-
Access 無操作の場合、自動で閉...
-
アクセス フォームが存在する...
-
VBプログラムの終了
-
メインフォームからサブフォー...
-
ユーザーフォーム上にアイコン...
おすすめ情報