Accessの検索フォーム作成で

このQ&Aのポイント
  • Access2000の検索フォーム作成方法を教えてください。
  • 一覧テーブルの名前や項目から検索できるAccessのデザインフォームについて詳しく教えてください。
  • 現在の検索フォームはand検索ですが、or検索にする方法を教えてください。
回答を見る
  • ベストアンサー

Accessの検索フォーム作成で。

Access2000です。 一覧テーブルは ・名前 ・項目1 ・評価1 ・項目2 ・評価2 となっていて、 山田太朗  | タバコのポイ捨てはしない  | 5 | 10分前行動 | 4 | 前田前   | 交通ルールを守る      | 5 | 挨拶をする  | 4 | 大坪拳   | 10分前行動        | 4 | 挨拶をする  | 5 | のようになっています。 これをもとに「検索フォーム」をデザインフォームで、 名前   [     ] 項目1  [     ] 項目2  [     ] 項目3  [     ] と作成し、「検索」というボタンを押すと、「検索結果フォーム」に検索結果が出るようにしました。 検索ボタンは Private Sub コマンド9_Click() Dim SQL As String Dim WhereCond As String Dim condName As String Dim condKoumoku1 As String Dim condKoumoku2 As String Dim condKoumoku3 As String WhereCond = "" '名前 If Me!名前.Value <> "" Then condName = "(一覧.名前 like '*" & Me!名前.Value & "*')" WhereCond = WhereCond & " and " & condName End If '項目1 If Me!項目1.Value <> "" Then condKoumoku1 = "(一覧.項目1 like '*" & Me!項目1.Value & "*')" WhereCond = WhereCond & " and " & condKoumoku1 End If : WhereCond = Mid(WhereCond, 6) DoCmd.OpenForm "検索結果フォーム", acNormal, , WhereCond End Sub となっています。 そこで、検索フォームで 項目に検索値を入れた場合、一覧の項目すべての中から検索できるようにするにはどうしたらいいのでしょうか? また、今の状態ですとand検索ですが、or検索するにはどのようにしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんなところでしょうか。 今現在の状態から、 変数宣言を追加します Dim tempCond As String 「'項目1」の行の直前に追加します tempCond = "" 項目1~3を以下のように変更します '項目1 If Me!項目1.Value <> "" Then   condKoumoku1 = "(一覧.項目1 like '*" & Me!項目1.Value & "*')"   condKoumoku2 = "(一覧.項目2 like '*" & Me!項目1.Value & "*')"   condKoumoku3 = "(一覧.項目3 like '*" & Me!項目1.Value & "*')"   tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If '項目2 If Me!項目2.Value <> "" Then   condKoumoku1 = "(一覧.項目1 like '*" & Me!項目2.Value & "*')"   condKoumoku2 = "(一覧.項目2 like '*" & Me!項目2.Value & "*')"   condKoumoku3 = "(一覧.項目3 like '*" & Me!項目2.Value & "*')"   tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If '項目3 If Me!項目3.Value <> "" Then   condKoumoku1 = "(一覧.項目1 like '*" & Me!項目3.Value & "*')"   condKoumoku2 = "(一覧.項目2 like '*" & Me!項目3.Value & "*')"   condKoumoku3 = "(一覧.項目3 like '*" & Me!項目3.Value & "*')"   tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If ここに以下の行を追加します If tempCond <> "" then   tempCond = Mid(tempCond, 5)   WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If あとは同じ これも試してないので分からないですけど。 では。

KODAMAR
質問者

お礼

できました! これです! やっと完成しました。 今回も長々とありがとうございました。 また何かありましたら宜しくお願いします。 本当にありがとうございました。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

