エクセル Access
A列 B列 C列 フェールド名 人 りんご みかん ばなな キャベツ
リンゴ 3 木村 木村 3 2
みかん 2 木村 小林 4
ばなな 4 小林 青木 2
キャベツ 2 青木
のようにエクセルのデータでA列をAccessのフィールド名にし、もし無ければ、その項目名(りんご等)をフィールド名に追加させ、上の右図のようにAccessにデータを取得させるコードを作りたいと考えてます。
取得させる場合はExcellではなく、Access VBAで取得させたいです。
どんなコードを書いたらよろしいのですか?
分かる方がおられましたら、よろしくご指導くだされとうれしいです。
私のVBAのレベルですが、Access VBAは今回初めてで、Excel VBAは中級くらいかと思います。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
VBA は必要ないと思います。
Excel ファイルの拡張子を「xls」と仮定します。
また、対象は「Sheet1」で、1行目に見出しがないデータとなっている。
Access 側のクエリをSQLビューにして、以下を記述し表示してみます。
TRANSFORM SUM(F2) AS 合計
SELECT F3 AS 人
FROM [Sheet1$] IN 'Excelファイルのフルパス'[Excel 8.0;HDR=NO]
GROUP BY F3
PIVOT F1;
Excelファイルのフルパスが D:\Hoge\hogehoge.xls だったら
TRANSFORM SUM(F2) AS 合計
SELECT F3 AS 人
FROM [Sheet1$] IN 'D:\Hoge\hogehoge.xls'[Excel 8.0;HDR=NO]
GROUP BY F3
PIVOT F1;
Excel Sheet1 の1行目に見出しがない事を HDR=NO で指定すると、
A列 ~ は、F1,F2・・・で参照できます。
指定した「Excelファイルのフルパス」の「Sheet1$」(シート名+$)をみて、
F3 でグループ化しますよ。
その時、F1 で項目をまとめてください。
値の部分は、F2 を合計してください。
これは、クロス集計の内容となってます。
※ 拡張子と連動する変更箇所
「xls」-「Excel 8.0」
「xlsx」-「Excel 12.0 Xml」
「xlsm」-「Excel 12.0 Xml」
「xlsb」-「Excel 12.0」
※ Access 2007以降であれば上記拡張子は全部指定できると思いますが
2007以前の Access では xls のみ と思います。
※ もし、この内容でテーブルを作りたいのであれば
上記クエリ名を「Q★★」としていたとすると、
SELECT * INTO 作りたいテーブル名 FROM Q★★;
のクエリを作って、実行すれば良いと思います。
ただ、出来上がったテーブルで何かしたい・・・
今後使い難いと思いますけど・・・(見るだけ用途なら良いかも)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
オートフィルタ後のデータから...
-
エクセルで行の高さ及び列幅の...
-
矩形範囲の複数列を縦1列に並...
-
急ぎ!色のついたセルを非表示...
-
Excelで並び替え後にア行...
-
文字列を比較し、相違するフォ...
-
複数回答のクロス集計の方法
-
エクセル VBA 行間隔を飛ばした...
-
検索条件に合うセルの個数を数...
-
Excelで複数列のデータを1列に...
-
マクロで行の高さを設定したい
-
EXCELで日付を比べ3か月以内の...
-
プルダウンに【なし、平均、デ...
-
エクセルのマクロで別のシート...
-
エクセルの時刻のカウントが出...
-
平均変化率の信頼区間
-
エクセル 複数行ある同一商品...
-
エクセルの集計方法を教えて下さい
-
エクセル関数のSUMPRODUCTにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
平均変化率の信頼区間
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル関数について
-
excel / ピポッド 日数を出したい
-
エクセル VBA 行間隔を飛ばした...
-
時間の重複チェック
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
列と行の名前(重複あり)が交...
おすすめ情報