- ベストアンサー
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全件削除処理を行いたいのですが。。。
- みんなの回答 (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)
削除処理を質問しながら、DBのファイルメソッドを言わずして、質問が成り立つのでしょうか。 補足で初めて対象がCSVファイルらしいことが出てくるのはどうかと思う。 色々あるファイル処理の、削除処理は最終的には固定ディスクに、ファイルとして記憶されるが、その方式を勉強する必要があると思う。 ファイル構造の単純なシーケンシャルファイルは、レコードを一部・全部、削除したファイルを「別に」作るはずです。
- sai943
- ベストアンサー率100% (1/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
補足
CSVファイルのデータを全件(全レコード)を全項目チェックを行ってから削除をしたいので、何も問題なければ毎回削除を行ってしまうので、全件削除は1回のみで良いのですが。。 言葉が足りず申し訳ありませんm(__)m