• 締切済み

Access フォームの作り方

Microsoft Accessでデータベースとフォームを作っています。 テーブル1 記号 列車名 いよ いよ1号 いよ いよ2号 いよ いよ3号 とさ とさ1号 とさ とさ2号 とさ とさ3号 というテーブルを作ってあります。(実際は100件以上あります) フォームのテキストボックスに「いよ」と入力すると、プルダウンから「いよ1号」「いよ2号」「いよ3号」が選択できるようにしたいですが、どんなフォームを作れば良いですか。

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/625)
回答No.3

こんにちは。 リレーショナル型のACCESSの特性を生かした型式にするため2つのテーブルに作り直します。 項目名の:右は説明で、主に項目のデータ型です 1.M_列車種別:頭のM_はマスターテーブル 1-1.ID:オートナンバー型、主キー、半自動 1-2.列車種別:重複なし、項目のインデックスプロパティで定義 1-3.登録日:項目の規定値プロパティにDATE()と入力、登録履歴になる 2.M_列車名:M_以外にT_(トランザクション)、S_(参照)、W_(ワーク)   をテーブルの種類別に使っています。 2-1.オートナンバー型、主キー、半自動 2-2.列車名:重複なし、項目のインデックスプロパティで定義 2_3.列車種別ID:長整数型、M_列車種別に関連付け(リレーションシップ)   テーブルデザインビューで、ルックアップ定義   M_列車名のデザインビューで①②と進むと   ルックアップタグの表示コントロールがテキストボックスになっている これの右端▼クリックからコンボボックス選択で添付図になる ④値集合タイプ⑤値集合ソースと進んで ⑥連結列=1:列車種別の1番目の項目 ⑦列数=2:列車種別の先頭から2列(ID、列車種別名) ⑧列幅=0:⑦のIDは非表示(オートナンバー型のため) ⑨行数:任意 2_4.登録日:項目の規定値プロパティにDATE()と入力、登録履歴になる

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1746/2622)
回答No.2

コンボボックス自体で制御する方法もあります。 たとえばフォーム1のコンボ4として 値集合ソースの選択クエリで 列車名の抽出条件を Like [Forms]![フォーム1]![コンボ4] & "*" として コンボ4のプロパティでデータタブの自動拡張を「いいえ」にして 変更時のイベントプロシージャに Private Sub コンボ4_Change() DoCmd.RunCommand acCmdSaveRecord Me![コンボ4].Requery If Len(Me.[コンボ4]) > 0 Then Me![コンボ4].SelStart = Len(Me.[コンボ4]) End If Me![コンボ4].Dropdown End Sub としておけば、コンボ4に入力する都度入力した文字をもとにドロップダウンが表示され、連続して入力していけば徐々に絞り込まれていきます。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1746/2622)
回答No.1

コンボボックスのソースをテーブル1をもとにする選択クエリで記号がテキストボックスと部分一致する抽出条件にしておけば、選択肢の一部分だけの入力でコンボボックスの選択肢は絞り込まれます。 または、記号を選択するカテゴリコンボボックスを作成し、もとの選択肢のコンボボックスのソースをカテゴリコンボボックスを抽出条件とする選択クエリにするなども考えられます。 クエリは該当するコントロールのプロパティの値集合ソースで作成すればいいと思います。 記号のテキストボックスかカテゴリのコンボボックスではクリック時や更新後処理で(イベントプロシージャなら) Me![コンボボックス名] = Null Me![コンボボックス名].Requery とかが必要です。 質問して愛想なく締め切るのは不思議です。

すると、全ての回答が全文表示されます。

関連するQ&A