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

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

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

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

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

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

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

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

このQ&Aに関連する最新のQ&A

A 回答 (3件)

補足に対する回答です。



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

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

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

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

テキスト変換


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

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

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

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

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

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q趣味 VS ホビー、どう理解したらいいのですか?

最近気づいたのですが、このQ&Aサイトのカテゴリーには
【趣味】があり、その内訳に[ホビー]、[その他(趣味)] が
同列にあり、更に[ホビー]の内訳の中には{その他(ホビー)}
というのもあります。

[ホビー]は【趣味】の中に入る、というのは確かのようですが、
趣味とホビー、何か違いがあるのでしょうか。


【趣 味】
- ・・・・・・・・
- ・・・・・・・・
- ・・・・・・・・
- [ホビー]
ーーー - ・・・・・・・・
ーーー - ・・・・・・・・
ーーー - ・・・・・・・・
ーーー - {その他(ホビー)}

- [その他(趣味)]
   

Aベストアンサー

こんばんは。

面白い質問ですね。
なるほどと思い私も考えてしまいました。

読書、音楽、絵画鑑賞・・・これらはいずれも趣味でしょうね。
中に趣味の域を超えて専門的な知識、技術を必要とする
趣味もあります・・・。
私はこれらを「ホビー」と言うのかなと思います。

模型に限らず「ホビー・ショップ」があるのはそのためでしょう。

Qアクセス インポートファイルの再インポートを防ぐ

アクセス2003を使用しています。

アクセスにて、エクセルファイルをインポートしています。
既にインポートしたエクセルファイルを再度インポートしないように、再取込みを行おうとした場合、
「既に取り込んでいるファイルです」とエラーメッセージを表示させて、取込み防止を行おうとしています。
クエリの重複チェックを設定していたのですが、行き詰ってしまいました。

アクセスのテーブル先頭フィールドの日付データ(yyyy/mm/dd)でチェックしたいと思っています。

教えてください。よろしくおねがいいたします。

Aベストアンサー

不一致クエリで事足りると言う事なら。
>一緒に1テーブルとしてリネーム保存(kokyaku_all)→新しいファイル
は不要でしょう。

このテーブルと、そのエクセルファイル(取り込み元)で日付を比較して一致しないものを取り込めばいいのです。

とりあえず、そのエクセルファイル(ここでは仮にBとします。)
をリンクなりして、アクセス上のテーブル(同テーブルAとします。)
の日付を比較します。

「クエリ」→「新規作成」から「不一致クエリウィザード」を呼び出し
レコードを抽出するテーブルにBを指定します。
次に、比較に使うテーブルにテーブルAを指定。
共通するデータを含むフィールドに「日付」を各々指定。
選択可能なフィールドを適宜指定。→完了で未取り込みのデータのみが
表示されるはずです。

このクエリをデザインビューで開き、追加クエリに変更し、追加先にテーブルAを指定し、各フィールドの追加先を指定してやります。
これでお望みの結果になるはずですが、作業前には必ずバックアップを
とって自己責任でお願いします。
追加クエリへの変更方法などは探せば相当数ヒットするはずですので
ここでは割愛させていただきます。(というか、各フィールドの正式名称やデータ型などが記載されていませんのでこれ以上のアドバイスは困難です。)

不一致クエリで事足りると言う事なら。
>一緒に1テーブルとしてリネーム保存(kokyaku_all)→新しいファイル
は不要でしょう。

このテーブルと、そのエクセルファイル(取り込み元)で日付を比較して一致しないものを取り込めばいいのです。

とりあえず、そのエクセルファイル(ここでは仮にBとします。)
をリンクなりして、アクセス上のテーブル(同テーブルAとします。)
の日付を比較します。

「クエリ」→「新規作成」から「不一致クエリウィザード」を呼び出し
レコードを抽出するテーブルに...続きを読む

Q電撃ホビーとホビージャパン

電撃ホビーとホビージャパン、
それぞれの特徴を教えていただけないでしょうか?

どちらかに絞って買いたいのですが、ざっと立ち読みをしただけでは
違いがちょっと分からないので…。

詳しい方のアドバイスお待ちしております。

Aベストアンサー

ガンプラを中心に超合金やスパロボ、ゾイドなどの情報があるのが電撃ホビーマガジン、やはりガンプラ中心ではありますが、その時のトレンドで特集が変わる、また模型メーカーや模型店の広告が多いのがホビージャパンってところですね。
タマにガンプラで特集がかぶるときがありますが、作例の出来では若干ホビージャパンに軍配が上がるかも。

