• ベストアンサー

VBのloop内で。

【処理内容?】 If noErr = 0 Then   'データ取込   Do While Not EOF(intFileNo)     項目chk       桁数&属性chk       If all_noErr = 0 Then         DB登録処理※       End If   Loop   Close End If ※のDB登録処理の前に現在登録されているDB全件削除処理を行いたいのですが、どういう風に処理を行うのが、ベストでしょうか? ちなみに桁数&属性chkがOKの場合にDB全件削除処理を行いたいのですが。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • sai943
  • ベストアンサー率100% (1/1)
回答No.3

先ほどは見苦しいコードですいませんでした(^^; 経験者に格下げです・・・ まだちょっと不明な点がありますが一応・・・ ロジックはこれでよいのでしょうか? (1)CSVファイルからフィールド取得 (2)項目などのチェックを全項目行う (3)-1チェックがOKであればDBを全件削除してCSVの内容をを登録する (3)-2チェックがNGであれば登録しない(?) 現在、見た目のコード上では、項目チェックと桁数チェック、属性チェックをフィールドごとに個別にやろうとしていますが、これを登録の前にいっぺんにやってしまってはどうでしょうか? -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 'CSVファイルの内容をチェックしてそれに対応した処理を行う Private Sub Command1_Click()   '先にチェックを行う   If CheckCSVData("C:\ABC.csv") = False Then     'OKなので全件削除する     'そして登録?     Call AddCSVData   Else     'NGの場合は?     '登録するのか?   End If End Sub -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 'CSVファイル内容をチェックする Private Function CheckCSVData(xFile as String) As Boolean 'ファイルを開く 'CSVの項目をチェックする '桁数&属性のチェックをする 'NGであれば戻り値にTrueをセット 'OKであれば戻り値にFalseをセット End Function -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 'CSVファイルを登録する Private Sub AddCSVData(xFile As String) 'OKが出てここへ来ているので 'CSVファイルを読込登録するコード記載 End If -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

削除処理を質問しながら、DBのファイルメソッドを言わずして、質問が成り立つのでしょうか。 補足で初めて対象がCSVファイルらしいことが出てくるのはどうかと思う。 色々あるファイル処理の、削除処理は最終的には固定ディスクに、ファイルとして記憶されるが、その方式を勉強する必要があると思う。 ファイル構造の単純なシーケンシャルファイルは、レコードを一部・全部、削除したファイルを「別に」作るはずです。

  • sai943
  • ベストアンサー率100% (1/1)
回答No.1

このコードだけ見ると、なぜループしているの不明です。 ループ?する前に項目チェックと桁数&属性チェックをしてみては駄目なのでしょうか? ファイルを開いてループしているようなコードですが、Line Inputなどでデータを取得しているようには見えませんので、下記の説明で出来なければ、もう少し詳しい説明かコードを教えてください。 Sub SampleCode() Dim boolDel As Boolean boolDel = False 'ファイルを開いたりなんか処理 If noErr = 0 Then    'データ取込   Do While Not EOF(intFileNo)     項目chk       boolDel = 桁数&属性chk '戻り値はBool型として説明       'Trueの場合は全件削除       'Falseの場合は無視       If boolDel = True Then DB全件削除         '次の為にフラグをFalseへ戻す boolDel = False End If       If all_noErr = 0 Then         DB登録処理※       End If   Loop   Close End If End Sub

GON_TA
質問者

補足

CSVファイルのデータを全件(全レコード)を全項目チェックを行ってから削除をしたいので、何も問題なければ毎回削除を行ってしまうので、全件削除は1回のみで良いのですが。。 言葉が足りず申し訳ありませんm(__)m