2015-09-18 4 views
0

Как получить MS Access для перезаписи внешней книги Excel с помощью макроса VBA?Доступ к VBA - Relink external excel workbook

я могу это сделать с помощью менеджера присоединенной таблицы, но я хотел бы сделать это с помощью VBA, так что я мог бы создать кнопку для пользователей, чтобы нажать, чтобы найти новую книгу

  1. Выберите новую книгу
  2. Перередактируйте внешних книги Excel

DoCmd.transferSpreadsheet aclink,,"Sales", "C:\Sales.xlsb", true, "Sales!E2:BC200" 

ответ

0

Я использую следующий код, чтобы воссоединиться на связанную вкладку ле.

Public Function FixTableLink() 

Dim db As Database 
Dim strPath As String 
Dim strConnect As String 

strPath = CurrentProject.Path 
strPath = strPath & "\DatabaseName.extention" 

strConnect = ";DATABASE=" & strPath 

Set db = CurrentDb 

For Each tbl In db.TableDefs 

    If Nz(DLookup("Type", "MSysObjects", "Name = '" & tbl.name & "'"), 0) = 6 And tbl.Connect <> strConnect Then 

     tbl.Connect = strConnect 
     tbl.RefreshLink 

    End If 

Next tbl 

End Function 

Изменить strPath на пути к вашей серверной

Вы можете использовать следующий код, чтобы открыть диалоговое окно для поиска пути к файлу

Function SelectFile() As String 

     On Error GoTo ExitSelectFile 

     Dim objFileDialog As Object 
     Set objFileDialog = Application.FileDialog(1) 

     With objFileDialog 

      .AllowMultiSelect = False 
      .Show 

      Dim varSelectedItem As Variant 

      For Each varSelectedItem In .SelectedItems 

       SelectFile = varSelectedItem 

      Next varSelectedItem 

     End With 

    ExitSelectFile: 

    Set objFileDialog = Nothing 

End Function 

'File type filters can be added to the filedialog property using the following syntax: 

    '.Filters.Clear 
    '.Filters.Add "File Type Description", "*.file extension" 

''Start folder can be specified using: 
'.initialfilename="folder path" 

Тогда в первом блоке кода вы можно использовать

strPath = SelectFile

0

Что-то вроде этого, Perhap s.

Dim InputFile As String 
Dim InputPath As String 

InputPath = "C:\ExcelPath\" 
InputFile = Dir(InputPath & "*.xls") 

Do While InputFile <> "" 

    DoCmd.TransferSpreadsheet acLink, , "Your table name","Path to your workbook file", True, "Sheet1!RangeYouNeed" 
    InputFile = Dir 
Loop 
Смежные вопросы