Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: неубиваемый Excel
 
 автор: Bellerofont   (09.04.2011 в 23:19)   личное сообщение
 
   to: dmsrv803   (08.04.2011 в 10:02)
 

Да, подобное приводит к тому, что Excel не выгружается.
А я не заметил этот момент, проссматривая ваш код...

  Ответить  
 
 автор: dmsrv803   (08.04.2011 в 10:02)   личное сообщение
 
   to: dmsrv803   (07.04.2011 в 16:42)
 

Нашел ошибку -Destination:=Range("A2") а надо Destination:=tgWsheet!Range("A2"))

  Ответить  
 
 автор: dmsrv803   (07.04.2011 в 16:42)   личное сообщение
 
   to: Анатолий (Киев)   (07.04.2011 в 15:58)
 


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


Мне кажется, что все дело в запросе, который выводит данные в Excel. Если его не использовать то проблем не возникает.

  Ответить  
 
 автор: Анатолий (Киев)   (07.04.2011 в 15:58)   личное сообщение
 
   to: dmsrv803   (07.04.2011 в 13:35)
 

Лучше покажите весь код.
Попробуйте выполнять процедуру не полностью. Сначала кусок, который вы показали, затем добавить кусок кода. Ищите, после каких действий остается процесс.

  Ответить  
 
 автор: Дядя Федор   (07.04.2011 в 15:20)   личное сообщение
 
   to: dmsrv803   (07.04.2011 в 14:39)
 

Создать заполнить закрыть убить открыть шеллом.

  Ответить  
 
 автор: dmsrv803   (07.04.2011 в 14:39)   личное сообщение
 
   to: ДрЮня   (07.04.2011 в 14:18)
 

опять - если я закрою документ то я не увижу его на экране, а пользователю нужно с ним работать дальше и сохранить его по завершению работы при необходимости или отказаться от сохранения.

  Ответить  
 
 автор: ДрЮня   (07.04.2011 в 14:18)   личное сообщение
 
   to: dmsrv803   (07.04.2011 в 14:14)
 

нужно закрыть документ, который Вы создаете после создания экземпляра экселя

  Ответить  
 
 автор: dmsrv803   (07.04.2011 в 14:14)   личное сообщение
 
   to: shanemac51   (07.04.2011 в 14:03)
 

exclApp.quit - закроет Excel а он мне нужен открытый. Я его потом руками закрою.

  Ответить  
 
 автор: shanemac51   (07.04.2011 в 14:03)   личное сообщение
 
   to: dmsrv803   (07.04.2011 в 13:35)
 

не вижу строк


exclApp.quit
set exclApp=nothing

  Ответить  
 
 автор: dmsrv803   (07.04.2011 в 13:35)   личное сообщение
 
 

Помогите разобраться с Excel.
С помощью следующего кода

Set exclApp = CreateObject("Excel.Application")
 With exclApp
        .DisplayAlerts = True
        .ScreenUpdating = True
        .EnableEvents = False
        .AutomationSecurity = msoAutomationSecurityLow
        .Visible = True
        и т.д............

создаю com-объект связанный с Excel. Затем с помощью запроса выгружаю в Excel данные.
И уничтожаю com-объект. У меня на экране остается открытый Excel. Но после того, как я его закрываю, он все равно остается в памяти и мне его приходится закрывать с помощью диспетчера задач.
Как с этим бороться?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList