過去ログ

                                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

 ───────────────────────────────────────  ■題名 : Re:Between で  ■名前 : イケガミ  ■日付 : 03/7/31(木) 15:06  -------------------------------------------------------------------------
   > "商品ID = strID <= endID"

Between 〜 And 〜 を使えば大丈夫だと思います。

【商品IDがテキスト型の場合】
"商品ID Between '" & strID & "' And '" & endID & "'"

【商品IDが数値型の場合】
"商品ID Between " & strID & " And " & endID

 ───────────────────────────────────────  ■題名 : Re:Between で  ■名前 : 松下  ■日付 : 03/7/31(木) 17:16  -------------------------------------------------------------------------
   早速試したところうまくいきました。
ありがとうございました。
ちなみにBetweenの他に「これとこれ」のような事もできるのでしょうか?
AND?を使うのでしょうか?度々質問にて恐縮ですが、ご教授頂ければ幸いです。

 ───────────────────────────────────────  ■題名 : Re:Or か、In かな?  ■名前 : イケガミ  ■日付 : 03/7/31(木) 17:20  -------------------------------------------------------------------------
   >ちなみにBetweenの他に「これとこれ」のような事もできるのでしょうか?

Or を使うか、In を使うかだと思います。

"商品ID In(" & strID,endID & ")"

 ───────────────────────────────────────  ■題名 : Re:Or か、In かな?  ■名前 : 松下  ■日付 : 03/8/1(金) 9:48  -------------------------------------------------------------------------
   さっそくのご回答ありがとうございました。

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は数値型です。「"」などの使い方が悪いのでしょうか?

 ───────────────────────────────────────  ■題名 : Re:Or か、In かな?  ■名前 : イケガミ  ■日付 : 03/8/1(金) 10:52  -------------------------------------------------------------------------
   > DoCmd.OpenReport "商品レポート", acViewPreview, , "商品ID In(" & ID1, ID2 & ")"

失礼しました。","を文字列に含めてやらないといけないかな。。。
ただ、個数が決まっているのなら、上記のように使うことはないかな。

配列を使って、取得する場合とかは、In の方がいいでしょうけど、
この場合は、Or で十分ですね。

"[商品ID]=" & ID1 & " Or [商品ID]=" & ID2
ID1,ID2 は、Long 型にした方がいいのでは?

 ───────────────────────────────────────  ■題名 : Re:Or か、In かな?  ■名前 : 松下  ■日付 : 03/8/1(金) 11:28  -------------------------------------------------------------------------
   アドバイスありがとうございました。
お蔭様でInもOrも両方できました。
おっしゃる通り数が固定なので、この場合Orで十分ですよね。
ありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 346