Access (VBA) |
|
(Windows 11 Home : 指定なし)
フィルターを2回使用したい
投稿日時: 26/03/29 09:44:49
投稿者: ekane
|
|---|---|
|
よろしくお願いいたします
|
|
|
|
投稿日時: 26/03/31 10:19:09
投稿者: hatena
|
|---|---|
|
取引先でフィルターかけるオプショングループと、ジャンルでフィルターかけるオプショングループがフォーム上にあるということでしょうか。
Sub SetFilter()
Dim 条件取引先 As String
Dim 条件ジャンル As String
'取引先オプショングループの値に対応する条件式の生成
条件取引先 = "・・・・・・・・"
'ジャンルオプショングループの値に対応する条件式の生成
条件ジャンル = "・・・・・・・・"
Me.Filter = "(" & 条件取引先 & ") AND (" & 条件ジャンル & ")"
End Sub
Private Sub オプショングループ_AfterUpdate()
Call SetFilter
End Sub
Private Sub オプショングループ_AfterUpdate()
Call SetFilter
End Sub
オプショングループ(またはオプションボタン)の設定が不明なので考え方のみの一例です。 |
|
|
|
投稿日時: 26/03/31 10:20:50
投稿者: sk
|
|---|---|
引用: 帳票フォームの Filter プロパティの値を変更することによって フォームフィルターを実行しているとして、その処理を どのフォームのどのコントロールのどのイベントで実行しているのでしょうか。 また、仮にその帳票フォーム自身のフォームヘッダーかフォームフッターに 複数個のオプションボタンが配置されているとして、それらは 1 つのオプショングループを 親コントロールとしてリンクしている(いずれか 1 つしか選択できない)のか、 それぞれ独立したオプションボタンである(複数選択が可能である)のかが不明です。 引用: 同上。 引用: 少なくとも、上記のステートメントは実際にフォームモジュールに記述されているものとは思えません。 そのまま実行すれば構文エラーとなるはず。 また、フォーム上のコントロール[取引先名]および[名称]と、 前述のオプションボタン(オプショングループ)との関係が不明瞭です。 引用: 「フォームのレコードソース上の複数のフィールドに対する AND 条件を 任意に指定できるようにしたい」 「(『取引先』も含め)それぞれの条件は省略できるようにしたい」 とは異なるニュアンスが含まれているのでしょうか。 |
|
|
|
投稿日時: 26/03/31 20:46:09
投稿者: ekane
|
|---|---|
|
hatena様
|
|
|
|
投稿日時: 26/03/31 21:37:53
投稿者: ekane
|
|---|---|
|
sk様
|
|
|
|
投稿日時: 26/03/31 23:08:08
投稿者: sk
|
|---|---|
引用: 引用: ・[frm顧客検索]、[frm取引先親]、[frm取引先子]の 3 つのフォームがある。 ・[frm顧客検索]は非連結フォームである(レコードソースがない)。 ・[frm取引先子]は、ある選択クエリをレコードソースとする帳票フォームである。 ・[frm取引先親]の詳細セクション上には、[frm取引先子]をソースオブジェクトとする サブフォームコントロールが配置されている。 という前提であると仮定して、[frm取引先親]は連結フォームでしょうか。 それとも非連結フォームでしょうか。 また、[frm取引先子]をソースオブジェクトとするサブフォームコントロールの [リンク親フィールド]プロパティおよび[リンク子フィールド]プロパティは どのように設定されているのでしょうか。 引用: [frm顧客検索]上の非連結オプショングループ[フレーム97]の[更新後処理]イベントの 発生時に実行しているのは、埋め込みマクロとイベントプロシージャのどちらでしょうか。 埋め込みマクロの場合は、そのマクロ内で実行しているそれぞれのアクションとその引数を、 イベントプロシージャの場合は、そのプロシージャ全体のコードを具体的に明記して下さい。 引用: [frm取引先親]のフォームヘッダーセクション上に、1 つのオプショングループと その子コントロールとなる複数個のオプションボタンを配置する、として 引用: ここでの[顧客名]および[ジャンル]とは、それぞれどのフォームのレコードソースに 含まれているフィールドのことをおっしゃっているのでしょうか。 |
|
|
|
投稿日時: 26/04/01 22:01:23
投稿者: ekane
|
|---|---|
|
sk様
|
|
|
|
投稿日時: 26/04/02 13:34:28
投稿者: hatena
|
|---|---|
お教え頂いたコード(一つのフォーム上での)考え方を基礎に勉強させていただきます(時間がかかり ますが) 一つのフォーム上にオプショングループがあるとの前提の回答ですが、実際は別々のフォームにあるとのことですので私の回答はスルーしてください。 そのうえでskさんへの回答で判明したことと、まだ不明な点を下記のように整理してみました。 判明したとした部分で間違いがあれば指摘してください。 また、不明点について補足してください。 [frm顧客検索] レコードソース: mtb取引先親 オプショングループ: フレーム97 オプションボタン配置 更新後処理で自身にフィルターをかける(Me.Filter利用) frm取引先親にフィルターはかけないのか? かけるならどこでどのタイミングでかけているのか? [frm取引先親] レコードソース: mtb取引先親 オプショングループ: フレーム? 更新後処理でジャンルでフィルターをかける 何にフィルターをかけるのか? サブフォーム(frm取引先子)?それとも 自分自身(frm取引先親) サブフォームの設定 ソースオブジェクト:frm取引先子 リンク親フィールド:取引先スペックID リンク子フィールド:取引先スペックID [frm取引先子] レコードソース: ある選択クエリ?、または、mtb取引先子? mtbジャンル? ある選択クエリの場合、具体的にどのようなクエリなのか? SQLを提示するとわかりやすい |
|
|
|
投稿日時: 26/04/02 21:44:12
投稿者: ekane
|
|---|---|
|
hatena様
|
|
|
|
投稿日時: 26/04/03 15:35:14
投稿者: hatena
|
|---|---|
|
> hatena様にも再びお手数をかけてしまいますので無視して頂いて結構です
Private Sub フレーム100_AfterUpdate()
Dim jyouken As String
Select Case Me!フレーム100
Case 1
jyouken = "ジャンル = '野菜'"
Case 2
jyouken = "ジャンル = '果物'"
Case 3
jyouken = "ジャンル = 'その他'"
End Select
Me.埋込1.Form.Filter = jyouken
Me.埋込1.Form.FilterOn = True
End Sub
「埋込1」の部分は実際のサブフォームコントロール名に変更してください。 |
|
|
|
投稿日時: 26/04/03 20:54:38
投稿者: ekane
|
|---|---|
|
hatena様 お付き合いいただき感謝に堪えません
|
|
|
|
投稿日時: 26/04/05 08:33:01
投稿者: ekane
|
|---|---|
|
hatena様
|
|



