Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : 指定なし)
テーブルのコピー
投稿日時: 19/03/04 13:04:01
投稿者: chokobanana

AccessのテーブルをExcelにコピーするとカラム名が除外されます。
 
カラム名も一緒にコピーする方法がありましたら教えて頂けないでしょうか。
 
 
それとAccessのSQLについて相談したい場合はこちらで大丈夫でしょうか。
それともAccess(VBA)?
プログラミング?になるのでしょうか??
 

回答
投稿日時: 19/03/04 13:43:32
投稿者: Suzu

どんな方法でコピーしているのでしょうか。
 
データシートビューで全体を指定しているのではないのですか?
 
【AccessのデータをExcelに貼り付ける手軽な方法】
https://tsukaeru-excel.com/access-to-excel
の、『シート全体をコピー』 の手法です。
 
 
SQLはこちらで大丈夫ですよ。

投稿日時: 19/03/04 15:24:12
投稿者: chokobanana

Excelマクロでレコードコピーをしております。
 
今はレコードセットの取得CopyFromRecordsetとしておりますが
シート全体のコピーだとどのようにしたらよろしいのでしょうか?
 
 
>SQLはこちらで大丈夫ですよ。
 
ありがとうございます。
ご相談したいことがあるのですが、投稿内容と変わってきてしまうので
新しく質問いたします。

回答
投稿日時: 19/03/04 15:31:18
投稿者: sk

引用:
AccessのテーブルをExcelにコピーするとカラム名が除外されます

Excel VBA 掲示板より:
https://www.moug.net/faq/viewtopic.php?t=78003
 
引用:
諸事情によりExcelからAccessへの連携をすることになりました。

引用:
adoRs.Open strSQL, adoCn
Worksheets(1).Range("A1").CopyFromRecordset adoRs

CopyFromRecordset メソッドによって
出力されるのはデータ行だけです。
 
例えば 1 つめのワークシートの 1 行目の各列に adoRs の
全てのフィールドの名前を出力するループ処理を実行してから、
A2 セルの CopyFromRecordset メソッドを実行するという
フローに書き換えることになるはず。

投稿日時: 19/03/04 16:09:53
投稿者: chokobanana

ありがとうございます。
 
調べてやってみます。

回答
投稿日時: 19/03/04 16:33:43
投稿者: sk

即効テクニック より:
https://www.moug.net/tech/exvba/0150068.html
 
CopyFromRecordset メソッドを使用される場合は
上記記事の 1 つめのサンプルをご参考にどうぞ。

投稿日時: 19/03/04 16:34:53
投稿者: chokobanana

今日はAccessがないので試しておりませんがこのようなかんじで大丈夫でしょうか?
 
Dim myR As New ADODB.Recordset
 
For i = 1 To myR.Fields.Count
  Cells(1, i) = myR.Fields(i - 1).Name
Next

回答
投稿日時: 19/03/04 16:48:33
投稿者: sk

引用:
For i = 1 To myR.Fields.Count
  Cells(1, i) = myR.Fields(i - 1).Name
Next

概ね合ってます。
 
引用:
adoRs.Open strSQL, adoCn
Worksheets(1).Range("A1").CopyFromRecordset adoRs

前のスレッドに掲載されていた上記のコードに
手を加えるのであれば、次のように修正なされば
よいでしょう。
 
------------------------------------------------------------
adoRs.Open strSQL, adoCn
Dim i As Integer
With Worksheets(1)
    .Cells.ClearContents
    For i = 1 To adoRs.Fields.Count
        .Cells(1, i).Value = adoRs.Fields(i - 1).Name
    Next
    .Cells(2, 1).CopyFromRecordset adoRs
End With
------------------------------------------------------------

投稿日時: 19/03/04 16:59:38
投稿者: chokobanana

skさん 勉強になります。
 
明日試してみようと思います。
 
修正コードまでご提示いただきまして感謝申し上げます。

投稿日時: 19/03/05 12:54:15
投稿者: chokobanana

皆様ありがとうございました。
 
希望どおりに実行することができました。
 
教えて頂いたサイトにて引き続き勉強したいと思います。