- ベストアンサー
複数のフィールドに対する抽出
Private Sub 社員抽出_Click() Dim ipt As String ipt = [社員コード指定] DoCmd.ApplyFilter , "[社員コード]=" & ipt End Sub っとすれば「社員コード」フィールドに対して抽出を行えます。 そこで質問です。 これだとひとつの項目に対しての抽出は可能ですが、 2つ以上のフィードに対して抽出するという事はできますか? 自分としては「社員コード」以外に「年度」フィールドからも同時に抽出を行いたいのです。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub 社員抽出_Click() Dim ipt1 As String Dim ipt2 As String ipt1 = [社員コード指定] ipt2 = [年度指定] DoCmd.ApplyFilter , "[社員コード]=""" & ipt1 & """ AND [年度]=""" & ipt2 & """" End Sub ApplyFilterで「Where条件式」を指定する場合、文字列の中に文字列を指定しなければいけません。 文字列の中に文字列を指定する場合、上記のように「"」と「"」で囲まれた中に「""」を書きます。 そうしないと、どの部分が項目名で、どの部分がフィルタしたい値なのか、解釈出来なくなります。 ipt1の内容が「0012」、ipt2の内容が「15」だった場合、 "[社員コード]=""" & ipt1 & """ AND [年度]=""" & ipt2 & """" は [社員コード]="0012" AND [年度]="15" と展開されます。 もし "[社員コード]=" & ipt1 & " AND [年度]=" & ipt2 と書くと [社員コード]=0012 AND [年度]=15 と展開され [社員コード]=[0012] AND [年度]=[15] と解釈され、正しく動きません。 「0012」と「15」がパラメータ名として扱われ、パラメータ内容を問い合わせるダイアログボックスが出てしまいます。 詳しくは、Accessのヘルプの「文字列内でのクォーテーション」を見て下さい。
お礼
あっという間に解決しました。有難う御座いました。