フィルターを複数条件かけたい。
フィルターを複数条件でかけたのち、そのフィルターを反映させたレポートを
PDFにして保存する。というものを作っています。
フィルターをかけるところのコードでつまづいています。
ダブルクォーテーションのに囲まれた文字は文字列として認識される
ということはわかっているのですが、シングルクォーテーションが
出てくるのかがちょっと納得できません。
他にも至らぬ点があるかと思いますが、解説頂けると嬉しいです。
ネットで
ACCESS VBA フィルター 複数
ACCESS VBA フィルター フィールド 複数
など調べてみたのですが、理解には至りませんでした。
解説と正しい構文を教えた頂きたいです。
下記のようなものを作成しています。
作成中のAccess
以下大まかなフォーム------------
店舗 □□□ 名前□□□
↑テキスト17 ↑テキスト26
以下レポートに使っているテーブル----------------
店舗名(フィールド1) 名前(フィールド2)
ドトール コーヒー
ドトール カフェラテ
スタバ カフェラテ
スタバ コーヒー
ドトール カフェモカ
ドトール キャラメルラテ
スタバ カフェモカ
スタバ キャラメルラテ
以下キーとして用意したテーブル------------------
店舗名(フィールド1) 名前(フィールド2)
ドトール コーヒー
ドトール カフェラテ
コードの流れ
キーになるテーブルからキーワードを得て
店舗名がドトールで名前がコーヒーのものをフィルターで抽出
レポートにフィルターを反映、PDF化という流れです。
初心者の質問にも答えられる方どうぞよろしくお願いいたします。
VBA
1Private Sub コマンド19_Click() 2 3 4Dim spath As String '------保存先のパス 5Dim myname As String '------フィルターで絞るキー1 6Dim myname2 As String '------フィルターで絞るキー2 7Dim i As Long 8Dim Rs As DAO.Recordset '----キーとなるテーブル 9 10 11Set Rs = CurrentDb.OpenRecordset("キーテーブル") 12 13 14 Do Until Rs.EOF 15 16 myname = Rs!店舗名 17 myname2 = Rs!名前 18 19 テキスト17 = Rs.Fields("店舗名") 20 テキスト26 = Rs.Fields("名前") 21 22 Me.Filter = "店舗名='" & myname & "'" & "'And" & "名前='" & myname2 & "'" '------←ここが違います。 23 Me.FilterOn = True 24 25 spath = テキスト20 & "\" 26 27 28 DoCmd.OpenReport "レポート", acViewReport, , Me.Filter 29 30 DoCmd.OutputTo acOutputReport, "レポート", acFormatPDF, spath & myname & ".pdf" 31 32 Rs.MoveNext 33 34Loop 35 36 37 38End Sub
お礼
長い質問に答えて頂き本当に助かりました!
もし何かありましたら、ご教授いただければ幸いです。
ありがとうございます!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/02 07:05
2021/09/02 07:15
2021/09/02 07:26
2021/09/02 07:40
2021/09/02 07:52
2021/09/02 07:58
2021/09/02 08:03
2021/09/02 13:16