- ベストアンサー
エクセルの4行目をアクセスのテーブルリンクの先頭行にする方法とは?
- エクセルのデータをアクセスにテーブルリンクする際、エクセルの先頭行が4行目から始まっている場合、先頭行をアクセスのテーブルリンクのフィールド名として使用するためには、以下の方法があります。
- まず、エクセルのA1の文字を消去します。この操作により、自動的に4行目がアクセスのテーブルリンクの先頭行になります。
- ただし、エクセルのフォーマットが固定されている場合、A1の文字を消去することはできません。その場合は、ワークシートリンクウィザードで「先頭行をフィールド名として使う」にチェックを入れることができません。この場合は、別の方法を検討する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です Excel ファイル側に手を入れられるのなら、#2さんの方がお勧めです。 なお、範囲名部分が行方向に増えるのなら、(Excel側で範囲を再設定) 何もせずに Access 側から変更を含めて値を得ることが出来るようですが、 列方向に範囲が広がった場合、 リンクの更新(RefreshLink)が必要みたいです。 嘘を言ってるかも知れないので、裏取りはしっかりとしてください。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
当方、Access2007、Excel2007 ですが。 項目名を含む、インポートするデータ範囲に 「範囲名」 を付けておきます。 Access でインポートするときに ・ワークシート ・名前の付いた範囲 を選択できるところで 「名前の付いた範囲」 を選択します。 表示された 「範囲名」 の一覧からインポートする範囲のものを選択します。 表示されるサンプルデータに項目名が表示されているなら 次の画面で、「先頭行をフィールド名として使う」にチェックをします。 状況によっては、項目名が表示されていなくて、 そのまま、チェックせずに進めても 正しい項目名付きでインポートされる場合もあります。 2003 以前でも、多少の違いがあっても 同様のことができたはずです。 なお Excel が2007 以降なら、 新機能のテーブルと範囲名を組み合わせることで データが増えても、範囲名の範囲が自動的に調整されるようにできます。
お礼
ありがとうございました。
- 30246kiku
- ベストアンサー率73% (370/504)
VBA は大丈夫ですか エクセルファイルの拡張子 xls に対してのものになりますが、 新規 Access ファイルを作成し、動作確認してみてください。 手順) ・新規 Access ファイルを作成します ・標準モジュールに以下を記述します Public Sub Sample() Dim db As DAO.Database Dim tdf As DAO.TableDef Const sCon As String = "Excel 8.0;HDR=YES;IMEX=2;DATABASE=" Const sFile As String = "E:\hoge\ts4.xls" ' ★ ファイルのパス Const sSheet As String = "Sheet1" ' ★ シート名 Const sRange As String = "A4:C56" ' ★ 範囲 Const sTable As String = "T_Tmp" ' ★ Access テーブル名 Set db = CurrentDb On Error Resume Next db.TableDefs.Delete sTable On Error GoTo 0 Set tdf = db.CreateTableDef(sTable) With tdf .Connect = sCon & sFile .SourceTableName = sSheet & "$" & sRange End With db.TableDefs.Append tdf db.TableDefs.Refresh Set tdf = Nothing Set db = Nothing RefreshDatabaseWindow End Sub ・上記★部分4つを変更し、実行してみます ・テーブル名で指定したものが出来上がっていると思うので、開いて内容を確認します 動いた/動かなかった・・・程度で良いので、結果報告をお願いします。 ※ 動かなかった場合、 ・Access のバージョン ・エクセルファイルの拡張子 を補足いただければ、追加で回答できるかもしれません。(できないかも)
お礼
ありがとうございました。
お礼
ありがとうございました。