ACCESSの既存テーブルに、EXCELのデータをレコードとして追加する方法はありますか?
又は方法を説明しているサイト等ありましたら教えて下さい。
EXCELのデータは、シートの1行目に各項目名、2行目以降に各データが順次入力されている状態です。
尚、EXCELの項目名と、ACCESSのフィールド名は一致していない状態です。
例えば、
EXCELの項目名:「予約ID」、「予約名」、「予約日」
ACCESSのフィールド名:「rsv_id」、「rsv_name」、「rsv_date」
のような感じです。
ACCESSのフィールド「rsv_id」には、EXCELの「予約ID」項目のデータを入れなければいけません。
こういうことは出来るのでしょうか?
※マクロは使わないようにしたいです。
いったんACCESS上で、EXCELのデータを元に新規テーブルを作成してから、
その新規テーブルからデータを抽出して、既存テーブルにレコード追加するような、SQLを書けばできるでしょうか?
No.1ベストアンサー
- 回答日時:
1.Excelのデータを、Accessにインポートします。
2.クエリ/新規作成/デザインビュー、テーブルの表示で、1でインポートしたテーブル(T_Excelとします)を設定し、各フィールドをクエリのデザイングリッドにドラッグします。
3.ツールバーのクエリの種類で、追加クエリを指定すると、追加先のテーブルを訊いてくるので、既存テーブル(T_Access)を指定します。
4.レコードの追加欄に、対応する既存テーブルのフィールド名を指定します(選択肢が表示されますので、そこから選択します)
5.ツールバーの「!」アイコンをクリックするか、クエリを一旦保存・終了後、ダブルクリックして実行すると、レコードが追加されます。
SQLを表示させると、下記の様になりました。
INSERT INTO T_Access ( rsv_id, rsv_name, rsv_date )
SELECT T_Excel.予約ID, T_Excel.予約名, T_Excel.予約日
FROM T_Excel;
No.2
- 回答日時:
ACCESSVBAが判らんので>※マクロは使わないようにしたいです、
となっているのでしょうが、下記程度なら、ACCESSのマクロ(VBAは別にあるがそれではない)の1行(1操作程度に当たる)をコード化したようなもので簡単である。
良ければ使うことを考えてみては。
ーー
ACCESSのオブジェクトにモジュールがあるが、そに貼り付けて実行。
Sub test05()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"社員7", "C:\Documents and Settings\xxxx\My Documents\01化.xls", True, "Sheet2!A1:C7"
End Sub
ACCESSのテーブル名、エクセルのパス名+ブック名、シート名、データセル範囲について質問者の場合に置きかえるやり方はわかると思う。
注意事項は
(1)エクセルデータ第1行目には、項目見出しをACCESSのフィールド名と合致するよう入れる。
(2)エクセルの項目見出しの順序は、ACCESSのテーブルのフィールド名の順序と一致して無くてよい。エクセルデータ側が、全フィールドの一部でも良い。
(3)実行するごとに、アクセスのテーブル側でエクセルのレコードが累積するので、そのつもりで実行のこと。
1回限りで使うなら良いが、他人を巻き込んでのシステムでは使いづらいかも。ACCESS辺りになると、VBAが使えないと、他人を巻き込んでのシステムは作れないだろう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
ExcelのデータをコピーでACCESS...
-
アクセス エラーを数値「0」に...
-
IT用語について質問です。 以前...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
Accessで別途保存の画像ファイ...
-
ACCESSでの改行コード
-
SQLで特定の文字を含むものを削除
-
SQLServer2005のSQL文での別名...
-
アクセス メモ型 255文字...
-
Accessの最大レコード数制限
-
アクセス A列コピー B列貼り...
-
ACCESS VBAにてCSV...
-
通貨型で\\0の時、何も表示しな...
-
ACCESSでオートナンバーを任意...
-
フォームのデータシートビュー...
-
ODBC--リンクテーブル'XXXX'で...
-
INSERT INTO ステートメントに...
-
ACCESSでテーブルのチェックを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
accessのレポートで元になるテ...
-
アクセス エラーを数値「0」に...
-
ExcelのデータをコピーでACCESS...
-
Accessで、固定アルファベット+...
-
Access 昇順・降順で並び替え...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
SQLServer2005のSQL文での別名...
-
ACCESSで和暦を西暦に・・・
-
ACCESS2000「定義されているフ...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
-
ACCESSでテーブルのフィールド...
-
アクセス A列コピー B列貼り...
-
IT用語について質問です。 以前...
おすすめ情報