またこれはかなり主観が入りますが、読後の印象が電撃ホビーマガジンの方がうすいように感じました。
その分オマケで勝負している感もありますが。

Qアクセスへエクセルインポートの自動化マクロ

アクセスへエクセルインポートの自動化の仕方を教えてください!
CSVからだとインポートの自動化はできたのですが、いちいち換えるのが手間なので。
VBではなくてアクセスのマクロでできる方法をさがしてます!

Aベストアンサー

アクション=ワークシート変換
変換の種類=インポート
ワークシートの種類=Microsoft Excel 8-9
テーブル名=Table1
ファイル名=C:\Book1.xls
フィールド名の設定=はい

ただし、C:\Book1.xlsに複数のシートがある場合、一番左にあるシートが対象になるようです。
また、このマクロを初めて実行したときにTable1が作成されますが、続けて実行するとTable1の最後に追加されていきます。
頑張ってくださいヽ(^。^)ノ

Q模型屋とホビーショップの違い

タウンページを見ると模型屋とホビーショップは分けられるのですが、この二つの店の違いってあるのでしょうか?
模型屋=ホビーショップだと思っていたのですが、どうやら違うような気がして・・・

Aベストアンサー

模型屋さんは模型(プラモデルや鉄道模型、ラジコン)のキットや塗料、工具類のお店で軸足を模型に置いている(と店主が考えている)お店

ホビーショップは模型屋さんに有るもの以外にもカード類、ファンシーグッズ、ミニカー類、ガシャポン類各種フィギュア類などのコレクション製の高いおもちゃを総合的に扱っている(と店主が考える)お店

なのではないでしょうか???

もちろん、模型関係だけではあまり売り上げがあるはずも無く、幅広い商品を置いている模型屋さんもありますし、そこいらの模型屋さんよりも模型類の品揃えのいいホビーショップもざらですけどね

Qアクセス 自動インポートマクロで

アクセス 自動インポートマクロで以下のようなものを作りました。
(1)テーブル「人事データ」をテーブル「人事データ(前回分)」としてコピー
(2)エクセル「人事データ」をテーブル「人事データ」としてインポート
(3)テーブル「人事データ」と「人事データ(前回分)」の不一致をクエリで抽出
(4)エクセルに出力

そこで、(2)の項目でインポートする際に、「人事データ040325」といったように後ろに日付をつけることはできますか?
どこまでインポートしたか履歴を知りたいためです。

Aベストアンサー

マクロでもできますよ。
(3)の不一致クエリがあるのでインポートは「人事データ」で行った方がいいと思います。
(2)の後で
のオブジェクトのコピーで新しい名前に
="人事データ" & Format(Date(),"yymmdd")
とすれば、PCの日付の「人事データYYMMDD」のファイルができます。

QNECの「スマートホビー」での画像取り込みについて

NECパソコンにプリインストールる画像編集ソフト「スマートホビー」についての質問です。デジカメで使用しているメモリーカード(SDカードなど)からスマートホビーのソフトでPC内に画像を取り込んだ場合には、元々のカード内のデータ(画像)はカードに残っているのでしょうか?(画像のコピーになるのか、或いは移動になるのかという質問です) 知人からの相談のため、申しわけありませんが、今現在スマートホビーのヴァージョン等は分かりません。宜しくお願いします。

Aベストアンサー

画像はメモリーの中に残っていますので、PCに取り込んだ後でもカメラで見る事が出来ます。

只取り込み済みの画像は以降スマートホビーで取り込んでもその後撮影
分のみがPCに取り込まれます。

もう一度全部取り込みたい時はスマーホビーでなくマイコンピューターからカメラのフォルダーを開いて
そこから通常のコピー、貼り付けで取り出せます。

Qマイクロソフトアクセスのインポート時にインポートエラーが出る

エクセルで作成したデータをアクセスでインポートしたら、
 (1)普通のテーブル
 (2)『 [テーブル名]$_インポート エラー 』というテーブル
の二つ出てきました。

(2)のエラーテーブルって、どんなときに現れるのか、お分かりになりますか?
エラーテーブルを見ると、3つフィールドがあり、左から「エラー」「フィールド」「行」となっていました。
とりあえずざっと(1)のテーブルと、エクセルの元データを見たのですが、問題なさそうな気もするのですが...
あとで致命的な問題になると困るので、もしお分かりの方がいらっしゃったら、ご教示願います。

