【現状までの経緯】
1)バッチ処理で元CSVファイルをフォルダ1に保存。(情報システム部門に依頼)
※2)以降の開発で、Field名称の不具合、文字/数字混合Fieldは全文字化・・
等々で、ADOを使用する上での初期不具合はクリアできていると考えています。
VBAで作成したツールで処理
2)フォルダ1のファイルリスト作成(VBA-tool/FSO)
3)処理するファイルを選択(マニュアル)
4-1)切出すFieldを選択(マニュアル)
4-2)切出し条件を選択(マニュアル)
5)選択ファイル/選択Field/条件で切出し結合(VBA-tool/ADO)
strSQL = strSQL & " WHERE 区分 = '" & tgtCD & " ';" (抽出条件自動設定)
6)保存ファイル名を自動設定し指定保存フォルダ2に ***.xlsx / ***.csv で保存(VBA-tool)
まで完成し、運用しています。
ファイル名:Toolver_yymmdd_hhmmss_***_******.***
("_" "スペース" "全角文字" を使用しています。)
今般、上記で作成した切出結合Dataの詳細分析が必要になり
上記ツールを改造して新たな分析用ツールを作成し
(1)対称フォルダ設定しフォルダ2よりファイルコピー(マニュアル)
(2)ファイルリスト作成(VBA-tool/FSO)
(3)分析前に
dbCon.Open / dbRs.Open(VBA-tool/ADO)し
dbRs.RecordCountとdbRs.Fields.CountとField名称の整合確認を実施
(4)分析(VBA-tool)
を行おうとしていますが
(3)で特定ファイルがOpenできない現象が発生
サクラエディタで見る限りokとngとの間に差は見られない。
-1)容量の関係かとも思い行を削除したがNG
-2)ファイル名を変更してもNG
-3)タイミングかと思い DoEvents連発 Sleep ***連発でもNG
-4)dbRs.State でFor i_ Next***を掛けてもNG
(okファイルは i_=1でExit、ngファイルは***まで)
-5)dbRs.State/dbRs.AbsolutePage~/dbRs.StayInSyncの全プロパティーを見ても
そもそもdbRs.State=0で・・・・
・・・・・
かれこれ、二日間迷走中。
FSOに切り替えれば済む話なのですが
ここまで、苦労してADOで進めて来た事もありもう少しねばりたいとの思いです。
【質問】
抽象的/漠然とした質問で申し訳ないですが
同様の事象を経験された方はいらっしゃいますか?
どの様にこの問題をクリアされたのでしょうか?
怪しそうなところは?
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
NGになるファイルは次も必ずNGで、OKなファイルは次も必ずOKなのでしょうか?
あと
tgtStr = .Range("P18")
tgtStr = tgtStr & .Range("P19")
tgtFileName = tgtStr & ".csv"
ここでファイル名に半角スペースとかが付いてしまってないかも気になります。
ありがとうございました。
●半角スペースが原因でした。
ファイル名の一部に他部門設定コードを流用しており
その中に「半角スペース」が入っていました。
修正後OKになりました。
過去経験で「2連アンダースコア」がNGになる場合があったので
ファイル名構成時に「除外」していましたが・・・・
半角スペースとは・・・
早速「半角スペース除外」を追加しました。
しかし
エクセル/Windowsでは「OK」ファイルが
なぜADO世界では「NG」なのか?
No.4
- 回答日時:
トラップはエラーが収まってからかけたほうが
妥当ではないでしょうか?
エラーダイアログのほうが適切なヒントがある場合が
多いものです。
回答は判りませんけど検索は
16進の80040e14で引く方が多数あるようで
クエリのSQLの問題みたいに書いてますけど如何でしょう。
小生SQL詳しくないので答えられませんけど
SQLを開示して質問すれば適切な回答が得られるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
Teraマクロで日付ディレクトリ...
-
EXCELファイルが開けない(-_-;)
-
エクセル 一括リンクの解除
-
VLOOKUP関数とネットワークに置...
-
検索結果をテキスト吐き出し
-
EXCELのVBAで画像を選んだ順に...
-
ファイルを並び替えるときの「...
-
EXCELのハイパーリンクの編集を...
-
Excel VBAで自動的にハイパーリ...
-
ファイル名を置き換えるやり方...
-
複数のHTMLファイルの中身にお...
-
エディタで効率的な切り出し方法
-
エクセル:フォルダ内のファイ...
-
エクセルを選択して開き印刷す...
-
VB6.0で、APIのファイルを開く...
-
EXCELで複数のファイルから抽出
-
ローマ字→カタカナへ変換(エク...
-
スクロールしてもボタンを常に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
【マクロ】シート名を取得する...
-
Teraマクロで日付ディレクトリ...
-
EXCELのVBAで画像を選んだ順に...
-
VLOOKUP関数とネットワークに置...
-
ファイルを並び替えるときの「...
-
エクセル 一括リンクの解除
-
EXCELのマクロを使って、テキス...
-
EXCELで複数のファイルから抽出
-
excel INDIRECT 他ファイル参照
-
エクセルからスキャナVBAで連動...
-
ハイパーリンクで前回値をひき...
-
エクセルファイルから指定した...
-
CSVで文字化けしてしまうのを直...
-
PDF ファイルが開けません。
-
Excelでリンクを使用すると#N/A...
-
=CELL("filename")で取得したフ...
-
エクセル:フォルダ内のファイ...
-
Excelvbaで同一フォルダー内の...
おすすめ情報
エラートラップは掛けていますが、エラーは発生していません。
dbRs.State=0
でそのまま、次処理へ。
文字コード?
特に意識せず
'----csv形式保存
With 現Wb.Sheets("◆****")
tgtStr = .Range("P18")
tgtStr = tgtStr & .Range("P19")
tgtFileName = tgtStr & ".csv"
tgtFullPath = .Range("P16") & "\" & tgtFileName
.Range("P21") = tgtFullPath
End With
newWB.Sheets("*****").SaveAs Filename:=tgtFullPath, FileFormat:=xlCSV
で、全ファイル同一処理で保存しています。
トラップ構文ミスがありました。
(初回の補足では失礼しました。)
エラーが出ていました
【450】
引数の数が一致していません。
または不正なプロパティを指定しています。
です。
あわてました、トラップ構文再度ミスがありました。
ちょっと落ち着いてやってみます。
OKファイルはトラップをパス
NGファイルではErr.Number (-2147217900) が出ます。
ADO実行エラー系:-21468***** とは別物?
(-2147217900)で下記を見つけましたが
https://support.microsoft.com/ja-jp/help/966146/ …
・・・ほとんど理解できません。
宜しくお願いします。
エラー内容
2147217900/80040e14/FROM 句の構文エラーです。
SQL文です。
strSQL = ""
strSQL = strSQL & "SELECT * FROM " & tgtFileName
With dbRs
.Source = strSQL
.ActiveConnection = dbCon
.CursorType = adOpenStatic
.LockType = adLockReadOnly
End With
dbRs.Open
自動生成/命名したFile(付番が異なるレベル)のリストから
「tgtFileName」で対象選択繰り返し連続処理でなぜOkとNgが?
タイミング? DoEvents→NG dbRs.Stateでループ→NG
迷走中です。