Page 270 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼フォーム上で使用するコンボボックスについて B-BOSS 03/5/6(火) 17:40 ┗Re:フォーム上で使用するコンボボックスについて こうちゃん 03/5/6(火) 21:35 ┗Re:フォーム上で使用するコンボボックスについて B-BOSS 03/5/8(木) 22:40 ┗Re:フォーム上で使用するコンボボックスについて こうちゃん 03/5/9(金) 9:07 ┗Re:フォーム上で使用するコンボボックスについて B-BOSS 03/5/11(日) 16:12 ─────────────────────────────────────── ■題名 : フォーム上で使用するコンボボックスについて ■名前 : B-BOSS ■日付 : 03/5/6(火) 17:40 -------------------------------------------------------------------------
Access97とWinMeを使っています。 フォーム上に作成したコンボボックスでデーターの入力を考えています。 その際、コンボボックスのソースは別のデータベースから、参照しています。 しかし、その数多すぎて、探すのが非常に大変でよく似たデーターのどは 間違えしまいます。 コンボボックスに表示するデーターにフィルターを掛ける事って出来ますか? |
B-BOSSさん、こんにちは > Access97とWinMeを使っています。 > フォーム上に作成したコンボボックスでデーターの入力を考えています。 >その際、コンボボックスのソースは別のデータベースから、参照しています。 > > しかし、その数多すぎて、探すのが非常に大変でよく似たデーターのどは >間違えしまいます。 > コンボボックスに表示するデーターにフィルターを掛ける事って出来ますか? できます。!! これ以上の回答は、もう少し詳細にご説明いただかないとできません。 どんなデータで、どんなフィルタをかけるのですか? ヒント:Me.Commbo1.RowSource="SELECT * From T1 WHERE F1 LIKE '00*'" |
ありがとうございます。 ”出来ます”の言葉にすごく喜んで降ります。(ずいぶん、悩んでいますので・・。) 説明が不十分で申し分けありませんでした。下記に詳細を書き込みます。 < 詳 細 > 生産管理のSYSTEMを検討中です。 生産するMODELには受注番号があります。 更に各モデルはいくつかの工程に分けられ生産されます。これをAssyと呼んでいます。 そして、この3っの内容でテーブルを作成しました。 受注テーブル、モデルテーブル、Assyテーブルと 言った具合です。 受注テーブルとAssyテーブルにはModelコードのフィールドを儲け、モデルテーブル のキーフィールドと連結させました。 受注テーブル <受注番号><Modelコード><生産数量> モデルテーブル <Modelコード><モデル名><分類名> Assyテーブル <Assyコード><Modelコード><Assy> 上記の3つのテーブルを連結しクエリーテーブルを作成しました。 次に生産される製品には全て番号(10桁の連番)をつける必要があります。 この番号は各受注に割り当てられており、勝手には決められませんので 連番用のテーブルを作成しました。 この連番テーブルは受注番号とAssyの両方でクエリに連結する必要があるので、 下記の様な連番テーブルを作成しました。 連番テーブル <受注番号><Assyコード><連番スタート><連番エンド> ここで、一番最後に入力するのが、連番テーブルです。 この時、受注番号とAssyコードをコンボボックスで入力したいのです。 受注番号を入力した後、Assyコードを入力します。その際、受注番号のモデルに対応する Assyだけを表示してほしいのです。 Assyは各モデルによって微妙に違うので同じAssy名でも同じ扱いは出来ません。 1つのモデルには約10の工程があり、モデルは50を超えます。 すると50×10=500のAssyが必要となります。500のリストからの選択は不可能です。 このリストを対応するモデルの10だけにしたいのです。 可能でしょうか? よろしくお願いします。 |
B-BOSSさん、こんにちは 受注番号を入力したとき、受注テーブルから対応するModelコードを読み込んで、Assyテーブルの同じModelコードのAssyコードだけをコンボボックスの値集合に設定したいってことでいいですか? ここではモデルテーブルは特に関係してきませんよね。 ヒントのまんまですが、仮に・・ Cmb受注:受注番号を選択(入力)するコンボボックス 1列にModelコード、2列に受注番号として、連結列は1としておきます。 CmbAssy:Assyコードを選択するコンボボックス 1列にAssyコード、2列にAssyとして、連結列は1としておきます。 として、 Cmb受注の「更新前処理」のイベントで Private Sub Cmb受注_BeforeUpdate(Cancel As Integer) Dim StrSQL As String StrSQL = "SELECT Assyコード, Assy FROM T_Assy " StrSQL = StrSQL & "WHERE Modelコード = '" & Me.Cmb受注.Value & "' " Me.CmbAssy.RowSource = StrSQL Me.CmbAssy.Requery End Sub として、あとはCmbAssyの値(Assyコード)から、クエリなりSQLなりで、連番テーブルから連番を取得すればお望みの処理ができると思います。 |
▼こうちゃん さん: ありがとうございます。 おかげさまで動きました。今後、SQLの知識もあった方がいい見たいですね。 がんばって勉強します。 ありがとうございました。 |