1
我想在鏈接到Excel表格的MS Access中創建一個鏈接表格。我想通過VB腳本來做到這一點。將Excel表格鏈接到MS Access中的表格 - 使用VBScript
我的情景是我將有一個Excel表格,將經常更新。但是我的腳本從MSAccess中的表中獲取值,該值應該是Excel工作表(鏈接表)的副本。
所以我想知道是否有VBscript中的任何代碼,其中我可以創建一個鏈接表到Excel工作表。
我想在鏈接到Excel表格的MS Access中創建一個鏈接表格。我想通過VB腳本來做到這一點。將Excel表格鏈接到MS Access中的表格 - 使用VBScript
我的情景是我將有一個Excel表格,將經常更新。但是我的腳本從MSAccess中的表中獲取值,該值應該是Excel工作表(鏈接表)的副本。
所以我想知道是否有VBscript中的任何代碼,其中我可以創建一個鏈接表到Excel工作表。
以下是一些示例腳本。
Dim cn ''As ADODB.Connection
Dim ct ''As ADOX.Catalog
Dim tbl ''As ADOX.Table
Dim strLinkXL ''As String
Dim strMDB ''As String
strLinkXL = "C:\Docs\LTD.xls"
strMDB = "C:\Docs\LTD.mdb"
''Create Link...
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strMDB & ";" & _
"Persist Security Info=False"
Set ct = CreateObject("ADOX.Catalog")
Set ct.ActiveConnection = cn
Set tbl = CreateObject("ADOX.Table")
Set tbl.ParentCatalog = ct
''Link Excel using named range
Set tbl = CreateObject("ADOX.Table")
Set tbl.ParentCatalog = ct
With tbl
.Name = "LinkTableXLRange"
.properties("Jet OLEDB:Link Provider String") = "Excel 8.0;DATABASE=" _
& strLinkXL & ";HDR=Yes"
''The named range
.properties("Jet OLEDB:Remote Table Name") = "Data_Range"
.properties("Jet OLEDB:Create Link") = True
End With
''Append the table to the tables collection
ct.Tables.Append tbl
Set tbl = Nothing
''Link Excel by sheet name
Set tbl = CreateObject("ADOX.Table")
Set tbl.ParentCatalog = ct
With tbl
.Name = "LinkTableXLSheet"
.properties("Jet OLEDB:Link Provider String") = "Excel 8.0;DATABASE=" _
& strLinkXL & ";HDR=Yes"
''Note the use of $, it is necessary
.properties("Jet OLEDB:Remote Table Name") = "Sheet2$"
.properties("Jet OLEDB:Create Link") = True
End With
''Append the table to the tables collection
ct.Tables.Append tbl
Set tbl = Nothing
來源:http://wiki.lessthandot.com/index.php/Linking_Tables_via_Jet_and_ADO
這聽起來有點怪。如果Excel已經鏈接,新值將顯示出來。該表格只需要鏈接一次即可。你用這種方法試圖克服的問題是什麼? – Fionnuala 2010-08-23 13:38:41