すみません、また間違えました。 下の方のMid関数でANDの場合は前の5文字を削除すればいいですが、ORの場合は4文字だけ削除しないといけません。 以下のように変更して下さい。 変数宣言を追加します Dim strCount As Long  '演算子の文字数 Select Caseの部分を以下のように変更します Select Case Me!fraOper.value   Case 1  'AND検索     tempOper = " AND "  '前後の半角スペースを忘れずに     strCount = 5   Case 2  'OR検索     tempOper = " OR "  '前後の半角スペースを忘れずに     strCount = 4 End Select 下の方のMid関数の部分を以下のように変更します WhereCond = Mid(WhereCond, strCount + 1) それから検索方法ですが、KODAMARさんがどういうパターンの検索をしたいのかを明確にして下さい。 例えば、項目は3つありますが、項目1(または2、3)だけで検索したいことがあるのか、項目1~3のどれかに当てはまるもの(つまり最初の質問の1つ目)だけでいいのか。 さらに、名前と項目が両方とも当てはまるものを検索したいのか、また名前か項目のどちらかにあてはまればいいのか。 それぞれANDとORで必要なパターンを教えて下さい。 では。

KODAMAR
質問者

お礼

はい、できました!ありがとうございます!! >それから検索方法ですが、KODAMARさんがどういうパターンの検索をしたいのかを明確にして下さい。 一覧テーブルの中身を [T1]名前 [T2]項目1 [T3]項目2 [T4]項目3 とし、検索フォームの中身を [F1]名前 [F2]項目1 [F3]項目2 [F4]項目3 とします。 1.[F1]山田 AND [F2]10分前 とした場合は、[T1]に山田があり、[F2]~[F4]に10分前があるものを検索。 2.[F1]山田 AND [F2]10分前 [F3]ポイ とした場合は、[T1]に山田があり、[F2]~[F4]に10分前かポイがあるもの。 というようなことがしたいのです。 名前と項目の検索方法は「AND」か「OR」で選べるようにし、 項目同士は基本的にORでどこに入れても[T2]~[T4]から検索するようにしたいのです。 説明が下手ですがおわかりいただけたでしょうか??

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

ご苦労様です。 1つ目と2つ目の質問がごちゃごちゃになっているようです。 私の書いた1つ目は、検索フォームに[名前]と[項目]の2つしかない場合です。 つまり、1つの[項目]に対するキーワードで項目1~3の全部を検索するやり方です。 一方、2つ目は検索フォームに[名前]、[項目1]、[項目2]、[項目3]と入力欄があり、ANDなら4つ全ての条件を満たし、ORならどれかの条件を満たすというやり方です。 したがって、項目1~3を分ける(つまり1つ目の質問内容は無視する)場合は、元のKODAMARさんのコードの「'名前」の行より後ろを、ほとんどそのまま使用して下さい。 そして、名前、項目1~3の WhereCond = ・・・・・ の行を、それぞれ WhereCond = WhereCond & tempOper & condName WhereCond = WhereCond & tempOper & condKoumoku1 WhereCond = WhereCond & tempOper & condKoumoku2 WhereCond = WhereCond & tempOper & condKoumoku3 に替えるだけです。 では。

KODAMAR
質問者

お礼

