
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.11.2010, 12:23
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
Доброго времени суток ребята. В макросе работает запрос, который берет данные из таблицы(с одной таблицы) с Оракла. проблема такая: когда запускаю макрос, первые 3 строки быстро заполняются, но потом заполняется очень медленно, как черепаха ... где-то больше 3 часов, не дожидаясь конца остановил его. этот же запрос запускаю через PL/SQL, выполняется в течении 13-15 мин. в чем дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 13:20
|
|||
|---|---|---|---|
Макрос работает медленно в Excel |
|||
|
#18+
Подозреваю, что те, кто может помочь, хоте ли бы видеть код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 14:48
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
Извините, вот код: Sub Connect() Dim con As ADODB.Connection: Set con = New ADODB.Connection con.Open "Provider=MSDAORA.1;Password=ro; User ID=ro;Data Source=tttdb; Persist Security Info=True" Dim b As Integer 'столбцы For b = 8 To 50 'По столбцам Dim a As Integer 'строки For a = 5 To 100 'По строкам Dim rs As ADODB.Recordset: Set rs = New ADODB.Recordset Set rs.ActiveConnection = con Sql = " select" Sql = Sql & " count(s.sub_id)" Sql = Sql & " from" Sql = Sql & " serv_his s" Sql = Sql & " where s.start_date >= TO_DATE( '" + Cells(1, 1).Text + " 0:00:00', 'dd.mm.yyyy hh24:mi:ss')" Sql = Sql & " and s.start_date <= TO_DATE( '" + Cells(1, 2).Text + " 23:59:59', 'dd.mm.yyyy hh24:mi:ss')" Sql = Sql & " and s.user like '" + Cells(2, b).Text + "'" Sql = Sql & " and s.s_id = '" + Cells(a, 2).Text + "'" Sql = Sql & " and s.t_id = 4" rs.Open Sql, con Cells(a, b).Value = "" Cells(a, b).CopyFromRecordset rs Next a Next b rs.Close End Sub думаю что проблема в самой таблице... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:15
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
FIRUZ, вызов запроса на каждую клетку (а,в) --впечатляет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:34
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
ПЕНСИОНЕРКА, and s.user like '" + Cells(2, b).Text + "'"юзер по фамилии в строке 2, звездочки нет -значит на равенство. хотя скорей нехватает звездочки,,,начиная с 8-50 and s.s_id = '" + Cells(a, 2).Text + "'"по номеру в символьном виде в столбце 1 начиная с 5-100, хотя видимо вид должен быть числовым . вряд ли это строка в базе данных или что-то недосмотрела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:35
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
Дело в том что запрос по столбцам идет, сперва 1 столбец потом 2-й и тд. Sql = Sql & " and s.user like '" + Cells(2, b).Text + "'" с других таблиц этот же запрос с макросом нормально работает, но вот с этой таблицой Sql = Sql & " serv_his s" никак не хочет, может быть проблема в самой таблице... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:40
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
FIRUZ, да не заметила сразу -считается количество -но отсутствует и сортировка и группировка в запросе хотя видимо это следствие запроса на каждую ячейку(42*95=4100 запросов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:41
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
ах да, это Sql = Sql & " and s.s_id = '" + Cells(a, 2).Text + "'" я сам проставляю, оно числовое. да, для каждого юзера должен заполнится столбец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2010, 15:48
|
|||
|---|---|---|---|
|
|||
Макрос работает медленно в Excel |
|||
|
#18+
FIRUZ, итого здесь должен быть -один перекрестный запрос по фамилиям строки 2 -переносимый по строкам в таблицу кстати: номера строк 5-100 имеют значение или это просто порядковый номер (может в столбце 2 --наименование работы) обязательно формировать строку 42 или 98, если их нет в базе данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=61&mobile=1&tid=2177418]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 529ms |

| 0 / 0 |
