プロが教えるわが家の防犯対策術!

以下、ご回答、よろしくお願いします。

ストプロで、カーソルに格納したレコードを、1変数にセットしたく思います。
(この変数を本文にして、メールをはき出します。)

AccessVBAでは
--------------------------
Do Until rs.EOF
  strBody = strBody & rs!受注コード & ":" & rs!明細コード & vbCrLf
  rs.MoveNext
Loop
--------------------------
とするところを、sqlのストプロで
--------------------------
WHILE @@FETCH_STATUS = 0
BEGIN
 select @strBody = (@受注コード + @明細コード) + char(13) + char(10)
 FETCH NEXT FROM cur_cust
 INTO@受注コード, @明細コード
end
--------------------------
等としても、1レコード分のデータしか渡りません。(あたり前ですね。)

現在に手詰まりの状態です。
ご教授、よろしくお願いします。

A 回答 (2件)

VB(VBA)で



  Do Until rs.EOF
    strBody = strBody & rs!受注コード & ":" & rs!明細コード & vbCrLf
    rs.MoveNext
  Loop

ができているのですから、そこから類推しましょう。

  declare @x varchar(10)
  select @x = 'a'
  select @x
  select @x = @x + 'b'
  select @x
  select @x = @x + 'c'
  select @x

を実行すると

  a
  ab
  abc

が返ります。ヒントになったでしょうか。

この回答への補足

--------------------------
WHILE @@FETCH_STATUS = 0
BEGIN
 select @strBody = @strBody + (@受注コード + @明細コード) + char(13) + char(10)
select @strBody
 FETCH NEXT FROM cur_cust
 INTO @受注コード, @明細コード
end
--------------------------

としても、@strBody は空白(Null?)で返ってきて、格闘をして、また逆質問かな~と、思っていたところ、ふとWHILE @@FETCH_STATUS = 0
 が デフォルトに何か入っていなければならないのか? と思い、「WHILE @@FETCH_STATUS = 0」の前に、[@strBody = 1] を追加したところ、上手く行きました。

補足日時:2005/08/10 21:17
    • good
    • 0

ストプロで、カーソルに格納したレコードを、1変数にセットしたく思います。



収め方はいろいろあります。
・テンプテーブルを作成
・カーソルのまま処理
・配列にセット

この後の処理で何がしたいかがわかれば、おのずと最適な格納方法がわかるのですが、、、
    • good
    • 0
この回答へのお礼

ご回答を寄せて頂き、ありがとうございました。

お礼日時:2005/08/10 21:33

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

関連するカテゴリからQ&Aを探す