プロが教える店舗&オフィスのセキュリティ対策術

エクセルデータをアクセスへインポートしているのですが
ファイル数が多いため自動化を考えています。

※決まったフォルダーへファイルを入れておいて
メニューフォームから作業できるようにしたいと考えています

ファイルはcsv形式です
win98 アクセスは2000です

1.ファイルには全て見出しがついています。
(手動の場合は先頭行をフィールド名として使うにチェックを入れています)

2.ファイル名は常に同じ名前です

各ファイルを指定のテーブルにインポートしたいのですが
どのようなマクロを組めばよろしいのでしょうか?
(マクロを組まなければ出来ないですよね?)

また、参考図書がありましたら出版社と本の名前を教えていただけると
助かります。
(本屋で立ち読みをしたのですが、見つけることが出来ませんでした。)

お盆でお休みのところすみませんが、アクセス初心者のため、
ご教授願います。

A 回答 (3件)

Docmd.TransferSpreadsheet acImport,,"設定したいテーブル名","フルパスのExcleファイル名",True,"シート名!範囲"



と、こんな感じです。
上記で !範囲 を省略すれば、全範囲です。

TransferSpreadsheetメソッドの詳細は、Access VB Editorで
ヘルプを参照して見て下さい。

この回答への補足

miya777さん

早速ありがとうございます。

試したみたのですが、下記のようなマクロでよろしいでしょうか
実行すると「外部テーブルのフォーマットが正しくありません。」
のエラーが表示されてしまいます。
データ型はそろえたのですがテーブルでは主キーでオートナンバー型の
フィールドを先頭に入れています。
これはファイルにはないので削除したほうがいいのですか?

それとも下記がまったく違うのでしょうか?

お手数をおかけしますが教えてください。

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

Dim stDocName As String

stDocName = "マクロ1"
DoCmd.TransferSpreadsheet acImport, , "head", "head.csv", True, "head!"

Exit_コマンド1_Click:
Exit Sub

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

End Sub

補足日時:2001/08/15 17:01
    • good
    • 0
この回答へのお礼

ありがとうございました。
アクセスは難しいですね
根気よくがんばってみます。

お礼日時:2001/08/16 16:54

テキスト変換


で、区切り記号付きインポート
     ・
     ・
ファイル名はドライブから指定すれば出来ます。

上記を選択すればできると思います。
ダイアログボックスを使いたい場合は、モジュール等も使用するようになるので
面倒ですが・・・
    • good
    • 0
この回答へのお礼

ありがとうございました
<ファイル名はドライブから・・
うまく読み込みにいっているようです
それ以外がまだうまくいきませんが・・
がんばります

お礼日時:2001/08/16 16:57

補足に対する回答です。



> データ型はそろえたのですがテーブルでは主キーでオートナンバー型の
> フィールドを先頭に入れています。
> これはファイルにはないので削除したほうがいいのですか?
削除してください。フィールド数が一致しないと良くないです。
一度テーブルが無い状態で試してください。
インポートですのでテーブルが新規で作成されるはずです。
ちなみに TransferSpreadsheet メソッドのパラメータでTrueとしているのは、
先頭行を項目名として扱うという意味です。
インポートすると、項目名が自動設定されます。
その後、型が会わない各種データを調整してください。
また、インポート時は、NULL値があったりすると正確にインポートできない場合がありますので気をつけてください。
そういう場合は、先頭20行程度、ダミーデータを予めExcelのシートに突っ込んでおく必要があります。
    • good
    • 0
この回答へのお礼

度々すみませんでした
何とかうまくいきそうです。

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

お礼日時:2001/08/16 16:58

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