AccessVBA サブフォームとスクロールについて

このQ&Aのポイント
  • AccessVBAでサブフォームとスクロールを使用する方法について教えてください。
  • Access2003でサブフォームを横長のフォームとして表示し、テーブルのデータを流し込む方法を教えてください。
  • AccessVBAでマウススクロール時に表示される行が隠れてしまう現象の回避方法を教えてください。
回答を見る
  • ベストアンサー

AccessVBA サブフォームとスクロールについて

こんにちは。 フォーム上にサブフォームを用意し、その中で横長のフォームを連続表示し、テーブルのデータを流し込み、あたかもデータベースのテーブルをそのまま見ているかのような構成にしています。実行すると、そのように見えます。 テーブルのレコードが多いものになると、マウスの上下スクロールをやりたくなります。しかし、マウスのホイールで上下スクロールすると上の行が隠れてしまい、なぜかスクロールしても最初の行が見えなくなってしまいます。こうなるとマウススクロールでの再表示はできず、画面上のスクロールバーの端っこの△▽をクリックして表示させています。 これでは操作性に難があります。 上記の現象の回避方法がありましたら教えてください。お願いします。 使用している環境はAccess2003です。

  • jobvba
  • お礼率60% (166/274)

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

http://support.microsoft.com/kb/418706/ja Access2003 でも改善されていません。 > スクロールバーの端っこの△▽をクリックして表示させています。 これが回避策ということです。

jobvba
質問者

お礼

回答ありがとうございます! もともとの仕様だったんですね・・・ 少しスッキリしました。

