|
|
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Помогите разрешить такую проблему. Необходимо в определенное место в шаблоне Excel (xlt) вставить данные из рекордсета. Можно ли вставить данные из двух разных запросов (рекордсетов), а не только из одного? Код примерно такой: '''''''''''''''' Private Sub Кнопка24_Click() Dim cnnCur As ADODB.Connection Dim rstDetails As ADODB.Recordset Set xlApp = New Excel.Application xlApp.Visible = True strTemplPath = Trim([Forms]![Form1]![edit1]) & "obyem.xlt" Set xlSheet1 = xlBook.Sheets("1(7)") Set rstDetails = New ADODB.Recordset strSQL = "SELECT ВН,СН1,СН2,НН FROM Величины_по_договору" rstDetails.Open strSQL, cnnCur, adOpenStatic, adLockReadOnly With xlSheet1 .Range("the_start7").CopyFromRecordset rstDetails End With rstDetails.Close Set rstDetails = Nothing cnnCur.Close Set cnnCur = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub ''''''''''''''''''''''''''''''''''' Как в этот же самый шаблон вставить данные из другого запроса (напр. такого: strSQL1 = "SELECT spr_sch.TYPE, spr_sch.F_NUM FROM spr_sch") Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 22:14:57 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
AlexanderKR Set xlApp = New Excel.Application xlApp.Visible = True strTemplPath = Trim([Forms]![Form1]![edit1]) & "obyem.xlt" Set xlSheet1 = xlBook.Sheets("1(7)") Очень странный и вряд-ли работающий кусок кода. Уверен что ничего оттуда не вырезал? AlexanderKR With xlSheet1 .Range("the_start7").CopyFromRecordset rstDetails End WithКакой смысл использовать with для одной строки? AlexanderKR Как в этот же самый шаблон вставить данные из другого запроса (напр. такого: strSQL1 = "SELECT spr_sch.TYPE, spr_sch.F_NUM FROM spr_sch")Абсолютно точно так же как из первого: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 23:37:01 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Все-же, я где-то допускаю ошибку. Привожу код целиком. Из двух разных запросов информация должна попадать на разные листы шаблона в Excel`е. Объект Connection создавать для каждого рекордсета, или можно использовать один? В чем моя ошибка? ''''''''''''''''''''''''''''''''''''''''''''''''''' Dim cnnCur As ADODB.Connection Dim rstDetails As ADODB.Recordset Dim rstShip As ADODB.Recordset Dim strSQL As String Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim strTemplPath As String Set xlApp = New Excel.Application xlApp.Visible = True strTemplPath = Trim([Forms]![Form1]![edit1]) & "obyem.xlt" Set xlBook = xlApp.Workbooks.Add(strTemplPath) Set xlSheet = xlBook.Sheets("1(6)") Set xlSheet1 = xlBook.Sheets("1(7)") Set xlSheet2 = xlBook.Sheets("2") Set xlSheet3 = xlBook.Sheets("3") Set xlSheet4 = xlBook.Sheets("4") Set xlSheet5 = xlBook.Sheets("5") Set cnnCur = CurrentProject.Connection Set rstDetails = New ADODB.Recordset strSQL = "SELECT ВН,СН1,СН2,НН FROM Величины_по_договору" dog = DLookup("[договор]", "Величины_по_договору", "[договор]" <> "") the_date_d = DLookup("[date_d]", "Величины_по_договору", "[date_d]" <> "") the_pokupatel = DLookup("[фио]", "predp", "[договор] = Forms![form1]!dogovor ") the_predp = DLookup("[потребитель]", "predp", "[договор] = Forms![form1]!dogovor ") rstDetails.Open strSQL, cnnCur, adOpenStatic, adLockReadOnly On Error Resume Next With xlSheet .Range("the_dogovor").Value = dog .Range("the_date").Value = the_date_d .Range("pokupatel").Value = the_pokupatel End With With xlSheet1 .Range("the_dogovor7").Value = dog .Range("the_date_7").Value = the_date_d .Range("the_man7").Value = the_pokupatel .Range("the_start7").CopyFromRecordset rstDetails End With With xlSheet2 .Range("the_dogovor2").Value = dog .Range("the_date21").Value = the_date_d End With With xlSheet3 .Range("the_dogovor3").Value = dog .Range("the_date3").Value = the_date_d End With With xlSheet4 .Range("the_dogovor4").Value = dog .Range("the_date4").Value = the_date_d .Range("the_man4").Value = the_pokupatel End With rstDetails.Close Set rstDetails = Nothing ' Второй запрос - рекордсет: Set rstDetails1 = New ADODB.Recordset rstDetails1.Open strSQL1, cnnCur1, adOpenStatic, adLockReadOnly strSQL1 = "SELECT spr_sch.MESTO_UST, spr_sch.TYPE, spr_sch.F_NUM FROM spr_sch WHERE spr_sch.KOD = Forms![form1]!dogovor" rstDetails1.Open strSQL1, cnnCur, adOpenStatic, adLockReadOnly On Error Resume Next With xlSheet4 .Range("naim_sch").CopyFromRecordset rstDetails1 End With rstDetails1.Close Set rstDetails1 = Nothing cnnCur.Close Set cnnCur = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 21:27:00 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А поконкретнее, что не пашет? Option Explicit в начале модуля лучше писать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 04:00:08 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Тьфу, предпоследняя строка, единичку не убрал With xlSheet4 .Range("naim_sch").CopyFromRecordset rstDetails End With ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 04:03:45 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Заменил запрос, использую один рекордсет, но вставка в шаблон из второго запроса не происходит, т.е. открывается шаблон, вставляются по порядку все данные, копируется и вставляется в шаблон результат первого запроса, курсор останавливается на именованном диапазоне Range("naim_sch") и - все. Т.е. не выполняется команда: .Range("naim_sch").CopyFromRecordset rstDetails ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2006, 15:34:56 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Как это - останавливается? Отключите On Error Resume Next и скажите, что за ошибку пишет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2006, 13:34:02 |
|
||
|
Вставка данных в шаблон Excel из рекордсета
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку. Оказалось, несоответствие типов данных. Поле spr_sch.KOD в оригинале - текстовое, преобразую его в числовое, и все работает: strSQL1 = "SELECT spr_sch.MESTO_UST, spr_sch.TYPE, spr_sch.F_NUM FROM spr_sch WHERE Cint(spr_sch.KOD) = " & Forms![form1]!dogovor Теперь все вставляется в шаблон нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2006, 16:04:01 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34155364&tid=2183866]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 328ms |

| 0 / 0 |
