Связать лист Excel с таблицей в MS Access - Использование VBScript - PullRequest
1 голос
/ 23 августа 2010

Я пытаюсь создать связанную таблицу в MS Access, связанную с таблицей Excel. Я хочу сделать это через VBscripting.

Мой сценарий: у меня будет лист Excel, который будет обновляться очень часто. Но мой скрипт выбирает значения из таблицы в MSAccess, которая должна быть точной копией листа Excel (Связанная таблица).

Так что я хочу знать, есть ли какой-нибудь код в VBscript, в котором я могу создать связанную таблицу с таблицей Excel.

1 Ответ

1 голос
/ 23 августа 2010

Вот пример сценария.

   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

...