アプリ版:「スタンプのみでお礼する」機能のリリースについて

【現状までの経緯】
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で進めて来た事もありもう少しねばりたいとの思いです。

【質問】
 抽象的/漠然とした質問で申し訳ないですが
 同様の事象を経験された方はいらっしゃいますか?
 どの様にこの問題をクリアされたのでしょうか?
 怪しそうなところは?

 よろしくお願いします。

質問者からの補足コメント

  • エラートラップは掛けていますが、エラーは発生していません。
    dbRs.State=0
    でそのまま、次処理へ。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/11/24 11:09
  • 文字コード?
    特に意識せず
    '----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
    で、全ファイル同一処理で保存しています。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/11/24 11:13
  • トラップ構文ミスがありました。
    (初回の補足では失礼しました。)
    エラーが出ていました
    【450】
      引数の数が一致していません。
     または不正なプロパティを指定しています。
    です。

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/11/24 15:37
  • あわてました、トラップ構文再度ミスがありました。
    ちょっと落ち着いてやってみます。

      補足日時:2017/11/24 15:42
  • OKファイルはトラップをパス
    NGファイルではErr.Number (-2147217900) が出ます。
    ADO実行エラー系:-21468***** とは別物?
    (-2147217900)で下記を見つけましたが
    https://support.microsoft.com/ja-jp/help/966146/ …
    ・・・ほとんど理解できません。
    宜しくお願いします。

      補足日時:2017/11/24 16:19
  • エラー内容
    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
    迷走中です。

    No.4の回答に寄せられた補足コメントです。 補足日時:2017/11/27 08:29

A 回答 (6件)

NGになるファイルは次も必ずNGで、OKなファイルは次も必ずOKなのでしょうか?



あと

tgtStr = .Range("P18")
tgtStr = tgtStr & .Range("P19")
tgtFileName = tgtStr & ".csv"

ここでファイル名に半角スペースとかが付いてしまってないかも気になります。
    • good
    • 0
この回答へのお礼

ありがとうございました。

●半角スペースが原因でした。
ファイル名の一部に他部門設定コードを流用しており
その中に「半角スペース」が入っていました。
修正後OKになりました。

過去経験で「2連アンダースコア」がNGになる場合があったので
ファイル名構成時に「除外」していましたが・・・・
半角スペースとは・・・
早速「半角スペース除外」を追加しました。

しかし
エクセル/Windowsでは「OK」ファイルが
なぜADO世界では「NG」なのか?

お礼日時:2017/12/01 08:07

ごめんなさい。

前述の通りSQLに詳しくないので新たに質問されることを
お勧めします。
なお
>FROM 句の構文エラーです。
とわかっているなら、tgtFileNameの値も示した方がいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ファイル名に「半角スペース」混入が原因でした。

お礼日時:2017/12/01 08:10

トラップはエラーが収まってからかけたほうが


妥当ではないでしょうか?
エラーダイアログのほうが適切なヒントがある場合が
多いものです。

回答は判りませんけど検索は
16進の80040e14で引く方が多数あるようで
クエリのSQLの問題みたいに書いてますけど如何でしょう。

小生SQL詳しくないので答えられませんけど
SQLを開示して質問すれば適切な回答が得られるのでは?
この回答への補足あり
    • good
    • 0

>Openできない現象が発生


で尚且つ
>エラートラップは掛けていますが、エラーは発生していません。

これってどうOpenできないのでしょうか?
トラップはずしてみましたか?
この回答への補足あり
    • good
    • 0

文字コードの影響とかはありませんか?

この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。
ファイル名に「半角スペース」混入が原因でした。

お礼日時:2017/12/01 08:14

回答ではありません。


エラーコードは何ですか?
その数字で検索はされましたか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!