アプリ版:「スタンプのみでお礼する」機能のリリースについて

Q_CCというクエリーのフィールドにIDがあります。
あるフォームのボタンのイベントプロシージャに

Set db = CurrentDb()
Set rs = db.OpenRecordset("Q_CC", dbOpenDynaset)

rs.Filter = "ID = 'Me.メールID'"

としましたけど、フィルターが働いてくれません。
" と ' の使い方がまずいと思います。
私のフォームに「メールID」というものが関連づけられていて、
このメールIDという値はMe.メールIDで求められますが、
このメールIDと同じ値のQ_CCのIDで、Q_CCにフィルタかけたい
のです。

rs.Filter = "ID =" + Me.メールID

としたらエラーです。

よろしくお願いします。

A 回答 (2件)

多分、



ID=" & Nz(Me.ID, 0)

としていないことが原因です。
が、素直に、Where節を書いても事足りるのでは・・・。

Private Sub コマンド0_Click()
  Dim dbsCurrent As dao.Database
  Dim rstTest   As dao.Recordset
  Dim strQuerySQL As String
      
  strQuerySQL = "SELECT * FROM A_Query WHERE ID=" & Nz(Me.ID, 0)
  Set dbsCurrent = CurrentDb
  Set rstTest = dbsCurrent.OpenRecordset(strQuerySQL)
  With rstTest
    Do Until .EOF
      Debug.Print .Fields(0)
      .MoveNext
    Loop
  End With
  rstTest.Close
  dbsCurrent.Close
End Sub

この回答への補足

遅くなりました。検証してみました。

本当に、わざわざフィルターしなくてもWhere節にしたらいいという意味がよく分かりました。それと、Nz関数で解決出来ました。ありがとうございます。

助かりました。

補足日時:2006/09/22 12:54
    • good
    • 0
この回答へのお礼

s_huskyさん

早速の回答ありがとうございます。
Nzでしたか。気づきませんでした。ありがとう。
また、この例文もありがとうございます。
使ってみます。

本日は、この結果を報告できませんが、明日に報告させて頂きます。よろしくお願いします。

お礼日時:2006/09/20 18:15

IDフィールドがテキスト型なら


rs.Filter = "ID = '" & Me.メールID & "'"

数値型なら
rs.Filter = "ID =" & Me.メールID
この場合は、Me.メールID のNULL チェックが必要です。

ただし、自分が作る場合は
No1さんの方法にします。
Filter にカーソルをあて、F1キーを押して
ヘルプを表示すると、その理由が書かれています。
    • good
    • 0
この回答へのお礼

bonaronさん

早速の回答ありがとうございます。
NULLチェックですね。ヘルプをよく読んでおきます。

すみませんでした。

お礼日時:2006/09/20 18:17

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A