<Access タブコントロールを探り表示データ切り替え>
どうも、三流プログラマーのKen3です。 今回は、 Accessのタブコントロールを探ってみたいと思います。 たいした内容じゃないのですが。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba099.lzh にdb099.mdb(Access2000版)が保存されています。/* * 1.今回のキッカケ */
http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi の掲示板に、 >タイトル:タブ切り替えで、クエリ毎にレコード抽出するには? > >タブ切る替えることで、対象となるクエリだけを抽出したいのです。 >VBで可能なら挑戦したいのでアドバイスお願いできますか! --- と書き込みをもらいました。 タブコントロールを探ってみたいと思います。/* * 2.普通の使い方? */
顧客 ID 会社名 顧客の氏名 顧客のシメイ 支社名/支店名 請求先住所 市区町村 都道府県 郵便番号 国/地域 顧客の部署名 電話番号 内線番号 FAX 番号 電子メール アドレス 備考 なんて項目から単票フォームを普通に作成すると、 縦に長くなってしまいます。これを、項目別にタブを付けた感じにするために、 タブコントロールを作成します。 タブコントロール?使ったことが無い人も多いと思いますが、
みたいにひっそりと、下のほうに存在してます。 これをフォームに配置します。 ページ33,ページ34なんて感じで、タブが表示されます。
データを3つのグループに分けてみます。 名称 住所 連絡先 とタブを作ります。 えっ、2つしかタブが表示されてないよ。 落ち着いて下さいよ、チャント追加できます、 タブコントロールを選択して、 右ボタンを押し、ページの挿入を選択します。
下記のように縦に長かった入力エリアを タブを使って、グループ分けできました。
![]()
/* * 3.タブコントロールのイベントを探る */
そんな、普通の使い方なんて、聞いてないんだよ、 質問、読み返してみろよボケ と、 読者が言ってるかはわかりませんが、(言われてないけど) 質問を読み返すと、 --- >タイトル:タブ切り替えで、クエリ毎にレコード抽出するには? > >タブ切る替えることで、対象となるクエリだけを抽出したいのです。 >VBで可能なら挑戦したいのでアドバイスお願いできますか! --- そっか、タブが切り替わったタイミングで、 クエリーを変更させたいのか(データを絞りたいのか、、、) よし、イベントを探りますか。 各ページのイベントには、 クリック ダブルクリック マウスボタンクリック マウスボタン移動時 マウスボタン開放時 とあるので、クリック時に、
Private Sub P1_Click() MsgBox "p1タブが押されました" End Sub |
Private Sub tab_ctl_TEST_Change() MsgBox "_Change 変更時のイベントです" End Sub |
Private Sub tab_ctl_TEST_Change() Dim select_page As Integer '選択ページの番号を代入する select_page = Me![tab_ctl_TEST].Value 'メッセージを表示する MsgBox select_page & "番目のタブが選択されました" End Sub |
Private Sub TAB_SELECT_Change() Dim strチーム名 As Variant 'チーム名を配列で受け取る 'タブの順番と同じ名前の配列を作成する strチーム名 = Array("ALL", "横浜", "阪神", "巨人", "ヤクルト", "中日", "広島") Dim strTNAME As String '選択されたチーム名を受け取る '選択されたタブに対応したチーム名を配列から代入 strTNAME = strチーム名(Me![TAB_SELECT].Value) 'データソース用のSQL文を作成する Dim strSQL As String If strTNAME = "ALL" Then '全てのデータ条件無しなら strSQL = "select * from T_AVG Order By 打率順位" '↑T_AVGテーブルから全ての項目をセレクト、打率順位順とする Else 'T_AVGテーブルから全ての項目をセレクト、 '条件はチーム名が一致するデータ、打率順位順とする strSQL = "Select * From T_AVG " _ & "Where チーム = '" & strTNAME & "' " _ & "Order By 打率順位" End If 'データを絞り込むSQL文が完成したので、 'それをフォームのレコードソースにセットする Me.RecordSource = strSQL '単にSQL文を代入するだけでOKなんですよ End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]