OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

AND検索

  • 困ってます
  • 質問No.225515
  • 閲覧数48
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 56% (14/25)

アクセスでフォームを作成し、入力項目を5箇所用意しました。
その入力項目によって、OR検索とAND検索を行わせたいと思っています。
OR検索に関しては問題無いのですが、AND検索をさせた場合、5箇所全てを埋めないと結果が得られません。
AND検索で5項目の内3項目が空でも残りの2項目が該当すればデータを表示させたいのですが、方法がわかりません。
アクセス2000を使っています。
よろしくお願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 56% (59/104)

御疲れ様です VBAで宜しければ、こんな感じになります Private Sub コマンド0_Click() Dim stFormNameAs String Dim stWhereAs String stFormName = "AAA" stWhere = 条件文作成("AND") DoCmd.OpenForm ...続きを読む
御疲れ様です

VBAで宜しければ、こんな感じになります



Private Sub コマンド0_Click()
Dim stFormNameAs String
Dim stWhereAs String

stFormName = "AAA"
stWhere = 条件文作成("AND")
DoCmd.OpenForm stFormName, , , stWhere

End Sub



Private Function 条件文作成(stConnector As String) As String
Dim stSQLAs String

stSQL = ""
stConnector = " " & Trim(stConnector) & " "

If IsNull(Me.Txt条件01.Value) = False Then
If stSQL <> "" Then stSQL = stSQL & stConnector
stSQL = stSQL & "(項目01 = " & Me.Txt条件01.Value & ")"
End If

If IsNull(Me.Txt条件02.Value) = False Then
If stSQL <> "" Then stSQL = stSQL & stConnector
stSQL = stSQL & "(項目02 = '" & Me.Txt条件02.Value & "')"
End If

If IsNull(Me.Txt条件03.Value) = False Then
If stSQL <> "" Then stSQL = stSQL & stConnector
stSQL = stSQL & "(項目03 = #" & Format(Me.Txt条件03.Value,"mm/dd/yyyy") & "#)"
End If

If IsNull(Me.Txt条件03.Value) = False Then
If stSQL <> "" Then stSQL = stSQL & stConnector
stSQL = stSQL & "(項目04 = '" & Me.Txt条件04.Value & "')"
End If

If IsNull(Me.Txt条件03.Value) = False Then
If stSQL <> "" Then stSQL = stSQL & stConnector
stSQL = stSQL & "(項目05 = " & Me.Txt条件05.Value & ")"
End If

If stSQL <> "" Then stSQL = "(" & stSQL & ")"

条件文作成 = stSQL

End Function
補足コメント
amateur3

お礼率 56% (14/25)

早速の回答ありがとうございます。
現在テストしているのですが、まだ上手くはいってません。
stWhereの返り値まではきちんと動いているので、何とか解決したいと思います。
なにぶん初心者なものなので、基本的なミスをしてる気がします。
投稿日時 - 2002-02-27 09:58:59

  • 回答No.2
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。 VBAを使えば出来ますが。 検索対象のテーブルのレコードセットを作り、Findの条件に、項目が空でないなら、 " AND (フィールド名 = " & 条件 & ")" をくっ付けていけばいいでしょう。 では。 ...続きを読む
こんにちは。maruru01です。

VBAを使えば出来ますが。
検索対象のテーブルのレコードセットを作り、Findの条件に、項目が空でないなら、
" AND (フィールド名 = " & 条件 & ")"
をくっ付けていけばいいでしょう。
では。
補足コメント
amateur3

お礼率 56% (14/25)

早速の回答ありがとうございます。
アクセスの初心者なので、レコードセットという言葉さえよく知りませんでした。
調べながらなんとかやっていこうと思います。
投稿日時 - 2002-02-27 10:01:55
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