ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3917147 Access コマンドボタンクリックでサブフォームに結果表示
質問者:hyanwy Access初心者です。
フォームに50音順コマンドボタンを作成、
コマンドボタンの「あ」をクリックしたら、下のサブフォームに
「あ」から始まる名前を表示したいのです。
サブフォームに表示するクエリの抽出条件にどのようにを入力するのでしょうか?あいまい検索??
コマンドボタンのイベントからマクロを作成するのでしょうか?
すごく初歩的な質問ですね、、、お恥ずかしい
どなたか教えていただければうれしいです。
困り度:
  • 困っています
質問投稿日時:
08/04/02 22:32
最新から表示回答順に表示

回答

ANo.2 ボタンを50以上も並べるつもり?
出来ないことはないですが[初心者]だというのなら
テキストボックスに検索文字を入れてボタンクリックで検索する
という普通のインタフェースから始める方がいいんじゃないの
回答者:CHRONOS_0
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
08/04/03 11:40
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼回答ありがとうございます。
はい50以上並べたいと思います。
初心者のくせにテキストボックスに文字をいれる手間を
はぶきたくてワンクリックで表示させたいんです。
実用書にはなかなか例が載ってませんね
考えてるより難しい事なのでしょうか。。。
なんとかがんばってみたいと思っています。

回答

ANo.1 名簿一覧:

ID__名前_______読み
01__鈴木 一郎__すずき いちろう
02__中村 主水__なかむら もんど

このようなテーブルを仮定します。

<メイン・サブフォーム形式ではない方法で>

1、このテーブルを基に<表形式>でフォーム[名簿一覧]を作成します。
2、[デザインビューでフォームを作成する]をクリックします。
3、無地のフォームにフォーム[名簿一覧]をドラッグアンドドロップします。
4、フォーム[名簿一覧]を配置したフォームのプロパティを最適化します。

・標題=名簿一覧の参照
・スクロールバー=なし
・レコードセレクタ=いいえ
・移動ボタン=いいえ

5、ここで、一旦、[名簿一覧の参照]名で保存します。

出来上がったフォーム[名簿一覧の参照]を開くと全ての[名簿一覧]が表示されています。
問題は、この全表示を列[読み]の先頭の一文字のみに対応するレコードに絞り込む方法。

6、フォーム[名簿一覧の参照]に[コンボ_頭文字]を配置します。

・値集合タイプ=値リスト
・値集合ソース=す・・・で始まる名簿一覧;な・・・で始まる名簿一覧 <-- 実際的ではないが・・・。

7、[コンボ_頭文字]を右クリックして[イベントのビルド]-[コードビルダ]をクリック。

Private Sub コンボ_頭文字_AfterUpdate()
  If Len(Me.コンボ_頭文字.Value & "") Then
    Me.名簿一覧.Requery
  End If
End Sub

ここで一旦再保存します。

8、フォーム[名簿一覧]をクリックし[レコードソースを編集]し保存。

SELECT
 名簿一覧.ID,
 名簿一覧.名前,
 名簿一覧.読み
FROM 名簿一覧
WHERE (((名簿一覧.読み) Like Left(Forms!名簿一覧の参照!コンボ_頭文字,1) & "*"));

9、フォーム[名簿一覧の参照]の起動時の設定を追加。

Private Sub Form_Load()
  Me.コンボ_頭文字.Value = Me.コンボ_頭文字.ItemData(0)
  コンボ_頭文字_AfterUpdate
End Sub

これで、起動時にコンボボックスの先頭の頭文字に対応するレコードが表示されます。

以上!
回答者:Husky2007
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/04/03 09:32
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼丁寧な回答ありがとうございます!
教えて頂いたとおり作ることができました!
ホントに感謝です。コマンドボタンではなく、コンボボックスでの
作成となりましたが、大満足です。
なにせ初心者なもんで、コードを触ることが初めてでした。
とても勉強になりました。
 
最新から表示回答順に表示