次の方法で共有

Access コンボボックスを使ったサブフォームのレコード抽出について

Anonymous
2012-01-30T09:47:18+00:00

いつもお世話になっております。

サブフォームのレコード抽出が上手くできず、ご教示頂ければと思います。

現在、非連結のフォームにサブフォームをデータシート形式で配置しております。

サブフォームのレコードをコンボボックスとコマンドボタンを使用して

サブフォームのフィールド名で抽出をしたいのですが、上手くできません。

<使用しているフォーム>

非連結のフォーム名:「F_08Iアドレスリスト」

サブフォーム名:「SF_06_Iアドレスリスト閲覧のサブフォーム」

レコードソースのクエリ:「Q_06_Iアドレスリスト閲覧」

<非連結フォーム「Q_06_Iアドレスリスト閲覧」に配置オブジェクト>

コンボボックス:「cmb_期選択」(非連結)

値集合ソース:SELECT T_カタログ.カタログ名 FROM Q_07_アドレスリスト期名検索 INNER JOIN T_カタログ ON Q_07_アドレスリスト期名検索.期名=T_カタログ.カタログID;

コマンドボタン:「cmd期検索」

コンボボックスで「カタログ」を選択してコマンドボタン「cmd期検索」を押すと

サブフォームのフィールド「期名」でフィルタがかかるようにしたいのです。

コマンドボタン「cmd期検索」のクリック時のイベントで

Private Sub cmd期検索_Click()

    'ボタンを押すと期名でフィルタ、Nullで解除

    Dim stDocName As String

    stDocName = "期名 Like '*" & Me![cmb_期選択] & "*'"

    Me![SF_06_Iアドレスリスト閲覧のサブフォーム].Form.Filter = stDocName

    Me![SF_06_Iアドレスリスト閲覧のサブフォーム].Form.FilterOn = True

    If IsNull(Me![cmb_期選択].Value) Then

        Me![SF_06_Iアドレスリスト閲覧のサブフォーム].Form.FilterOn = False

    End If

End Sub

としたのですが、サブフォームのレコードソースのフィールド「期名」のデータ型

がルックアップになっており、コンボボックスで選択した「カタログ名」だと

検索できません。ルックアップなので、もしやと思い、「カタログID」を入力して

検索すると抽出は行われるのですが、「カタログ名」で抽出するには

どのようにしたらよろしいでしょうか。

説明が、ややこしくてすみません。よろしくお願い致します。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-01-30T12:24:43+00:00

としたのですが、サブフォームのレコードソースのフィールド「期名」のデータ型

がルックアップになっており、コンボボックスで選択した「カタログ名」だと

検索できません。ルックアップなので、もしやと思い、「カタログID」を入力して

検索すると抽出は行われるのですが、「カタログ名」で抽出するには

どのようにしたらよろしいでしょうか。

ということなら、

コンボボックス 「cmb_期選択」を下記のように設定したらいいかと。

値集合ソース

SELECT T_カタログ.カタログID, T_カタログ.カタログ名

FROM Q_07_アドレスリスト期名検索 INNER JOIN T_カタログ

ON Q_07_アドレスリスト期名検索.期名=T_カタログ.カタログID;

連結列 1

列数 2

列幅 0cm

ちなみに、VBAを使用しなくても、リンクフィールドの設定で抽出することも可能です。

リンク親フィールド cmb_期選択

リンク子フィールド 期名

この回答は役に立ちましたか?

100+ 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

7 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-01-31T03:05:20+00:00

    問題は、おかげさまで解決はしたのですが、

    「リンク親(小)フィールド」の設定は

    どこから行えば良いのでしょうか???

    下記のスレッドの真ん中ぐらいに画像がありすまが、そこに「リンク親(子)フィールド」が写ってますのでご参考に。

    サブフォーム上のコントロールの参照について - Microsoft Answers

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-01-31T02:38:13+00:00

    hatena19 様

    お久しぶりです。hatena19様。

    いつもお世話になっております。

    なるほど、値集合ソースのクエリは

    1対1でシンプルにすれば良いのですね。

    何やら、難しく考えておりました。

    連結列 1

    列数 2

    列幅 0cm

    列数が1になっていたので「2」に設定すると、ちゃんと動作できました!

    どうもありがとうございます!

    >ちなみに、VBAを使用しなくても、リンクフィールドの設定で抽出することも可能です。

    >リンク親フィールド cmb_期選択

    >リンク子フィールド 期名

    昨日、ネットで調べていた時に、「リンク親(小)フィールド」の事が書いてあり

    色々とやってみたのですが、どこのプロパティで設定したら良いのか

    見つけられませんでした。。。

    問題は、おかげさまで解決はしたのですが、

    「リンク親(小)フィールド」の設定は

    どこから行えば良いのでしょうか???

    すみませんが、よろしくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2012-01-31T02:28:26+00:00

    MukkuMuku 様

    お久しぶりです。いつもありがとうございます。

    サブフォームに、[カタログ名] のフィールドを追加してみたのですが

    同じ状況になってしまいます。。。。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2012-01-30T11:31:14+00:00

    こんばんは、MukkuMukuです。

    サブフォームのコントロールソースに、[カタログ名] のフィールドを追加すればよいのではなかろうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません