ACCESSのDBをEXCELデータで更新する方法

このQ&Aのポイント
  • ACCESSのDBをEXCELデータで更新する方法について詳しく教えてください。
  • 定型のEXCELデータをACCESSで管理する方法を教えてください。
  • VBAを使わずにEXCELデータをACCESSのテーブルに追加する方法を教えてください。
回答を見る
  • ベストアンサー

ACCESSのDBをEXCELデータで更新する方法

毎月、定型のEXCELデータが作成されます。 A列は部門A、B列は部門B、C列は部門Cです。(この部門名が100個あります) もし、その月に部門で退職者がいれば、人数の数値が入力されます。 (つまり 先月、部門Aに1名発生していれば、先月のデータは「A列に1がたち、B列とC列は0です」 今月、部門AとBに1名ずつ発生していれば、今月のデータは「A列に1が立ち、B列に1が立ち、C列は0です」) これらのデータをACCESSで管理していきたいと思います。 取り込むEXCELは定型フォーマットなので、ACCESSのテーブルは1つのレイアウトを準備予定です。 基本的なことなのですが、エクセルを取り込んで、テーブルに追加クエリ?(上のケースでいえば、今月分を取り込んだとき、A部門のフィールドについては先月に追加した「1」に今月新たに「1」を追加して2に変更したい)をするためには、どういう対応をすればよいのか、参考書を読んでもよく分かりません。 項目が100個あるためフォームを使って個別に更新するのは難しいです。 VBAなどを組まないといけないのでしょうか。 参考になる方法やヒントをおしえて頂ければ、その上で、参考書をもう一度見ていきたいと思います。 基本的なところからで申し訳ありませんが、詳しい方、お力をお貸しください。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • sppla
  • ベストアンサー率51% (185/360)
回答No.1

AccessにはExcelのデータを取り込むインポート機能や、Excelのシートを参照してAccessのテーブルのように取り扱えるリンク機能がありますのでそれを使われるとよいと思います。 個人的には下記のようなデータ構造(Accessでの列が多くなる)よりは  部門A、部門B、部門C・・・  1人、0人、2人・・・ 下記のような構造  年月、部門名、退職者数  2011/7、部門A、1人  2011/7、部門B、0人  2011/7、部門C、2人 にした方が、Accessでの取り扱い上(インポートやリンクのしやすさ、集計の取りやすさで)楽になると思います。(また組織変更時にも問題が起きにくいと思います)

