アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちはmynannです
困っているのでヒントをいただけたらと思って質問します。
ただいま↓のような商品マスタがあります

商品コード 価格  販売
001     \100  yes
002     \300  no
003     \200  yes
004     \250  yes
005     \150  no

このデータからモジュールを使って
yesの物だけを抽出して
以下のようなテキストファイルを保存したいと思います
「商品コード 001 価格 \100」
※ファイル名は「001.text」
003と004についてもほぼ同様

前回私の質問を見ればわかると思いますが
レコードセットやIF、Do Until、printなどを
使えばできそうなんですが
保存するファイル名(001.text,002.textなど)をそれぞれの場合によって変える方法がわかりません
質問のしかたが下手でいまいちわからないと思いますが、、
保存するデータごとに保存するファイル名を変える方法を知りたいのでぜひ、教えてください!

A 回答 (2件)

例 以下の通りです。


--------------
Dim db As Database
Dim rsn As Integer
Dim rsname As String
Dim Data, FileName As String

rsn = 0
rsname = "商品マスターQ"

Set db = CurrentDb
Set rs(rsn) = db.OpenRecordset(rsname, dbOpenSnapshot)

rs(0).MoveFirst

Do Until rs(0).EOF

If rs(0)!チェック = True Then

Data = "商品コード" & rs(0)!商品Code & "価格" & "\" & CStr(rs(0)!単価)
FileName = "D:\MDB\" & rs(0)!商品Code & ".txt"

Open FileName For Output As #1
Print #1, Data
Close #1

End If
rs(0).MoveNext
Loop
'--------------------

●上の例ではレコードセットを配列にしています。
●テーブル(商品マスター)の構成は 商品Code, 単価、チェック(yes/no)
としました。そのテーブルをそのまま選択クエリー
を作成 商品マスターQ
●このクエリー上でYesだけにフィルターを掛ける事も出来ますが上の例ではIf文を使用
●ファイルの保存先として D:\MDB\ としていますが
これは適当に替えてください。
●エラーチェックは付けていません。ファイルは自動的に上書きされますのでこのあたりは適当に修正してください。
●前もって少ないデータで試験を行ってください。

ご質問はご遠慮なく!!

この回答への補足

色々といじりながら考えていたらできました!
本当にありがとうございました★

補足日時:2004/10/04 15:06
    • good
    • 0
この回答へのお礼

回答ありがとうございました
言われてみればこういう方法でできそうですね
それで今自分で作ってのですが動きません、、
rs()が定義されてないみたいなんですがこれでいいんでしょうか?
あとdbOpenSnapshotの使い方がいまいちわかりません
dbOpenTableとどう違うのでしょうかぁ?
後者の方は自分で調べてみますが、、
ちなみにエラーはSub またはFunctionが定義されてないとでます

もし良ければ助けてください!

お礼日時:2004/10/04 11:06

Dim filename as string



filename = [なにか] & ".txt"

Open filename For Output As #1
Print #1, "これはテストです。"
Close #1

で書き出せます。
ループしながら[なにか]をうまく指定すれば、できますよ。
    • good
    • 0
この回答へのお礼

なるほどー
思っていたよりも結構簡単にできるもんですね
大変助かりましたありがとうございました!

お礼日時:2004/10/04 15:09

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