Aベストアンサー

アクセスのヘルプで質問に
「データをインポートする」
に書かれてますよ。

多いのがフィールドのデータ形式の不一致
文字列の長さが長い
数値・日付/時刻に文字列の挿入
数値の形式に合わない範囲のデータがある
日付/時刻に負の数値が挿入された
最後のはExcelのオプションで「1904年から計算する」にチェックがあったら注意

追加の場合は主キーや固有のキーと同じデータが存在するのが増えます。

該当のレコードは未入力の状態になることが多いです。

QNECのPCで、USBを差し込むとスマートホビーが

USBを差し込むと、スマートホビーがたちあがってきます。
以前は、そういうことがなく、USBをさしこんでも、普通にファイルが開くようになっていたのですが。。。
このスマートホビーが立ち上がってこない方法をおしえていただけませんか。

Aベストアンサー

スマートホビーの設定を変更して下さい。

http://121ware.com/qasearch/1007/app/answerinfo_main.jsp?006713
1.SmartHobby 2.0 の設定を変更する
【操作手順】4
を参考に「OS標準の設定に戻す」にして下さい。

QMSアクセスのインポート手法(パスワード設定されたエクセルブックをインポート)

アクセスで、パスワード設定されたエクセルブックからデータを自動でインポートしたいと思って、
①と②の方法を考えました。 他にこれ以上、私の浅知恵では思いつきません。
よりよいアイデアがあれば、ご教示頂けないでしょうか?

考えた方法①
:アクセス上で、ボタンアクションで、自動的にエクセルブックのパスワードを解除して、データをインポートできるマクロの構築。

①については、難しくて、実現できませんでした。


考えた方法②
:アクセス上で、エクセルアプリケーションを軌道させる。

手動で、該当のパスワードを設定されたエクセルブックを開く。

パスワードを手入力して、開き、解除をした上で、ファイル名を変更してコピー保存。

エクセルを閉じる。

アクセスに戻って、パスワード設定のないエクセルを呼び出すメニューコマンドの実行をする。
(DoCmd.RunCommand acCmdImportAttachExcel)

コピーブックを呼び出して、インポート。

以上が、恥ずかしながらのアイデアでした。。。

もしも、①が実現できるのだとすれば、その方法を、
また、①や②の他に簡潔な道筋があれば、是非、お知恵をおわけください。
よろしくお願いいたします。

アクセスで、パスワード設定されたエクセルブックからデータを自動でインポートしたいと思って、
①と②の方法を考えました。 他にこれ以上、私の浅知恵では思いつきません。
よりよいアイデアがあれば、ご教示頂けないでしょうか?

考えた方法①
:アクセス上で、ボタンアクションで、自動的にエクセルブックのパスワードを解除して、データをインポートできるマクロの構築。

①については、難しくて、実現できませんでした。


考えた方法②
:アクセス上で、エクセルアプリケーションを軌道させる。
...続きを読む

Aベストアンサー

サンプル。
ご自由にアレンジを。

Sub Sample()
  Dim strDocName As String
  Dim strNewName
  Dim oApp As Object

  strDocName = "C:\Sample\ブック.xlsx"
  strNewName = "C:\Sample\ブック_パスなし.xlsx"

  Set oApp = CreateObject("Excel.Application")

  'Excelファイルオープン
  With oApp
'     .Visible = True
    .Workbooks.Open FileName:=strDocName, _
    Password:="abcd", WriteResPassword:="abcd"

    '名前を付けて保存
    .ActiveWorkbook.SaveAs strNewName, Password:="", WriteResPassword:=""
    .ActiveWorkbook.Close False
    .Quit
  End With
  Set oApp = Nothing

  'Excelインポート
  DoCmd.TransferSpreadsheet acImport, , "テーブル1", strNewName, True, "シート1$"
End Sub


セルの値を読みながらテーブルに書き込んでいくという方法もあり?

サンプル。
ご自由にアレンジを。

Sub Sample()
  Dim strDocName As String
  Dim strNewName
  Dim oApp As Object

  strDocName = "C:\Sample\ブック.xlsx"
  strNewName = "C:\Sample\ブック_パスなし.xlsx"

  Set oApp = CreateObject("Excel.Application")

  'Excelファイルオープン
  With oApp
'     .Visible = True
    .Workbooks.Open FileName:=strDocName, _
    Password:="abcd", WriteResPassword:="abcd"

    '名前を付けて保存
  ...続きを読む


人気Q&Aランキング

おすすめ情報