dポイントプレゼントキャンペーン実施中!

Access初心者です。
前回このような質問をしました。http://oshiete1.goo.ne.jp/kotaeru.php3?q=2275324
レポートでフォームのテキストの検索結果をレポートで表示させる方法です。
この場合テキスト1つを検索ですが、2つ以上有る場合どうすれば良いでしょうか?If Nz() など使うのでしょうか?
<テキスト1・テキスト2・・>
ご教授お願いします。

<前回教えていただいた、テキスト1つの場合>
DoCmd.OpenReport "レポート", acViewPreview, , "a Like '*" & Me.テキスト & "*'"

A 回答 (2件)

> DoCmd.OpenReport "レポート", acViewPreview, , st


> でエラーが出てしまうのですが、ここに

失礼いたしました。
シングルクォーテーションが抜けていましたね。
>st = st & " AND a like *" & Me.テキスト1 & "*'"
st = st & " AND a like '*" & Me.テキスト1 & "*'"

他も同様に。

> 絞り込む場合の(下の方)
これは、複数のテキストボックスがあり、
入力されているものだけ、条件をつけたい場合です。

文字列のあいまい検索なら
未入力の場合 a Like '**' となってしまい、
Nullのデータは抽出されません。

完全一致の条件、 "a ='" & Me.テキスト1 & "'"
とした場合も、未入力時に a = '' となり、
何も抽出されない(場合が多い)ことになります。

こういうことを避けるために
If Not IsNull (すなわち、何か入力されているなら)
という条件をつけています。

常にすべてのテキストボックスに入力されているなら
特に、このような処理をする必要はありません。

それでも、条件が複雑になると間違いやすいので
変数を使うメリットはあると思います。

 st = "a Like '*" & Me.テキスト1 & "*' AND b  Like '*" & Me.テキスト2 & "*'"
 Debug.Print st  'ヘルプで確認してね
 DoCmd.OpenReport "レポート", acViewPreview, , st
    • good
    • 0
この回答へのお礼

有難うございます、シングルクォーテーションで解決しました。
その他詳しい説明有難うございます。
初心者の私にとってこの回答は助かりました。

お礼日時:2006/07/19 19:15

AND検索なら


DoCmd.OpenReport "レポート", acViewPreview, , "a Like '*" & Me.テキスト1 & "*' AND b Like '*" & Me.テキスト2 & "*'"

入力されているテキストボックスの条件だけで
絞り込む場合の定石。

Dim st As String
If Not IsNull(Me.テキスト1) Then
  st = st & " AND a like *" & Me.テキスト1 & "*'"
End If
If Not IsNull(Me.テキスト2) Then
  st = st & " AND b like *" & Me.テキスト2 & "*'"
End If
  ・・・
st = Mid(st,6)
DoCmd.OpenReport "レポート", acViewPreview, , st

直書き、未検証。
    • good
    • 0
この回答へのお礼

回答有難うございます。
今回も的を得た回答で助かります。
絞り込む場合の(下の方)
DoCmd.OpenReport "レポート", acViewPreview, , st
でエラーが出てしまうのですが、ここに
"a Like '*" & Me.テキスト1 & "*' AND b Like '*" & Me.テキスト2 & "*'"
を入れれば良いのでしょうか?

お礼日時:2006/07/19 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!