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

Форум: MS ACCESS

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

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

 
 

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

вид форума:
Линейный форум Структурный форум

тема: Заполнить excel-шаблон
 
 автор: час   (13.09.2007 в 20:05)   личное сообщение
 
 

Есть уменя шаблон болванка на листе ехеля
там заголовки стлбцов оглавления....
как бы мнетуда начиная с А5 например вставить данные из таблицы в базе access.
я тут вот нашёл совет, но в нём создаётся новый лист, а как с уже имеющимся листом и книгой работать?

Private Sub wefwefwewef() 
Dim RecSet As DAO.Recordset 
Dim xlApp As Object 
Dim xlBook As Object 

Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Add 

Set RecSet = CurrentDb.OpenRecordset("tab_proba", dbOpenSnapshot) 

xlApp.Visible = True 

xlBook.Worksheets(1).Range("A4").CopyFromRecordset RecSet 

RecSet.Close 
Set RecSet = Nothing 
End Sub


подскажите...

  Ответить  
 
 автор: Ирча   (14.09.2007 в 07:38)   личное сообщение
 
 

Создание файла на основе шаблона
Set xlBook = xlApp.Workbooks.Add ("МояПапка:\МойШаблон.xlt")

  Ответить  
 
 автор: час   (14.09.2007 в 13:32)   личное сообщение
 
 

спасибо, буду пробовать

  Ответить  
 
 автор: час   (17.09.2007 в 11:03)   личное сообщение
 
 

Всё работает

  Ответить  
 
 автор: час   (17.09.2007 в 11:07)   личное сообщение
 
 

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

  Ответить  
 
 автор: ДрЮня   (17.09.2007 в 11:11)   личное сообщение
 
 

а как же:

xlBook.ActiveWorkbook.SaveAs имя_файла

  Ответить  
 
 автор: час   (17.09.2007 в 11:30)   личное сообщение
 
 

Чудесно.
Есть ещё проблемка.
Печатаю данные из запроса а нумерацию строк провести бы...

  Ответить  
 
 автор: ДрЮня   (17.09.2007 в 12:01)   личное сообщение
 
 

если печать в цикле, то можно ввести переменную и инкрементировать ее

  Ответить  
 
 автор: Анатолий (Киев)   (17.09.2007 в 13:33)   личное сообщение
 
 


With xlBook.Worksheets(1).Range("B4")
 .CopyFromRecordset RecSet  
'Пишем 1 в А4
 .Offset(, -1).Formula = "1"                                                                          
'Пишем "=А4+1" в А5  
 .Offset(1, -1).FormulaR1C1 = "=R[-1]C+1"                                            
'Копируем А5 в А6:Аx, где х - число записей в источнике минус 2. 
 .Offset(1, -1).Copy .Offset(2, -1).Resize(RecSet.RecordCount - 2)  
End With

  Ответить  
 
 автор: Ирча   (17.09.2007 в 14:16)   личное сообщение
 
 

а еще можно пронумировать записи прямо в запросе:
Q7: Как сымитировать счетчик в обычном запросе либо ленточной форме?
A1:
SELECT (Select Sum(1) From t AS p Where p.f<=p1.f), p1.f
FROM t AS p1
ORDER BY p1.f;
A2:
SELECT DCount("f", "t","f<=" & CStr(f)), f
FROM t
ORDER BY f;
Примечание 1. Поле f обязано быть уникальным.
Примечание 2. Способ 1 быстрее работает, но является необновляемым.
Примечание 3. Аналогичный вопрос в другом разделе FAQ: http://www.sql.ru/faq/faq_topic.aspx?fid=126

  Ответить  
 
 автор: час   (17.09.2007 в 14:26)   личное сообщение
 
 

огромное спасибо
буду пробовать

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