
こんにちは。
エクセルで作成された従業員台帳を、アクセスにインポートしたいのですが、エラーが出て困っています。
インポートの為のフォームを作り、参照ボタンでそのエクセルファイルを選択してフルパスを取得し(こちらの動作はOKです)、実行ボタンでそのファイルをインポートする、という方法をとろうと思います。
transferspreadsheet で、エクセルのファイル(.xls)は問題なくいくのですが、csv形式のファイルを指定して同じようにインポートすると、
実行時エラー 3274 外部テーブルのフォーマットが正しくありません。 となってしまいます。
書いているコードは、
DoCmd.TransferSpreadsheet acImport, 8, "従業員台帳(アクセス側でのテーブルの名前)", "上記画面で取得したフルパス", True(一番上の項目をフィールド名として使用します), ""
です。.xlsでも.csvの形式でもインポートできるようにしたいのです。
環境は、winXPpro、Access2000、Excel2000 です。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
TransferSpreadsheet ではなく
TransferText を使用してみてください。
詳細はヘルプをご覧下さい。
こんにちは。早速の回答ありがとうございます。ヘルプを見て、TransferTextを使用してみたらできました!
インポート元のファイルが.xlsのときはTransferSpreadsheet、.csvのときはTransferTextを使うようにしようと思います。どうもありがとうございました。
お礼に書いてしまって申し訳ないのですが、インポートしたテーブルを、削除するということはできないのでしょうか?何回も取り込む場合、テーブルが残っているとちょっと面倒なので…(今はそれにより発生するエラーの番号を拾って回避しています)。もしお分かりになりましたらよろしくお願いします。
No.3
- 回答日時:
#1 です。
>インポートしたテーブルを、削除するということはできないのでしょうか
テーブルの削除なら
DoCmd.DeleteObject acTable, "テーブル名"
ですね。
毎回、同じデータ形式のCSVをインポートするなら、インポート先のワークテーブルを固定にしておいて、インポートの直前に、
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete From ワークテーブル名"
で、データだけ消してしまう方法があります。
こんにちは。再度の回答、どうもありがとうございます。
データが重複すると困るので、インポートしたテーブルを参照して、データが残っていたらdelete文で削除し、インポートの処理を行っているのですが、テーブルがない場合、参照することすらできないので(この部分をエラー番号で拾っています)、そうだ、テーブルを削除すればいい、と思ったのです。取り込むファイルは同じ形式の予定ですが、お客さんの使うソフトに組み込む予定ですので、できるだけエラーの出ないようにしたいものですから…
本当に助かりました。ありがとうございます。また何かありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessのテーブルを既存のExcelファイルへエクスポートしたいんですが
Access(アクセス)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
AccessにExcelのデータがリンクできない
Access(アクセス)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
excelインポート時の「実行時エラー2391」を事前に検知する方法
Access(アクセス)
-
6
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
9
「#エラー」の回避
Access(アクセス)
-
10
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
11
VBAで3秒だけ時間を止めたい
Visual Basic(VBA)
-
12
どこにもフォーカスを当てたくない
Access(アクセス)
-
13
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
14
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
15
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
16
VBとアクセスでSQL文に変数を使いたいのですが
Visual Basic(VBA)
-
17
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
18
ACCESSテーブルを RecordSet以外で1レコードづつ読む方法
Visual Basic(VBA)
-
19
ACCESSの集計クエリで3件ある場合の[先頭][最後]が正しく抽出できないんです。
その他(データベース)
-
20
ACCESS リストボックスの字の色を変えたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でaccdbファイルのテーブルの...
-
ACCESS テーブルに2行目から取...
-
(ACCESS)複数mdbからのデータ...
-
Access2019でフォームから入力...
-
テーブルのリンク(ACCESS)
-
画面から入力した値がDBに登録...
-
vb6でaccessデータを他ファイル...
-
エクセルからアクセスにインポ...
-
アクセスマクロで、csv データ...
-
ACCESSのVBAを利用して、Excel...
-
Accessでボタンを押したらエク...
-
データを削除しても表領域の使...
-
DELETE文でFROM句を省略した場合
-
Data Pump で大量データインポ...
-
Viewにインデックスは張れ...
-
ORA-00959: 表領域'****'は...
-
CLOB型へのINSERT
-
異なるスキーマからデータを抽...
-
postgreSQLのint型は桁数指定が...
-
Access レコードを追加できませ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
ACCESS テーブルに2行目から取...
-
他ファイルのテーブルの情報を...
-
C#でaccdbファイルのテーブルの...
-
(ACCESS)複数mdbからのデータ...
-
アクセスマクロで、csv データ...
-
データ読込時のタイムアウト
-
mdb→csvへのエクスポートについて
-
Access2019でフォームから入力...
-
JSPでデータベース作成
-
テーブルのリンク(ACCESS)
-
VBAで データベースにデータを...
-
シーケンシャルアクセスについて
-
VBでCSVデータをMDB
-
ACCESSのリンクについて
-
Accessでボタンを押したらエク...
-
Accessの接続先をSQLサーバ...
-
jspのプログラムについて
-
アクセス初心者に注意点を教え...
-
画面から入力した値がDBに登録...
おすすめ情報