|
Почему не выгружаются данные во второй лист с 1-го раза
|
|||
---|---|---|---|
#18+
Приветствую, уважаемые форумчане! Требуется наводка, уже голову сломал)) Есть MSA 2003 mdb-база, есть готовый шаблон экселя (на самом деле их уже много, они выгружаются как положено). Есть некий шаблон с двумя листами: "манифест" и "акт". Требуется выгружать разные данные из таблицы Выгрузка в таблицы ManifTBL и AktTBL, затем из этих таблиц и неких запросов выгружаем в эксель-шаблон, который уже находится в базе акцесса. Проблема: - Первый раз при выгрузке (нажатии кнопки экспорта) выгружаются данные только в лист "манифест". Лист "акт" остается активным, и выделен диапазон B10 (- срабатывает код xlApp.Sheets("акт").Range("B10").Activate - ). - Новые пустые строки в шаблон не вставляются ( - не работает For j = 0 To rs4.RecordCount - 3 xlApp.Selection.Insert Shift:=xlDown Next j -). - Рекордсет не вставляется ( - не работает xlApp.Sheets("акт").Range("rangeVstavka").CopyFromRecordset rs4 - ). - Остальные значения в ячейки с листа "акт" вставляются. !!! Если не закрывать эту книгу и еще раз нажать кнопку Выгрузки в эксель - заполняется и лист "акт" !!! Вопрос: где ошибка и почему такое происходит??? Примерный код (изменил несущественно): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2016, 22:32 |
|
Почему не выгружаются данные во второй лист с 1-го раза
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
ИМХО, здесь вы получаете Recordset типа ForwardOnly, а он не знает, сколько у него записей. Вообще, какая-то странная конструкция. Впервые вижу в подобном случае применение adCmdTable. Recordset правильного типа открывается иначе. Для получения правильного RecordCount нужно выполнить MoveLast, MoveFirst. Есть замечания к методам работы с Excel. Все эти .Select, .Selection, .Activate - архитектурные излишества и часто являются причиной не закрытия процесса Excel в памяти. Работать нужно с объектом Range. Да и переменную xlSheet вы объявили, а не используете Например, вставить сразу все строки: Код: vbnet 1. 2. 3. 4.
И еще. Вы создаете 4 соединения к одной и той же БД. В реалии они разные? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 10:19 |
|
Почему не выгружаются данные во второй лист с 1-го раза
|
|||
---|---|---|---|
#18+
По-моему вместо медленной построчной вставки Код: vbnet 1. 2. 3.
гораздо эффективнее использовать копирование-вставку формата Код: vbnet 1. 2. 3. 4. 5.
А вместо глючного Select использовать для пиозиционирования использовать GoTo Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 14:50 |
|
Почему не выгружаются данные во второй лист с 1-го раза
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ) Работать нужно с объектом Range. Да и переменную xlSheet вы объявили, а не используете И еще. Вы создаете 4 соединения к одной и той же БД. В реалии они разные? xlSheet объявлена глобально (все по экселю глобально). xlSheet используется, просто в данной функции почему-то не срабатывало, я искал варианты. Соединения идут к одной БД, просто таблицы или запросы разные. Сделано "топорно", согласен. Я делал так потому что есть своего рода промежуточные таблицы, в которых надо подсчитывать и что-то изменять (видно в коде 2 запроса на обновление выполняются для таблицы и соотв. листа Акт). Насчет остальных поправок, я вечером попробую и отпишусь о результатах. Спасибо Вам за помощь и наводки! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 15:56 |
|
|
start [/forum/search_topic.php?author=lubushyn&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 437ms |
total: | 584ms |
0 / 0 |