Vbaでアクセスからエクセルにリンクテーブルするには?
エクセルの情報:
C:\Users\Desktop¥新規 Microsoft Excel ワークシート.xlsx
シート1の情報:
フィールド1 フィールド2
あああ aaa
いい iii
ううう uuu
なのですが、
アクセスからVBAでリンクするにはどうすれば良いでしょう?
手作業なら
外部データ→エクセル→外部データの取り込み→リンクテーブルを作成してソースデータにリンクする
でリンクできますが、vbaで行いたいです。
Sub Sample01()
Dim db As DAO.Database, tb As DAO.TableDef
Set db = CurrentDb
Set tb = db.TableDefs("Sheet1")
tb.Connect = ";DATABASE=" & CurrentProject.FullName & ";TABLE=Sheet1"
tb.RefreshLink ' リンク情報の更新
End Sub
このコードは意味が違いますよね
エクセルのパスとシート名を指定してリンクする方法を教えてください。
最終定期にはシートをループして複数のテーブルを作成したいのです。
リンクが無理ならインポートでもOKです。
No.2ベストアンサー
- 回答日時:
手作業でExcelへのリンクテーブルを作って
テーブルをデザインビューで開いてプロパティの「説明」を覗いてみた。
Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=D:\DB\SampleData\Small.xlsx;TABLE=Sheet1$
これをConnect に渡せば良いらしい。
IMEX ?
ACCDB ?
分からないのでGoogleと
こちらでも素晴らしい回答をされているkikuさんの
http://kikutips.blog13.fc2.com/blog-entry-107.html
を発見。
http://www.f3.dion.ne.jp/~element/msaccess/AcTip …
こちらではIMEXに関わる説明がされています。
docmd.TransferSpreadsheet acLink ,acSpreadsheetTypeEx・・後略でシートの一部分だけだと
(VBAのヘルプで↑を調べてください)
Excel 12.0 Xml;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=D:\DB\SampleData\Small.xlsx;TABLE=sheet2$B5:D16
とかになりました。
直接、接続情報を指定するもよし、docmd.TransferSpreadsheet・・・でもお好きな方で。
今日はとても賢くなった。寝たら忘れるかも。。。
リンク先見ました
いろんなパターンが書かれていてすごく参考になりました。
nicotinism様の回答はいつも参考にしています。
とても賢い方だと思っていて尊敬しています。
No.1
- 回答日時:
試しにやってみました
Access2010で、カレントデータベース(mdb形式)にxls形式のファイルに対してリンクテーブルを作成しました。
excel 8.0のところは、試みに他のバージョン番号(xl2003なら11.0とか)を入れるとエラーになりました。
また、accdb形式のデータベースにxlsx/xlsm形式のワークシートをリンクさせるには、excel 12.0に変更する必要がありました。(mdbへの、xlsx/xlsmのリンクは拒絶されました。)
なお、リンクテーブル作成に成功しても、一旦データベースウィンドウを消して再表示させないと、反映されない事がありました。
以上、ご参考まで。(デスクトップのパス取得はテストの都合でつけてあります、あしからず)
Sub test()
Dim DB As Database
Dim rst As Recordset
Dim tblExcel As TableDef
Set DB = CurrentDb
Set tblExcel = DB.CreateTableDef("linked excel worksheet")
tblExcel.Connect = "excel 8.0;" & "database=" & GetDesktopPath & "\" & "hoge..xls"
tblExcel.SourceTableName = "Sheet1$"
DB.TableDefs.Append tblExcel
DB.Close
Set rst = Nothing
Set tblExcel = Nothing
Set DB = Nothing
End Sub
Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function
参考URL:http://www.moug.net/tech/acvba/0090012.html
すごい!できました!
ご回答ありがとうございました。
しかも自動的に1行目はフィールドになってくれるようですね。
DAOを使うのですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
テーブルリンク エクセルの4行目を先頭行にしたい
Access(アクセス)
-
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
エクセルからアクセスにインポートする際のエラーについて
Access(アクセス)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
9
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
10
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
11
Access エクセルシート名変更
その他(プログラミング・Web制作)
-
12
Access VBAからExcelシートの削除
Excel(エクセル)
-
13
「#エラー」の回避
Access(アクセス)
-
14
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
15
Accessのリンク先を相対パスにしたい
その他(データベース)
-
16
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
17
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
18
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
19
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
20
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vbaでアクセスからエクセルにリ...
-
Excel 2019 のピボットテーブル...
-
BIOSでAHCIに設定したいが、項...
-
項目名の制限について
-
アクセス メモ型 255文字...
-
2つのテーブルを比較して一致し...
-
ACCESSで和暦を西暦に・・・
-
Accessでテーブル名やクエリ名...
-
access2000:フォームで入力し...
-
「直需」の意味を教えてください
-
accessのマクロでODBC接続で外...
-
Accessの追加クエリで既存のテ...
-
access テーブル内のレコード...
-
【至急】Accessのフィールドの...
-
変数が選択リストにありません
-
sqlplusで日本語入力
-
【Access】フォームで自動計算...
-
アクセスで営業日を計算させる...
-
個人用のTeamsアプリは背景を変...
-
エクセル内のURLからHPのタイト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vbaでアクセスからエクセルにリ...
-
Accessにてリンクテーブルの削...
-
エクセルからアクセスのテーブ...
-
アクセス⇔エクセル データの移動
-
accessのセキュリティ
-
Acess97、インポートについて・...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
テーブルの存在チェックについて
-
INSERT INTO ステートメントに...
-
Accessのクエリでデータの入力...
-
importについて
-
FROM の中で CASE を使えるでし...
-
Accessでテーブルの値をテキス...
-
セルの右クリックで出る項目を...
-
ACCESSのクエリで集計で、先頭...
おすすめ情報