ありがとうございます。 今現在コードは ------------------------------ Private Sub コマンド9_Click() Dim SQL As String Dim WhereCond As String Dim condName As String Dim condKoumoku1 As String Dim condKoumoku2 As String Dim condKoumoku3 As String Dim tempOper As String '演算子 WhereCond = "" '変数の初期化。本当はいらないけど明示的に。 Select Case Me!fraOper.Value Case 1 'AND検索 tempOper = " AND " '前後の半角スペースを忘れずに Case 2 'OR検索 tempOper = " OR " '前後の半角スペースを忘れずに End Select '名前  (入力欄がテキストボックスとする) If Me!名前.Value <> "" Then condName = "(一覧.名前 like '*" & Me!名前.Value & "*')" WhereCond = WhereCond & tempOper & condName End If '項目1 If Me!項目1.Value <> "" Then condKoumoku1 = "(一覧.項目1 like '*" & Me!項目1.Value & "*')" WhereCond = WhereCond & tempOper & condKoumoku1 End If '項目2 If Me!項目2.Value <> "" Then condKoumoku2 = "(一覧.項目2 like '*" & Me!項目2.Value & "*')" WhereCond = WhereCond & tempOper & condKoumoku2 End If '項目3 If Me!項目3.Value <> "" Then condKoumoku3 = "(一覧.項目3 like '*" & Me!項目3.Value & "*')" WhereCond = WhereCond & tempOper & condKoumoku3 End If WhereCond = Mid(WhereCond, 6) DoCmd.OpenForm "検索結果フォーム", acNormal, , WhereCond End Sub ------------------------------ となっています。 andを選択して検索をすると大丈夫なのですが、 orを選択するとエラーが出てしまいます。 何がだめなのでしょうか? またこの方法だと、 名前が「山田」で 項目のどこかに「10分」と入る という検索はできなくなるのでしょうか? 併せて宜しくお願いします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 まず最初の質問から。 >項目に検索値を入れた場合、一覧の項目すべての中から検索できるようにするにはどうしたらいいのでしょうか? これは、現在検索フォームで、[項目1]、[項目2]、[項目3]となっているのを[項目]1つだけにして、3つの項目のどれかに入っているものを抽出する、ということでいいですね。 項目のところだけ変更します。 '項目 If Me!項目.Value <> "" Then   condKoumoku1 = "(一覧.項目1 like '*" & Me!項目.Value & "*')"   condKoumoku2 = "(一覧.項目2 like '*" & Me!項目.Value & "*')"   condKoumoku3 = "(一覧.項目3 like '*" & Me!項目.Value & "*')"   WhereCond = WhereCond & " AND (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If 次にOR検索ですが。 検索フォームに、オプショングループ(fraOper)と2つのオプションボタン(optAND、optOR)をおきます。(コントロール名は任意につけて下さい) オプションボタンはグループ化し、オプションボタンのオプション値が1の方のキャプションを"AND"、同じく2の方を"OR"とします。 変数宣言を追加します。 Dim tempOper As String  '演算子 WhereCond = "" のすぐ後ろに以下のコードを追加します。 Select Case Me!fraOper.value   Case 1  'AND検索     tempOper = " AND "  '前後の半角スペースを忘れずに   Case 2  'OR検索     tempOper = " OR "  '前後の半角スペースを忘れずに End Select 各名前、項目のWhereCond = の式を以下のコードに変更します。 WhereCond = WhereCond & tempOper & condName WhereCond = WhereCond & tempOper & condKoumoku1 ・・・・・ 要は、WhereCondの直後の" AND "をtempOperに替えるのです。 がんばって下さい。 では。

KODAMAR
質問者

お礼

