質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

Q&A

解決済

1回答

4398閲覧

ACCESS 2019で複数のファイルをインポート

ryosuke2001

総合スコア4

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

0グッド

0クリップ

投稿2019/08/15 03:22

編集2019/08/15 07:08

只今、規定のフォルダに入っているEXCELファイルを
全て自動で取り込むマクロを作成したいと考えています。
ファイルの項目は全て同じですが、複数のシートがあるため、
シートを指定してひとつのテーブルにまとめたいです。

以下のように組み立てましたが、
シートの指定が正しく反映出来ない状況です。

Private Sub コマンド0_Click() Dim strPathName As String Dim strFileName As String strPathName = "C:\" strFileName = Dir(strPathName & "*.xlsx") Do Until Len(strFileName) = 0 DoCmd.TransferSpreadsheet _ TransferType:=acImport _ , SpreadSheetType:=acSpreadsheetTypeExcel97 _ , TableName:="インポート用テーブル", FileName:=strPathName & strFileName, HasFieldNames:=True strFileName = Dir() Loop End Sub

ネットで検索し試行錯誤したのですが、
初心者レベルのために理解できずにおります。

ご教授いただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryosuke2001

2019/08/15 03:26

大変失礼しました。 フォームにボタンを用意して、以下のように何度か ビルドを作成してみたのですが、上手く機能できずにいました。 Private Sub コマンド0_Click() Dim FSO As Object Dim FOL As Object Dim FIL As Object Const FileName As String = "*.xlsx" Const TableName As String = "貼付用" Set FSO = CreateObject("Scripting.FileSystemObject") Set FOL = FSO.GetFolder("フォルダ") For Each FIL In FOL.Files If FIL.Name Like FileName Then DoCmd.TransferText acImportDelim, "*.xlsx", TableName, FIL.Path, True End If Next End Sub
gentaro

2019/08/15 03:28

質問文は編集できますので、ここのコメントではなく本文を編集してください。(コメント見てない人もいるだろうから) また、質問内容は明確に「どこをどういうつもりで作成したがどのようにうまくいかない」のか伝わるように書いてみましょう。(以下のガイドラインを読んでみてください) https://teratail.com/help/question-tips
ryosuke2001

2019/08/15 03:31

はじめての利用で失礼あったこと謝罪いたします。すいません。 一度削除リクエストして再投稿いたします。
hatena19

2019/08/15 06:11

削除しなくても、質問内容は編集できますので、編集すればいいかと思います。 最初は誰でも分からないのだから、謝罪しなくてもいいですよ。 指摘にそって質問内容を修正すればいいだけです。
ryosuke2001

2019/08/15 07:14 編集

削除もリクエストなんですね。利用にあたっての注意を投稿時読み進めましたが、認識無かったです。 質問の内容修正致しました。また、一括取り込みは機能したのでコードを修正致しました。
guest

回答1

0

ベストアンサー

TransferSpreadsheet の第6引数(Range引数)でセル範囲を指定できます。シート名を指定するときは、"シート名!" というように!を付けます。

vba

1DoCmd.TransferSpreadsheet _ 2 TransferType:=acImport, _ 3 SpreadSheetType:=acSpreadsheetTypeExcel97, _ 4 TableName:="インポート用テーブル", _ 5 FileName:=strPathName & strFileName, _ 6 HasFieldNames:=True, 7 Range:="シート名!"

DoCmd.TransferSpreadsheet でインポートする Excel のシート名を指定したい [Access]

投稿2019/08/15 07:31

hatena19

総合スコア33620

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryosuke2001

2019/08/15 08:00

ありがとうございます!助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問