エクセルの4行目をアクセスのテーブルリンクの先頭行にする方法とは?

このQ&Aのポイント
  • エクセルのデータをアクセスにテーブルリンクする際、エクセルの先頭行が4行目から始まっている場合、先頭行をアクセスのテーブルリンクのフィールド名として使用するためには、以下の方法があります。
  • まず、エクセルのA1の文字を消去します。この操作により、自動的に4行目がアクセスのテーブルリンクの先頭行になります。
  • ただし、エクセルのフォーマットが固定されている場合、A1の文字を消去することはできません。その場合は、ワークシートリンクウィザードで「先頭行をフィールド名として使う」にチェックを入れることができません。この場合は、別の方法を検討する必要があります。
回答を見る
  • ベストアンサー

テーブルリンク エクセルの4行目を先頭行にしたい

エクセルのデータをアクセスにテーブルリンクしたいのですが エクセルの先頭行が4行目から始まります。 なおかつA1に文字が入ります。 (画像参照) このエクセルデータをアクセスの 「テーブルのリンク」→ファイルを選ぶ →ワークシートリンクウィザードが表示され、次のページに進み、 「先頭行をフィールド名として使う」にチェックを入れたいのですが、先頭行は4行目です。 この場合、どうすればエクセルの4行目を アクセスのテーブルリンクの先頭行にできるのでしょうか? エクセルのA1の文字を消去すれば自動的に4行目がアクセスで先頭行になりますが エクセルの方は決まったフォーマットなのでA1の文字を消去することはできません。 ご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

#1です Excel ファイル側に手を入れられるのなら、#2さんの方がお勧めです。 なお、範囲名部分が行方向に増えるのなら、(Excel側で範囲を再設定) 何もせずに Access 側から変更を含めて値を得ることが出来るようですが、 列方向に範囲が広がった場合、 リンクの更新(RefreshLink)が必要みたいです。 嘘を言ってるかも知れないので、裏取りはしっかりとしてください。

gbrfwqweq
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

当方、Access2007、Excel2007 ですが。 項目名を含む、インポートするデータ範囲に 「範囲名」 を付けておきます。 Access でインポートするときに  ・ワークシート  ・名前の付いた範囲 を選択できるところで 「名前の付いた範囲」 を選択します。 表示された 「範囲名」 の一覧からインポートする範囲のものを選択します。 表示されるサンプルデータに項目名が表示されているなら 次の画面で、「先頭行をフィールド名として使う」にチェックをします。 状況によっては、項目名が表示されていなくて、 そのまま、チェックせずに進めても 正しい項目名付きでインポートされる場合もあります。 2003 以前でも、多少の違いがあっても 同様のことができたはずです。 なお Excel が2007 以降なら、 新機能のテーブルと範囲名を組み合わせることで データが増えても、範囲名の範囲が自動的に調整されるようにできます。

gbrfwqweq
質問者

お礼

ありがとうございました。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

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 のバージョン ・エクセルファイルの拡張子 を補足いただければ、追加で回答できるかもしれません。(できないかも)

gbrfwqweq
質問者

お礼

ありがとうございました。

