Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: dmsrv803
Private Sub AddMicrosoftQuery(fName As String) Dim tempName As String, strSQL As String, fPath As String Dim sourceWB As Workbook, targetWB As Workbook, tgWsheet As Worksheet, srWsheet As Worksheet fPath = CurrentProject.Path & "\Reports\" tempName = "insurance template.xls" Call CloseExcelApplication Set exclApp = CreateObject("Excel.Application") With exclApp .DisplayAlerts = True .ScreenUpdating = True .EnableEvents = False .AutomationSecurity = msoAutomationSecurityLow Set targetWB = .Workbooks.Add Set sourceWB = .Workbooks.Open(fPath & "Templates\" & tempName, , ReadOnly) Set srWsheet = sourceWB.Worksheets("Ëèñò1") Set tgWsheet = targetWB.Worksheets("Ëèñò1") srWsheet.Cells.Copy (tgWsheet.Cells(1, "A")) sourceWB.Close SaveChanges:=False End With fPath = CurrentProject.Path With tgWsheet.QueryTables.Add(Connection:=Array(Array("ODBC;DSN=Áàçà äàííûõ MS Access;DBQ=" & fPath & "\EU.mdb;DefaultDir=" & fPath & _ ";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeou"), Array("t=5;")), Destination:=Range("A2")) .CommandText = Array("SELECT Nom_Dogovora, Valuta, Clt_Name, Data_Dogovora, Data_Okon_DL, Manager_FIO, " & _ "'Íîìåð øàññè (Ðàìà)', Model, Marka, Òèï, InsuranceCompany, InsuranceNumber, " & _ "DateBegin, DateEnd, Expr1001 " & _ "FROM '" & fPath & "\EU'.InsuranceTempTable InsuranceTempTable") .Name = "Çàïðîñ èç Áàçà äàííûõ MS Access" .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False End With tgWsheet.QueryTables(1).Refresh targetWB.SaveAs (fPath & "\" & GetUniqueFileName(fName, fPath)) exclApp.Visible = True End Sub Private Sub CloseExcelApplication() Dim iiX As Integer, iiY As Integer If exclApp Is Nothing Then Exit Sub With exclApp iiY = .Workbooks.Count For iiX = 1 To iiY .ActiveWorkbook.Close (False) Next .Quit End With End Sub
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.