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