関連するQ&A

  • リンクテーブルについて

    excelのデータをaccessのテーブルに取り込みたいのです。 インポートではなくて、取込みボタンのようなものを作成し、自動的に取り込めるようにしたいのです。 そこでいろいろ聞いたり調べたりすると、「リンクテーブル」という言葉がでてきます。なんとなく意味はわかるのですが、「excelをリンクテーブルに設定する」やり方がわかりません。 教えて下さい。

  • エクセル複数シートをアクセスで1つのテーブルに。

    エクセルのシートで1000行程度のものが5シートあります。それぞれは数字列に文字が入っている行もあってエクセルでの必要データ抽出に手間がかかってしまいます。「エクセル5シートをアクセスでリンクさせクエリで特定文字行を削除し、テーブル構造が整ったところでテーブル作成を行う」までをアクセスで自動化したいと思っています。アクセス側でエクセル5シートを一括して合体させる事は出来ないものでしょうか?宜しくお願い致します。

  • アクセスのテーブルのリンクについて

    エクセルファイルをアクセスでテーブルのリンクをしているのですが テーブルを開き編集するとエクセルファイルが壊れそのファイルは 2度と開けなくなります。 前はちゃんと編集できていたようなのですが、 参照設定の追加とか関係ありそうですか? ちなみに 参照可能なライブラリ ファイル Visual Basic For Applications Microsoft Access 9.0 Objects Library OLE Automation Microsoft ActiveX Data Objects 2.1 Library わからぬまま参考書から最後の1行を追加してからのような気もするのですが WinXPでOffice2000です テキストファイルでは この ISAMではリンクテーブル内のデータを更新する事はは出来ません の警告がでて編集出来ないのは解っていましたが

  • エクセルのセルの先頭行にスペースを入れたい

    エクセルのセル内で複数行にわたり文字を入力しているとき(折り返して全体を表示にチェックがついている)、2行目、3行目の先頭にスペースを入れようとしてもセル内でスペースが空いてくれません。何かよい方法はないでしょうか?

  • Accessのテーブルをリンク

    Accessの初心者です。Accessのテーブルとエクセルをリンクする事はできたのですが、そうすると、Accessのテーブル同士のリレーションシップでができなくなりました。テーブルをリンクさせると参照整合性のリレーションシップは無理ですか?

  • Access2000でExcelからリンクしたテーブルのデータがうまく表示されません

    Excelで作成したあるワークシートをAccessでテーブルとしてリンクしたのですが、 インポートは成功したのですが、Excelで他のシートのフィールドを参照する 式を入力した一部のデータに#Num!エラーが表示されうまく表示されません。 値のみが入力されているNo.とかはうまく表示されるのですが、 計算式が入るとダメなのでしょうか? また、良い解決策はないでしょうか?

  • Access Excelインポート時の制限について

    お世話になります。 Access2010 Win7Pro Excelファイルのデータをインポートし、それをSQLサーバーへ エクスポートするツール(Access)があります。 例えば、Excelに「ID」と「メモ」というフィールドがあり、1500行 あったとします。 また、メモには100文字程度の文字列が入力されています。 それをインポートすると、問題なくメモの100文字はインポートできます。 但し、1000行目のメモに500文字入力されている場合、それを インポートすると255文字に削られてしまいます。 これはインポートするときに、先頭から数行がチェックされて データ型が自動的に決められる為、上記のケースだとテキスト型に なってしまい1000行目のメモは255文字に削られている・・・ ということだと思います(仕様)。 なので、現状はExcelをインポートする前に先頭行のメモを255文字 以上入力した状態でインポートし、SQLサーバーへエクスポート後 テーブルの先頭レコードのメモより不要な文字(追加して入力した分)を 削除しております。 当該ツールを使って、インポート⇒エクスポートするのは日々の作業なので 毎回メモに文字を追加して、あとで削除するというのが手間でなりません。 なにかよい方法はございますでしょうか。

  • Vbaでアクセスからエクセルにリンクテーブルする

    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です。

  • AccessにExcelのデータがリンクできない

    Office2003です。エクセルで作成したデータをアクセスにリンクしています。更新の作業は、エクセルで行っています。アクセスのテーブルを開こうとしたら、「外部テーブルのフォーマットが正しくありません」のエラーメッセージがでました。エクセルで何かしてはいけない事をしてしまったのでしょうか。

  • AccessでリンクされたExcelのフィールドを修正する方法

    こんにちは。 Access初心者です。 Access2000にExcel2000のデータを リンクテーブルとして読み込んでいます。 読み込んだリンクテーブルを使用しクエリを組んでいます。 フィールド名を修正したく、Excelで修正をすると、Accessのクエリがうまく表示されません。 修正したフィールド名が外れてしまいます。 Excelで修正したフィールド名が自動でクエリにも反映できるような方法があったら教えてください。 お願いします。

専門家に質問してみよう