関連するQ&A

  • ExcelデータをAccessに取得させる方法

           エクセル           Access    A列   B列  C列      フェールド名  人 りんご みかん ばなな キャベツ    リンゴ  3   木村               木村  3    2    みかん  2   木村             小林             4    ばなな  4  小林               青木                   2    キャベツ 2  青木 のようにエクセルのデータでA列をAccessのフィールド名にし、もし無ければ、その項目名(りんご等)をフィールド名に追加させ、上の右図のようにAccessにデータを取得させるコードを作りたいと考えてます。  取得させる場合はExcellではなく、Access VBAで取得させたいです。  どんなコードを書いたらよろしいのですか?  分かる方がおられましたら、よろしくご指導くだされとうれしいです。  私のVBAのレベルですが、Access VBAは今回初めてで、Excel VBAは中級くらいかと思います。  よろしくお願いします。

  • access データ更新

    Access初心者です。 いま、自分がやってる業務の簡単なDBをaccessで作成しようとしてます。質問ですが、テーブル(1)とテーブル(2)、((1)(2)ともにフィールドは仮に、A列(ユニークなコード)、B、C、D(日付)、E(午前 or 午後)とした場合) テーブル(2)に日々CSVファイルをインポート。その際、テーブル(1)と(2)の差分((1)にあって(2)にないもの)をテーブル(1)に追加したいのと、テーブル(1)(2)両方あるが、D列、またはE列が、テーブル(1)と(2)が違った場合、テーブル(2)にあるデータを書き換えてテーブル(1)に保存するような、マクロを作りたいと考えてます。 不一致クエリとか使えば、出来そうな気がするんですが・・・ どなたか、ご存知の方、教えてください。

  • エクセル側からアクセスへデータ転送

    エクセル側からアクセスへデータを転送したく、 Sub Data_Add() Dim db As New ADODB.Connection Dim Rs As New ADODB.Recordset db.Open _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\Users\Owner\Desktop\A.mdb;" Rs.Open "B", db, adOpenStatic, adLockPessimistic Rs.AddNew Rs!a = Worksheets("1").Range("A1").Value Rs!b = Worksheets("1").Range("B1").Value Rs!c = Worksheets("1").Range("C1").Value Rs!d = Worksheets("1").Range("D1").Value Rs!e = Worksheets("1").Range("E1").Value Rs.Update Rs.Close db.Close これで、エクセルからアクセス"A"のテーブル"B"のフィールド"a"にエクセルの"A1"を、フィールド"b"にエクセルの"B1"をという風に、セル1つづつを転送させる事はできましたが、セル1つづつでは無く、A列をフィールド"a"に、B列をフィールド"b"にという風に、列ごと追加するにはどの様にしたらいいですか? 又、追加ではなく更新(すでにあったデータに追加するのではなく、上書き)するにはどの様にしたらいいですか? 追加、更新それぞれしたいので、誰か教えて頂けませんか? よろしくお願いします。

  • ExcelからAccessにデータを取り込む方法

    質問します。 Access初心者、VBA初中級者です。 VBAで、ExcelからAccessにデータを取り込んでいます。 ですが、Excelの表はAccessのDBの型と一致していません。取り込む場合、特定の列のデータをAccessの特定のフィールドに取り込むことはできますか? (たとえば、ExcelのA列のデータは、Accessの「品番」フィールドに入れる、B列のデータはAccessの「商品名」フィールドに入れる、というように。) 一時エリアに保存して、それを取り込む方法でもいいです。 現在TransferSpreadsheetを使っていますが、Rangeを指定して一度に全部もってきたいわけではないので、できれば取り込み先を設定したいと思った次第です。 また、Excelは使用行が決まっていないため、取り込みも、できれば 「カラ行になるまで1行ずつ取り込む」というようなコードにしたいです。 お手数をおかけしますが宜しくお願いします。

  • ExcelデータをACCESSへエキスポート

    ExcelデータをADOを使いACCESSへエキスポートしたいのですが、 データ型がちがうというエラーが出てエクスポートできません。 対処法を教えてください。 Excelシートの次のようなデータをAccessへエクスポートしようと しています。 A B C D E F G(列) 1 ID  番号 地域  客先  売上金額 種類 数量 2    K01 東京    a社  100,000    イ  4 3    K02 神奈川  b社  50,000 Excelシートの1行にフィールド名があり、レコードがA2:G3入って いるとします。Accessの売上テーブルにExcelのフィールドと同じ 順番のフィールド名があった時、Excel VBAにてADOを使いAccess にデータを貼り付けようとすると、データ型がちがうとエラー表示 が出てしまいます。A2:A3はAccessの自動発番機能を使うのでいつも 空です。又F3:G3はデータがこの例のように空の場合もあります。 Excel側もAccess側もフィールドのデータ型は同じにしたつもりです が、レコードが空があることがエラーの原因でしょうか。もしそうなら どう対処すればよいのでしょうか。

  • アクセスのデータをエクセルに上書き保存し

    先日、「アクセス2013でエクセルにデータを出力したい」で質問し、 回答をもらい、行いたいことができました。 http://okwave.jp/qa/q8634369.html 数行あけて出力できるようになったのですが、これを繰り返して、間にデータを 挿入していこうとすると、保存した値が消えて最後に関数を呼び出した結果しか表示されません 上書き保存で実施していくためにはどうしたらよいのでしょうか? Accessは2013です ~テーブルイメージ~ テーブル1 メーカー名  2014/6/1  2014/6/2  2014/6/3  合計 ----------------------------------------------------- メーカーA     2    1      1     4 メーカーB     1    1      1     3 テーブル2 メーカー名  2014/6/1  2014/6/2  2014/6/3  合計 ----------------------------------------------------- メーカーA     5    6      7     18 メーカーB     2    2      2     6 ~出力エクセルイメージ~ A     B   C    D・・・ H   1 メーカーA   2    1    1    4 2 メーカーA   5    6    7    18 3 4 5 メーカーB   1    1    1     3 6 メーカーB   2    2    2    6 7

  • エクセルからアクセスのテーブルにデータ追加したい

    Excel(xls)からAccess(mdb)のテーブル(出力)にデータを追加できるVBAコードを教えてください。 条件 Accessの名前と場所 C:\SP3\Print.mdb テーブル名 (出力) (履歴) テーブル構造 (出力) (履歴)ともに、フィールド1~4、ID 履歴テーブルのIDは、カウントアップであり、プリント後のデータが格納される。エクセルでマクロを起動したときに、最初に履歴テーブルの最後のIDを知り、エクセルの対応するID列をレコード分だけ最後のID+1から通番を付ける。通番を付けたら、エクセルのフィールド1~4とIDのレコードセットを出力テーブルの該当列に追加する。 以上がやりたいことです。 エクセルに、10行から100行程度のデータを貼りつけて、このVBAを紐づけたマクロボタンを押したら、履歴テーブルの最後を調べて、その次の番号から順に、上からID列を更新して、その後、出力テーブルに追加したいのです。 検査機器用に専用開発されたプリントソフトがデータベースにAccessを持っていて、プリントソフトのフロントからデータを手入力する仕様なのですが、エクセルで加工したデータをAccessの所定のテーブルに横差ししたい考えです。対象のPCには、Accessをインストールしていないため、エクセル側からテーブルを操作したい理由です。 よろしくお願いします。

  • アクセス2013でエクセルにデータを出力したい

    はじめまして。初心者ですがよろしくお願いします。 アクセス2013で作成したテーブルをエクセル2013に出力させたいと思っています。 出力する場所が、1行ごとに出力するセルを指定したいのですが、どのようにすればよいのかわかりません。(うまく説明できないので下記のテーブルイメージと出力エクセルイメージを見てください。) あわせて出力イメージの合計はH列になっていますが、これは可能であればの範囲で、一番やりたいことは、メーカーAの後数行あけてメーカーBにしたいのです。 ちなみに例ではメーカー名は2メーカーですが、実際には数十個あります。 よい方法があれば教えてください。 VBAは勉強中なのでなんとなくは読み書きできます。 よろしくお願いします。 ~テーブルイメージ~ メーカー名  2014/6/1  2014/6/2,2014/6/3  合計 ----------------------------------------------------- メーカーA     2    1    1     4 メーカーB     1    1    1     3 ~出力エクセルイメージ~ A       B    C    D   ・・・ H   1 メーカーA     2    1    1       4 2 3 4 5 メーカーB     1    1    1      3 6 7

  • エクセルデータの並び順について

    エクセルデータ1にA列に商品名B列に価格C列に商品説明・・・他 エクセルデータ2にエクセルデータとは行の並び順が異なる A列に商品名B列に価格C列に商品説明・・・他のデータあるのですが エクセルデータ2をエクセルデータ1の行並び順にあわせることはできますでしょうか? データ量が1000を超えているためとても困っております。。

  • ExcelかAccessで二つのデータが合っているかどうかを調べる方法を教えてください。

    二つのセル(フィールド)を比較して、そのデータが同じか違うか結果を別のセルに返したいのですが、そんなことって可能だったでしょうか。 データはA列とB列にほぼ同じデータがあり、その中の完全に一致してないデータだけを抽出したいのです。 行は約1500あります。 Access、Excelのどちらでも構わないのですが、方法をご存知の方がいらっしゃいましたら教えてください。