DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データグリッドへの新規データの表示

環境/言語:[OS : Windows XP Home Edition / 言語 : Visual Basic 6.0]
分類:[VB6以前]

【解決したい問題】

VBでデータグリッドってありますよね?
グリッドにCSVデータを表示して、そこにさらにデータを追加という処理をしようと思っております。
データを追加する際にはテキストボックスを3つ用意してそこに内容をいれ(商品名・型番・商品コード)、登録ボタンを押すとデータグリッドに追加表示される、という仕組みにしたいと思っております。

コードを書いて試してみたのですが、テキストボックスに入力して登録を押すとCSVファイルには新規に登録したデータ分しか保存されてなく、過去に登録したデータがすべて消えてしまっているのです。

追加データをデータグリッドに表示する方法もわからないのですが・・・・
(既存のデータを読み込んでグリッドに表示することはできてます)
とにかく追加データのCSVファイルへの追加保存だけでも解決したいのです。

コードはこのように書きました。
(保存するファイル名は「商品マスタ.txt」です)

Private Sub touroku_Click()
Dim strItemName As String
Dim lngItemCode As Long
Dim lngItemNo As Long
Dim filenum As Integer

  strItemName = txtItemName.Text
lngItemCode = txtItemCode.Text
lngItemNo = txtItemNo.Text

Open "商品マスタ.txt" For Output As #filenum

Print #filnum, (strItemName) & "," & (lngItemCode) & "," & (lngItemNo)

Close #1

txtItemName.Text = ""
txtItemCode.Text = ""
txtItemNo.Text = ""
End Sub

【追加事項】

まだ始めたばかりで参考書やヘルプ等を頼ってやっております。
お忙しいとは思いますがよろしくお願いします。
データグリッドへはどのように表示されていますか?
基本的にはStreamReaderでデータテーブルに読み込んで、それをデータグリッドにバインドということになります。
CSVに追加する場合は、StreamWriterを使って、追加モードで書き出します。データグリッドへはデータテーブルに追加してあげればよいでしょう。

考え方として、データグリッドへ一度追加しておき、書き出しボタンとかで、最後にまとめてCSVファイルを書き出すという方法も考えられます。この場合、データテーブルなどを利用してソート後に書き出しということも可能です。もちろん、この場合は、CSVファイルの上書きモードでの書き出しになります。
trapemiya様

お忙しいなか返信ありがとうございます。
> データグリッドへはどのように表示されていますか?
どのように表示・・・うまいこと言い表せませんがエクセルみたいな感じで表示されます。

商品名|型番|商品コード
----------------------
AAA |123 |asdfgh
-----------------------
BBB |456 |zxcvbv

こんな風に表示されます。
アドバイスの[StreamReader][StreamWrite]なのですが初めて拝見します。
どういった使い方をするのかまだわからないので一度自分で調べてみますね。
2005/11/29(Tue) 13:19:32 編集(投稿者)

すみませ〜ん!!! VB6でしたね。
全て忘れて下さい。ごめんなさい。m(_ _)m

でも、CSVに書き出す時には、追加モードを指定する方法があったと記憶してます。
trapemiya様

検索かけてもいまいちピンとくる答えが見つからなくてしょんぼりしていたのですがVB6.0には関係ないことだったんですね。(^^;)
追加モードを指定して追加書き込みはできたのですが・・・・

エクセルのCSVファイルに書き込むことがどうしてもできません。
テキストボックスに入力して登録を押してもエラーは出ないのですが、CSVファイルを開くと書き込まれてないのです。
TextMatrix等で場所を指定しないと書き込めないのでしょうか?
(指定の仕方がわからなくてTextMatrixではやってません)
新しいデータは一番最後に入るようにしたいのです。

説明がうまくできなくてすみません。

練習で作ってみた.txt型のファイルにはちゃんと書き込めたのですが・・・・
> テキストボックスに入力して登録を押すとCSVファイルには新規に登録したデータ分しか保存されてなく、過去に登録したデータがすべて消えてしまっているのです。
>
> Open "商品マスタ.txt" For Output As #filenum

ヘルプでOpenステートメントを調べてください。
Forのあとにいろいろ書けますのですぐお分かりになるでしょう。
まどか様

練習用に作った「商品マスタ.txt」に追加データを保存することは以下のコマンドでできました。

'データを追加して保存。
Open "商品マスタ.txt" For Append As #filenum
Print #filnum, (strItemName) & "," & (lngItemCode) & "," & (lngItemNo)
Close #filenum

ですが本命の「商品マスタ.csv」に保存することができなくて・・・
ただファイル名の書き換えだけではダメなのでしょうか?

アドバイスお願いします・・!
試行していくうちに間違いがわかりました。
悲しくなるくらい自分のミスでした・・・・

trapemiya様、まどか様アドバイスありがとうございました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板