重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

度々すみません。
どうしてもお伺いしたいのですが

csvファイルのインポートを
コマンドボタンで行いたいのですが
「外部テーブルのファーマットが正しくありません」と
エラーが出てしまいます。
下記に何が問題あるのでしょうか、教えて下さい。

ちなみにファイル名はhead.csvでシート名もheadです。
インポートしたいテーブル名はheadです。

テーブルの形式はすべてあわせてあります。
テーブルをカラにしてみたり
ヘッダー部分のみの状態でも同じエラーでした。

Private Sub コマンド3_Click()
On Error GoTo Err_コマンド3_Click

Dim stDocName As String

stDocName = "マクロ1"
DoCmd.TransferSpreadsheet acImport, , "head", "C:\My Documents\hea
d.csv", True, "head"

Exit_コマンド3_Click:
Exit Sub

Err_コマンド3_Click:
MsgBox Err.Description
Resume Exit_コマンド3_Click

End Sub
----------------------------------------
OSは、Windows 98
アプリケーションは、Access 2000 です
----------------------------------------

A 回答 (1件)

cvsはExcelから作成したものですか?


であれば、読み込みはは、cvsでなくExcelにしてください。

DoCmd.TransferSpreadsheet acImport, , "head", "C:\My Documents\hea
d.csv", True, "head"
とした場合は、Excel形式を想定しています。
(acImportの後ろのパラメータが 形式指定です。省略時はExcel形式です。Excelとか1-2-3形式とcvs形式などあります。詳しくはAccess VBAのヘルプを参照してください。)
    • good
    • 0
この回答へのお礼

ありがとうございました
いろいろと試してみて
TransferText acImportDelimでうまくインポートが
出来たのですが一点エラーが出てしまいます

フィールド型が違うとのエラーでインポートエラーになってしまいます
数値とアルファベットの混ざったナンバーなのでテキスト型にしているのですが
インポートしたときにどうしてか数値型に変わってしまいこのフィールドだけが
インポートされません。

どうすればいいのでしょうか?

On Error Resume Next
DoCmd.DeleteObject acTable, "head"
On Error GoTo 0

On Error Resume Next
DoCmd.DeleteObject acTable, "details"
On Error GoTo 0

DoCmd.TransferText acImportDelim, "", _
"user", "C:\My Documents\iモード受注\受注\user.csv", _
True, ""
DoCmd.TransferText acImportDelim, "", _
"head", "c:\My Documents\iモード受注\受注\head.csv", _
True, ""
DoCmd.TransferText acImportDelim, "", _
"details", "c:\My Documents\iモード受注\受注\details.csv", _
True, ""
End Sub

お礼日時:2001/08/28 12:40

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