ファイルへの書き込みが出来ない

解決


MONO  2005-11-15 23:24:27  No: 127756

前回もお世話になったのですが、また質問させてください。現在カルテ保存プログラムを作成中です。基本的な仕様としては"開く"でファイルを読み込みリストビューに表示(表示される内容はID、名前、性別、生年月日、血液型)、"追加"でデータの追加、"保存"でリストビューに表示されたデータをカルテ.csvに保存、というような感じです。エラーチェックの部分でファイルを読み込む際、データの先頭であるIDのところにデータが存在しなければファイルを閉じて処理を抜ける、という処理にしました。その後データを追加し保存で追加したデータを保存しようとしたのですが"書き込みできません"とエラーが出てしまいます。いろいろ調べたのですが調べ下手なもので納得いく回答が得られませんでした。よろしくお願いします。
環境はVB6.0です。

ファイルを読み込む処理
Open "カルテ保存.csv" For Input As #1
    
        Do Until EOF(1)
            ReDim Preserve gty_date(gintcI)
            With gty_date(gintcI)
                Input #1, .Number
                'IDにデータが入っていなかったら
                If IsNumeric(.Number) = False Then
                    Close #1
                    Exit Sub
                End If
            
                Input #1, .Name
                Input #1, .Sei
                Input #1, .Birth
                Input #1, .Blood
            End With
            
                gintcI = gintcI + 1
        Loop
        
    Close #1
注:gty_dateは構造体です。

保存の処理
    Dim intmsg As Integer
    Dim inti As Integer
    
    '確認
    intmsg = MsgBox("カルテを保存しますか?", vbYesNo + vbQuestion, "確認")
    
      'ファイル存在チェック/新規作成・保存
            If funcFileCheck(App.Path & mcstr_FileName) = False Then
                subFileSave
            Else
         
                Open "カルテ保存.csv" For Output As #1
                    For inti = 0 To gintcI - 1
                        With gty_date(inti)
                        Writ#1, .Number, .Name, .Sei, .Birth, .Blood
                        End With
                    Next inti
                    
                Close #1
            End If
    End If
    
    MsgBox "保存が終了しました", vbOKOnly + vbInformation, "確認"


LESIA  2005-11-15 23:39:38  No: 127757

エラーはどこででるんでしょうか?
また、funcFileCheckとsubFileSaveは、何をやっているのでしょうか?

あと、ファイル名は、"カルテ保存.csv"だと、カレントパスにファイルがないと
エラーになるので、"C:\test\カルテ保存.csv"やApp.Patb & "\カルテ保存.csv" のように
フルパスで書いた方が良いです。


MONO  2005-11-15 23:52:28  No: 127758

LESIAさんレスありがとうございます。
>エラーはどこででるんでしょうか
保存処理の
Open "カルテ保存.csv" For Output As #1
でエラーになります。

>また、funcFileCheckとsubFileSaveは、何をやっているのでしょうか?
funcFileCheckは保存できるファイルがある場合True、ない場合はFalseを返します。
subFileSaveはfuncFileCheckにおいてFalseが返ってきたときに新規にファイルを作成してリストボックス上のデータを保存という処理になります。


LESIA  2005-11-16 01:12:12  No: 127759

funcFileCheckとsubFileSaveのコードが知りたかったんですが(^^;
そこで、"カルテ保存.csv"を掴んだままということはないですか?
また、"カルテ保存.csv"が読み取り専用になってたりしませんか?


通ってみた  2005-11-16 03:52:47  No: 127760

>>保存処理の
>>Open "カルテ保存.csv" For Output As #1
>>でエラーになります。

レスは読みました?

>>あと、ファイル名は、"カルテ保存.csv"だと、カレントパスにファイルがないと
>>エラーになるので、"C:\test\カルテ保存.csv"やApp.Patb & "\カルテ保存.csv" のように
>>フルパスで書いた方が良いです。

とLESIAさんが書いてますけど


コボル  2005-11-16 06:09:55  No: 127761

コンパイルエラーにはならないんですよね?
ちょっと
>Writ#1, .Number, .Name, .Sei, .Birth, .Blood
が気になったので・・・


252  2005-11-17 02:13:02  No: 127762

1212


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加