関連するQ&A

  • Access VBA サブフォームのサイズ変更

    Access の VBA についてご質問させていただきます。 親フォーム名:F05_親画面 サブフォーム名:F03_入力画面 サブフォームには、左からラベルが1列、テキストボックスが10列の計11列で、50行分配置されています。 つまり、11列 × 50行の表みたいにしてあります。 親フォームにスクロールバーを配置しており、親フォームのスクロールバーから入力画面を上下にスクロールできるようにしています。 サブフォームのテキストボックスに内容を表示したあと、 内容を表示した最後の行 +1から50行目までを非表示にしたのですが、 非表示にした場所にスクロールが出来てしまい、何もない画面が出来上がってしまいました。 何もない部分にスクロールできないようにしたいのですが、どのようにすればいいですか?

  • Accessフォームで画面をスクロールさせるには?

    現在Access2003を使ってデータベースを作成中です。 フォームで項目を入力してもらうようにと思っているですが、入力項目数が多く、画面に入りきらないので、マウスホイールで画面を上下にスクロールさせたいと考えています。 通常、フォーム上でマウスホイールを使うと次のレコードに移動してしまうので、そこでのミスをなくすために、さしあたって現在はマウスホイール操作を無効にはしています。 もしも、マウスホイールで画面をスクロールさせることができれば、その方法を採用したいと考えています。 どうぞよろしくお願いいたします。

  • アクセスVBA画面のスクロールバー

    アクセスVBAで画面を作っており、 あるフォーム画面に、あるサブフォーム画面を付けてます。 フォーム画面に条件を入力すると、サブフォーム画面に データが表示されます。 サブフォーム画面はデータが多くなると、 スクロールバーで上下に移動できるようにしてます。 今、フォーム画面で条件を入れると、サブフォーム画面は さほどデータが多くなくても スクロールバーの移動する枠がとても小さく表示されます (あたかもデータがたくさんあるように) 但し、その時に、スクロールバーをクリックしたりすると すぐに適切なスクロールバーの幅になります。 フォーム画面で条件を入れた直後に サブフォーム画面のスクロールバーの幅を適切にしたいのですが 何か、特別な設定とか必要なのでしょうか?

  • マウスホイールでテキストボックスのスクロールバーを

    マウスホイールでテキストボックスのスクロールバーを移動させたいです 帳票フォームにしています。 フォームのテキストボックスにスクロールバーありにしてるのですが そのテキストボックスがアクティブになった時に、 マウスホイールをクリクリした時に、 テキストボックスのスクロールバーを移動させたいのですが フォーム上スクロールバーが動いてしまいのレコードが移動してしまいます。 テキストボックスがアクティブの時に↓キーを押せばテキストボックスの スクロールバーは移動しますが、 マウスホイールで操作することは不可能でしょうか? テキストボックスには 1 2 3 4 5 6 7 8 9 10 がはいっています。

  • マウスのホイールやスクロールバーによるスクロールができません…

    マウスのホイールやスクロールバーによるスクロールができません… どうしてなのか理由はわからないのですが、突然画面のスクロールができなくなってしまいました。 キーボードの矢印キーを押せばスクロールができるのですが、マウスのホイールを回しても、ウィンドウ右のスクロールバーをドラッグしても画面がスクロールしません。 スクロールバーの上下にある小さな三角マーク(▼と▲)のボタンも試してみたのですが、長押しによる複数行のスクロールはできないようです(何度もクリックをすれば複数行スクロールできます)。 マウスは「Microsoft Wireless Laser Mouse 6000 v2.0」を使用していますが、クリック(左右)やマウス横のボタン(2個)はちゃんと作用するようです。 このような場合、何に異常があると考えられますか。また、対処法があれば教えてください。 回答宜しくお願いします。 補足が必要ならすぐに書き添えます。

  • サブフォームに対する表示制御について

    Access97でサブフォームを使用したフォームを作成しています。 サブフォームの明細行の最後に新規レコード行がありますよね。 サブフォームの初期表示時に、この新規レコード行にカーソルを位置付けたいのですが、 Docmd.GoTORecord,,acNewREc とやると、新規レコード行がサブフォームの 最上部にいってしまい、その前にある既存レコードが見えなくなってしまいます。 理想は、サブフォームの1ページが10明細分の大きさで獲ってあるとすると、 新規レコード行を10行目に表示されるようにもっていきたいのですが、 サブフォームに対してこのような制御は可能なのでしょうか。 RecordCountを操作したりしてやってみたのですが、既存レコードの件数によって、 うまくいったりいかなかったりです。 よろしくお願いします。

  • サブフォームをリクエリするには?

    アクセスのフォームにはサブフォームがあり、 親フォームの上にあるコマンドボタンで、テーブルに対してアクションクエリでレコードの削除やレコードの更新を行います。 サブフォームにはそのテーブルをソースとしたデータを表示させているのですが、 親フォームの上にあるコマンドボタンのイベントの最後に、 Me.Controls("サブフォーム").Requery を入れても、フォームのデータが#Deletedになります。 Me.Requery でも、サブフォームのデータは#Deletedになってしまいます。 フォームを開きなおしたり、並べ替えをすればデータが表示されますが コマンドボタン押下後にイベントを実行し終わったら、サブフォームのデータも更新されたデータを表示するさせるには どうすればいいでしょうか?

  • ACCESSのサブフォーム

    ACCESSのサブフォームで、レコード表示について教えてください。 添付のサブフォームの一番左のコンボボックスに値を入力もしくは選択すると、未入力のレコードが下に1行分増えます。 (その他項目は連動して表示されます) サブフォームは帳票フォームを選択しているのですが、一般的には帳票フォームを選択した場合、レコードの数分だけ表示されると思うのですが、これは1レコードづつ増えていきます。 このサブフォームを作った人がもういないので、どうやって作ったのかが分かりません。 どなたか分かる人がいれば教えて頂けますでしょうか。 必要な情報があれば、調べて回答します。

  • AccessVBA サブフォームとデータベースの連携について

    現在、変な現象が起きており、困っています。 使用している環境はAccess2003です。 同現象に立ち会ったことのある方がいらっしゃいましたら回答をお願いします。 フォーム内部にサブフォーム表示領域を用意し、サブフォームでは以下のようにSQL文をセットし、MDBファイル(自分)のテーブルの内容を表示しています。 Me.RecordSource = "SELECT * FROM [マスタ] WHERE [削除] = No ORDER BY [コード]" 表示できています。書き換えることも出来ます。 ですが、フィールド編集「直後」に更新処理(VBAでの外部データベースへの保存処理)をかけると、なぜか失敗することがあります。 直後ではなく、他レコードのフィールドを選択してから更新処理を実行すると、うまくいきます。 失敗といっても完全に失敗するわけではなく、以下の動作になります。 たとえば、[コード]8を9に書き換える処理。 ソースは書ききれないため、処理内容だけ記述します。 [[ 失敗時 ]] UPDATE [テーブル名] SET [コード] = 9(エラーにならない) 上記のテーブルのレコードを全てそのまま外部MDBに書き込む処理が走るが、その時の[コード]が書き換えられておらず、8のまま外部データベースに書き込まれる。 [[ 成功時 ]] UPDATE [テーブル名] SET [コード] = 9(エラーにならない) [コード]には9書き込まれ、外部MDBに正しく書き込まれる。 まったく同じ処理が実行されます。同じデータ内容や状況で、操作方法を変えるだけで現象を引き起こせます。 成功時と失敗時の違いは、上記の通りフィールドを更新した直後に違うレコードを選択するかしないかという事、これしか現在発見できていません。 上記の現象を回避する方法、ご存知の方がいらっしゃいましたら、教えてください。 宜しくお願いします。

  • サブフォームが見えなくなる。

    サブフォームが見えなくなる。 Access初心者です。 メインフォームにサブフォームを入れ込んだのですが、メインフォームを新しいレコードに移動すると、サブフォーム自体が出てこなくなります。 データがあるレコードではきちんとサブフォームが出ていることが確認出来ています。 どうしていいのか判らないので教えて下さい。 マクロで入力ボタンを押すとメインのフォームを開き、新しいレコードに移動することをやっていますが、関係あるでしょうか? やりたいことはメインを新しいレコードに移動した時に、サブフォームが表示されて入力できるようにしたいということです。

専門家に質問してみよう