AccessでExcelシートをリンク


1.手動で実行


Access2003以前とAccess2007では手順が違うので注意。

【Access2003】


ファイル外部データの取り込みテーブルのリンク

ファイルの種類でMicrosoft Excel(*.xls)を選択する。

【Access2007】


1.外部データExcel
2.Excelファイルを指定し、リンクテーブルを作成してソースデータにリンクするを選択して「OK
3.あとは、ウィザードの指示に従う。

2.VBAでコード組む場合


すでにExcelシートがリンクされているかどうかの存在チェックをTable_chk()でチェックし、存在すれば、リンク情報を更新し、なければ新たにリンク接続を作成する。

Accessバージョン:2003

【VBAコード例】
Sub sdb_xls_link()
 Dim MyDb As Database
 Dim ExcelSheet As TableDef
 Dim xlsfile As String

 Set MyDb = CurrentDb

 xlsfile = GetFileName ←「ファイルを開く」ダイアログで指定(Accessで「ファイルを開く」ダイアログを使用を参照)

 If xlsfile = "" Then
  Exit Sub
 End If

 If Table_chk("Excelシート名") = False Then ←存在チェックをする
  Set ExcelSheet = MyDb.CreateTableDef("Excelシート名")
  ExcelSheet.SourceTableName = "Excelシート名$"
  ExcelSheet.Connect = "Excel 5.0;HDR=NO;IMEX=2;DATABASE=" & xlsfile & ";TABLE=Excelシート名$"
  MyDb.TableDefs.Append ExcelSheet
 Else
  Set ExcelSheet = MyDb.TableDefs("Excelシート名")
  ExcelSheet.Connect = "Excel 5.0;HDR=NO;IMEX=2;DATABASE=" & xlsfile & ";TABLE=Excelシート名$"
  ExcelSheet.RefreshLink
 End If

 Set ExcelSheet= Nothing
 MyDb.Close
 Set MyDb = Nothing
End Sub

Function Table_chk(strTable As String) As Boolean
 Dim tdf As TableDef

 Table_chk = False
 For Each tdf In CurrentDb.TableDefs
  If strTable = tdf.name Then
   Table_chk = True
   Exit For
  End If
 Next
End Function

お名前
コメント
最終更新:2008年03月11日 01:25
添付ファイル