回答ありがとうございます。 以前もお世話になったKODAMARです。 早速試しました! 1つ目の方は無事うまくいきました。 が!2つ目がエラーになってしまうのです。 クエリ式がない・・・と。 実際のコードは ------------------------------ Private Sub コマンド9_Click() Dim SQL As String Dim WhereCond As String Dim condName As String Dim condKoumoku1 As String Dim condKoumoku2 As String Dim condKoumoku3 As String Dim tempOper As String '演算子 WhereCond = "" '変数の初期化。本当はいらないけど明示的に。 Select Case Me!fraOper.Value Case 1 'AND検索 tempOper = " AND " '前後の半角スペースを忘れずに Case 2 'OR検索 tempOper = " OR " '前後の半角スペースを忘れずに End Select '名前  (入力欄がテキストボックスとする) If Me!名前.Value <> "" Then condName = "(一覧.名前 like '*" & Me!名前.Value & "*')" WhereCond = WhereCond & tempOper & condName End If '項目1 If Me!項目1.Value <> "" Then condKoumoku1 = "(一覧.項目1 like '*" & Me!項目1.Value & "*')" condKoumoku2 = "(一覧.項目2 like '*" & Me!項目1.Value & "*')" condKoumoku3 = "(一覧.項目3 like '*" & Me!項目1.Value & "*')" WhereCond = WhereCond & " tempOper (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If '項目2 If Me!項目1.Value <> "" Then condKoumoku1 = "(一覧.項目1 like '*" & Me!項目2.Value & "*')" condKoumoku2 = "(一覧.項目2 like '*" & Me!項目2.Value & "*')" condKoumoku3 = "(一覧.項目3 like '*" & Me!項目2.Value & "*')" WhereCond = WhereCond & " tempOper (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If '項目3 If Me!項目1.Value <> "" Then condKoumoku1 = "(一覧.項目1 like '*" & Me!項目3.Value & "*')" condKoumoku2 = "(一覧.項目2 like '*" & Me!項目3.Value & "*')" condKoumoku3 = "(一覧.項目3 like '*" & Me!項目3.Value & "*')" WhereCond = WhereCond & " tempOper (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If WhereCond = Mid(WhereCond, 6) DoCmd.OpenForm "検索結果フォーム", acNormal, , WhereCond End Sub ------------------------------ となっています。 どこが違うのでしょうか? 毎回申し訳ありませんが、宜しくお願いします。

関連するQ&A

  • 検索フォームで検索するものが決まっているときのかきかた。

    Ac2000です。 T_マスタというテーブルに 名前や所属の課、年度などが入っています。 このTマスタから検索する検索フォームがあります。 検索ボタンがいくつかあり、 年度を検索するようにテキストボックスがあります。 年度テキストボックスにいれた年度で検索しつつ、 押した検索ボタンによって検索する方法はどのようにしたらよいでしょうか? Ex.検索ボタンには所属の課などがかいてあり、「総務」「営業」などどかいてあります。 ソースはこんな感じです。 ------------------------------ Dim SQL As String Dim WhereCond As String Dim condNendo As String '年度 If Me!年度.Value <> "" Then condNendo = "(T_マスタテーブル.年度 = " & CLng(Me!年度.Value) & ")" WhereCond = WhereCond & " AND " & condNendo End If WhereCond = Mid(WhereCond, 6) DoCmd.OpenReport "R_マスタ_一覧", acPreview, , WhereCond End Sub

  • Accessの検索フォーム(CLng)で。

    検索フォームの項目は以下の通りです。 ○ AND  ○ OR 名前  [    ] 項目  [    ]▼  [    ]▼  [    ]▼ もとになってるテーブルは ・名前 ・項目1 ・項目2 ・項目3 ・項目4 ・項目5 というようなっています。 (項目1-5は数値データなのであいまい検索はしたくありません。) 検索ボタンのコードは Select Case Me!検索方法.Value Case 1 'or tempOper = " AND " strCount = 5 Case 2 'and tempOper = " OR " strCount = 4 End Select '名前 If Me!SyainName.Value <> "" Then condName = "(T_マスタ.氏名 like '*" & Me!SyainName.Value & "*')" WhereCond = WhereCond & tempOper & condName End If If Me!項目1.Value <> "" Then condKoumoku1 = "(T_マスタ.項目1 = " & CLng(Me!項目1.Value) & ")" condKoumoku2 = "(T_マスタ.項目2 = " & CLng(Me!項目1.Value) & ")" condKoumoku3 = "(T_マスタ.項目3 = " & CLng(Me!項目1.Value) & ")" tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If If tempCond <> "" Then tempCond = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果_一覧", acNormal, , WhereCond これを実行すると クエリ式 '((OR OR))' の構文エラー:演算子がありません。 と出ます。 どこを訂正すべきでしょうか? Access2000です。

  • 以下のアクセスの検索フォームで。。。

    検索フォームの項目は以下の通りです。 ○ AND  ○ OR 名前  [    ] 項目  [    ]▼  [    ]▼  [    ]▼ もとになってるテーブルは ・名前 ・項目1 ・項目2 ・項目3 ・項目4 ・項目5 というようなっています。 検索ボタンのコードは Select Case Me!検索方法.Value Case 1 'or tempOper = " AND " strCount = 5 Case 2 'and tempOper = " OR " strCount = 4 End Select '名前 If Me!SyainName.Value <> "" Then condName = "(T_マスタ.氏名 like '*" & Me!SyainName.Value & "*')" WhereCond = WhereCond & tempOper & condName End If '項目 If Me!Koumoku1.Value <> "" Then condKoumoku1 = "(T_マスタ.項目1 like '*" & Me!Koumoku1.Value & "*')" condKoumoku2 = "(T_マスタ.項目2 like '*" & Me!Koumoku1.Value & "*')" condSKoumoku3 = "(T_マスタ.項目3 like '*" & Me!Koumoku1.Value & "*')" tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If If tempCond <> "" Then tempComd = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果_一覧", acNormal, , WhereCond これを実行すると クエリ式 '(OR((T_マスタ.項目1 like …')の構文エラー:演算子がありません。 と出ます。 どこを訂正すべきでしょうか? (項目を含まない状態ではうまく検索できてました。) Access2000です。

  • Access検索フォームで範囲を指定しての検索

    クエリーで計算して出した結果をもとにフォームを使って検索をしたいのですが、うまくできません。 クエリーの計算式は誕生日から年齢を出すものが入っています。 フォームのボタンにVBAで '年齢 If Me!年齢開始.Value <> "" Then Age1 = "(Q_メイン.年齢 >= " & "0" & " and =< " & Me!年齢終了.Value & ")" WhereCond = WhereCond & tempOper & Age1 End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond となっています。 tempOperは、検索方法がORとANDが選べるようになっていて、それの結果が入っています。

  • サブフォーム用のテーブルのデータで検索をしてマスタフォームに表示したい。

    Access2000での質問です。 T_マスタ(氏名ID・氏名)・T_サブ(氏名ID・データ年・データ種類)というテーブルから F_マスタ・F_サブというフォームを作成し、 F_マスタの中にサブフォームとしてF_サブを入れています。(氏名IDでリンク) F_検索というフォームを作成し、 データ年・データ種類で検索するようにしました。 この結果を、F_マスタで表示したいのですが、 F_マスタはT_マスタから作成されているため、検索結果が 希望するものではなくなってしまいます。 F_サブでみればきちんと検索されているのですが、 それでは氏名がみれないので。。。 このようなことはできるのでしょうか? F_検索の検索ボタンのコードです。 ------- Private Sub コマンド1_Click() Dim SQL As String Dim WhereCond As String Dim condNendo As String Dim condSyurui As String 'データ年 If Me!データ年.Value <> "" Then condNendo = "(T_サブ.データ年 like '*" & Me!データ年.Value & "*')" WhereCond = WhereCond & " AND " & condNendo End If '種類 If Me!データ種類.Value <> "" Then condSyurui = "(T_サブ.データ種類 like '*" & Me!データ種類.Value & "*')" WhereCond = WhereCond & " AND " & condSyurui End If WhereCond = Mid(WhereCond, 6) DoCmd.OpenForm "F_サブ", acNormal, , WhereCond End Sub ------- *上記の「F_サブ」を[F_マスタ」で開くようにしたいのです。 宜しくお願いします。

  • Access2003 検索フォームの作成について

    Access2003で検索フォームを作成しようと思うのですが、 過去の質問を見てもわからなかったので投稿します 帳票形式で全てのデータを表示する一覧画面フォームと 画面のフッター部分に検索ワードを入れるテキストボックス (名前は 検索ボックス)を作成し そこでエンターキーが押下された場合に検索結果一覧画面のフォームを開き、帳票形式で検索結果を表示しようと思います データベースについては既にエクセルからインポートしてあります (名前は テーブル) 検索結果は複数あることがあります 一覧画面フォームを作成するところまでは出来たのですが... その先の検索結果を表示するフォームがうまくいきません 一覧画面フォームの検索ボックスの内容********* Private Sub 検索ボックス_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then Docmd.OpenForm "検索結果画面", acNormal, , , , acDialog, Me.検索ボックス.Value End If End Sub ********************************************* 検索結果一覧画面の内容*********************** Private Sub Form_Open(Cancel As Integer) Me.検索したボックス.Value = Me.OpenArgs Dim 変数名1 As New ADODB.Connection Dim 変数名2 As New ADODB.Recordset Dim 変数名3 As String Set 変数名1 = Application.CurrentProject.Connecton Set 変数名2 = 変数名1.Execute("SELECT * FROM テーブル WHERE 検索したい列名1 = Me.OpenArgs OR 検索したい列名2 = Me.OpenArgs") Do Until 変数名3.EOF Debag.Print 変数名3!列名1, 変数名3!列名2 変数名3.MoveNext Loop 変数名1.Close 変数名2.Close Set 変数名1 = Nothing Set 変数名2 = Nothing End Sub ******************************************* 検索したボックスについてはテキストボックスで ~~で検索しました。 と表示するために用意したものです 検索したボックスについてはうまく検索ボックスの内容が表示されていますが、検索結果が出てきません どなたかご存知の方ご教示お願いします

  • アクセスのフォームで

    アクセスのフォームで、品番一覧というテーブルを基にした、F品番一覧というフォームがあります。 ヘッダー部に検索するコンボボックスがあり、品番一覧テーブルの品番を参照しています。 検索ボタンを押すと、コンボボックスの内容に当てはまるものが、フォームの詳細部に一覧として表示させる様にしたのですが、品番に"50#1"や"50#2"という#を使い、1と2を分けている物があるのですが、コンボボックスで、この#が付いた物で検索すると検索結果がなにも表示されません。#が付いていない物はちゃんと一覧が表示されます。 #が付いている場合でもちゃんと表示するにはどの様にしたら良いですか?テーブル側の#を取り除く事はできません。 検索ボタンのコードは Private Sub 検索_Click() Dim strFilter As String, strExp As String, aryOpe As Variant If Not IsNull(Me.txt氏名) Then strFilter = strFilter & " AND 品番 Like *" & Me.品番一覧 & "*" End If Me.Filter = Mid(strFilter, 5) If strFilter = "" Then Me.FilterOn = False Else Me.FilterOn = True End If となっています。 うまく説明できなくてすいませんが、誰か教えて頂けませんか? よろしくお願いします。 End Sub

  • Accessの検索で「~以外」

    VBAで検索フォームを作成しています。 普通は「○○にあてはまるもの」という検索ですが、 「○○以外のものを検索」というようにしたい場合はどのようにすればいいのでしょうか? 通常の検索はこんな感じです。 If Me!検索値.Value <> "" Then condKey = "(T_マスタ.フィールド like '*" & Me!検索値.Value & "*')" WhereCond = WhereCond & tempOper & condKey End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond access2000です。

  • access検索フォームで期間抽出

    普通の文字入力による検索は If Me!氏名.Value <> "" Then condName = "(T_社員マスタ.氏名 like '*" & Me!氏名.Value & "*')" WhereCond = WhereCond & tempOper & condName End If のようにしています。 たとえば2000/10/1~2003/10/1 のように、ある一定の期間を指定してそれに当てはまるものを検索結果として出したい場合は、 上記をどのように変更すればいいのでしょうか?

  • アクセスVBAの検索で。

    アクセスでカレンダーというかスケジュールを管理できるようなものをつくろうとしています。 非連結フォーム1に ・入力年 ・入力月 ・[1]-[45]まで(それぞれ年月が変わると日付がかわる) という感じで入っています。 T_用件というテーブルには ・年(数値型 ・月(数値型 ・日(数値型 ・用件(テキスト型) とあり、これをもとに「F_用件」フォームを作成してあります。 フォーム1のボタンの1つを例にとるとこんな感じです。 If Me![7].Value <> "" Then Year = "(T_用件.年=" & (Me!入力年.Value) & ")" Month = "(T_用件.月=" & (Me!入力月.Value) & ")" Day = "(T_用件.年=" & (Me![7].Value) & ")" WhereCond = WhereCond & " AND (" & Year & " AND " & Month & " AND " & Day & ")" End If WhereCond = Mid(WhereCond, 6) DoCmd.OpenForm "F_用件", acNormal, , WhereCond こうするとF_用件フォームは開くのですが、きちんと検索されてきません。 どこが悪いのでしょうか? よろしくお願いします。

専門家に質問してみよう