- 締切済み
ACCESS:97→2002のモジュールの変換エラーについて
ACCESS97で作成したファイルをACCESS2002に変換したいのですが、 変換中にコンパイルエラー発生しましたとメッセージが表示されてしまいました。 ファイル自体は変換できておりエラーテーブルを見るとモジュールが変換エラーを起こしていました。そのモジュールを実行させるとやはりエラーが出て止まってしまいます。 ~モジュールの内容は~ テーブルを削除するために削除クエリーの実行(これはうまく動いてます。) フォームに入力されたパスのCSVファイルをインポートする。定義名:CSVインポート定義"インポート先:"CSVテーブル" (これがうまく動かないようです。実行させると「このファイルをインポートできません」とメッセージがでます。) 以下のものになります。 Option Compare Database Option Explicit '------------------------------------------------------------ ' CSVインポート ' '------------------------------------------------------------ Function CSVインポート() On Error GoTo CSVインポート_Err Dim parm1 As String parm1 = Forms!報告書作成!インポートパス & " " ' 入力データ削除query DoCmd.OpenQuery "全て削除クエリー", acNormal, acEdit ' インポート実施 DoCmd.TransferText acImportDelim, "CSVインポート定義", "CSVテーブル", parm1, False, "" CSVインポート_Exit: Exit Function CSVインポート_Err: MsgBox Error$ Resume CSVインポート_Exit End Function もし不足な点がありましたら補足させていただきます。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yanmaa
- ベストアンサー率45% (207/457)
Access2000SR-1以降で拡張子がDATや拡張子なしではインポート出来ない仕様(笑)の為という事で宜しいでしょうか? これを解決するには拡張子TXTでインポートするしかないと思います。 例えばインポート前に name parm1 as parm1 & ".TXT" として拡張子を変更し DoCmd.TransferText acImportDelim, "CSVインポート定義", "CSVテーブル", parm1 & ".TXT" , False, "" とするような事をすれば良いかと思います。 過去に回答した内容も参考にして下さい。
- yanmaa
- ベストアンサー率45% (207/457)
もしかしてインポートしようとしている拡張子がDATとか拡張子なしとかになっていなですか?TXTにしてインポートできればAccess2000のSP1にした時拡張子がDATでインポート出来なくなったのと同様だと思うので拡張子をTXTに変えて作業して見てください。 確認としては手動で普通にインポートして見て同様の結果(エラー)になれば拡張子が原因だと思います。
お礼
回答ありがとうございます。 早速手動での確認作業を行いました。 1回目は普通に手動でのインポート 2回目はインポート定義(うまくいかないモジュールで使用していた)を使用しインポート 両方とも問題なくインポートできました。 ・・・という結果です。 すいません補足です。 ACCESSのバージョンですが 古いほうが「ACCESS97-SR2」を使用しています。 新しいほうが「ACCESS2002」になります。 なにか良い手がありましたら宜しくお願いします。
お礼
お疲れ様です。 なんどもありがとうございます。 たいへん申し訳ございませんが・・・・解決しました。 原因は <parm1 = Forms!報告書作成!インポートパス & " " > の部分の「" "」の部分のスペースを無くしたらインポートできました じっさい97のときは「" "」でインポート出来たのですが・・・ なぜか2002の場合は「""」としないと認識してくれませんでした。 参考のURLはとてもためになりました。 ありがとうございます。