Page 346 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼レポートで指定した範囲のレコードを呼び出したい 松下 03/7/31(木) 13:46 ┗Re:Between で イケガミ 03/7/31(木) 15:06 ┗Re:Between で 松下 03/7/31(木) 17:16 ┗Re:Or か、In かな? イケガミ 03/7/31(木) 17:20 ┗Re:Or か、In かな? 松下 03/8/1(金) 9:48 ┗Re:Or か、In かな? イケガミ 03/8/1(金) 10:52 ┗Re:Or か、In かな? 松下 03/8/1(金) 11:28 ─────────────────────────────────────── ■題名 : レポートで指定した範囲のレコードを呼び出したい ■名前 : 松下 ■日付 : 03/7/31(木) 13:46 -------------------------------------------------------------------------
OS -->ME Access-->2002 フォームに印刷ボタンを設け、クリックすると抽出を開始するIDと抽出を終了するID を聞いてきて、指定した範囲のレポートがプレビュー(抽出)されるようにしいので すが、うまく行きません。下記のようなコードを書きました。根本的に考え方が違っ ているかも知れませんが、どなたかご教授下さい。 Private Sub 印刷ボタン_Click() Dim strID As String Dim endID As String strID = InputBox("抽出を開始する商品IDは?") endID = InputBox("抽出を終了する商品IDは?") DoCmd.OpenReport "商品レポート", acViewPreview, , "商品ID = strID <= endID" End Sub |
> "商品ID = strID <= endID" Between 〜 And 〜 を使えば大丈夫だと思います。 【商品IDがテキスト型の場合】 "商品ID Between '" & strID & "' And '" & endID & "'" 【商品IDが数値型の場合】 "商品ID Between " & strID & " And " & endID |
早速試したところうまくいきました。 ありがとうございました。 ちなみにBetweenの他に「これとこれ」のような事もできるのでしょうか? AND?を使うのでしょうか?度々質問にて恐縮ですが、ご教授頂ければ幸いです。 |
>ちなみにBetweenの他に「これとこれ」のような事もできるのでしょうか? Or を使うか、In を使うかだと思います。 "商品ID In(" & strID,endID & ")" |
さっそくのご回答ありがとうございました。 Private Sub 商品印刷_Click() Dim ID1 As String Dim ID2 As String ID1 = InputBox("印刷するIDは?(1番目)") ID2 = InputBox("印刷するIDは?(2番目)") DoCmd.OpenReport "商品レポート", acViewPreview, , "商品ID In(" & ID1, ID2 & ")" というふうにコードを書いたのですが、型が一致しません。というエラーになって しまいました。ちなみに商品IDは数値型です。「"」などの使い方が悪いのでしょうか? |
> DoCmd.OpenReport "商品レポート", acViewPreview, , "商品ID In(" & ID1, ID2 & ")" 失礼しました。","を文字列に含めてやらないといけないかな。。。 ただ、個数が決まっているのなら、上記のように使うことはないかな。 配列を使って、取得する場合とかは、In の方がいいでしょうけど、 この場合は、Or で十分ですね。 "[商品ID]=" & ID1 & " Or [商品ID]=" & ID2 ID1,ID2 は、Long 型にした方がいいのでは? |
アドバイスありがとうございました。 お蔭様でInもOrも両方できました。 おっしゃる通り数が固定なので、この場合Orで十分ですよね。 ありがとうございました。 |