powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Оптимизация
25 сообщений из 29, страница 1 из 2
Оптимизация
    #39158118
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.
Подскажите пожалуйста как ускорить выполнению данного кода?
Код: 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.
For i = 1 To rs.RecordCount 'цикл по записям рекордсета из excel
 If DCount("[kod_upr]", "[NCI_UPR_1214]", "[NCI_UPR_1214].[kod_upr]='" & rs.Fields(6) & "'") > 0 
 And DCount("[nStrEd]", "[NCI_StrEd_18]", "[NCI_StrEd_18].[nStrEd]=" & rs.Fields(3)) > 0 Then
rs2.AddNew
rs2.Fields("kod_kurator") = rs.Fields("Код Кураторов") '0
rs2.Fields("kod_manager") = rs.Fields("Код Менеджера") '1
rs2.Fields("type_activ") = rs.Fields("Вид деятельности ОД/ИД/Прибыль/Возмещаемые") '2
rs2.Fields("kod_18") = rs.Fields("Код Контрагента (18 справочник)") '3
rs2.Fields("NumDogKurator") = rs.Fields("№ договора от Куратора") '4
rs2.Fields("kod_25") = rs.Fields("№ договора САП (25 справочник)") '5
rs2.Fields("nameUslugi") = rs.Fields("Наименование услуги") '6
rs2.Fields("kod_upr") = rs.Fields("Код управления") '7
rs2.Fields("kod_12") = rs.Fields("Код Центров затрат (12 справочник)") '8
rs2.Fields("kod_52") = rs.Fields("Код Вида услуг (52 справочник)") '9
rs2.Fields("kod_33") = rs.Fields("Код Целевой программы (33 справочник)") '10
rs2.Fields("kod_39") = rs.Fields("Код Месторождения (39 справочник)") '11
rs2.Fields("kod_47") = rs.Fields("Код элементов затрат (47 справочник)") '12
rs2.Fields("kod_13") = rs.Fields("Код прочих доходов и расходов (кроме прочих р-ций,13 справочник)") '13
rs2.Fields("kod_103") = rs.Fields("Код Вида производств (103 справочник)") '14
rs2.Fields("kod_24") = rs.Fields("Код Вида деятельности (24 справочник)") '15
rs2.Fields("kod_AFE") = rs.Fields("Код AFE (справочник АФЕ)") '16
rs2.Fields("recoverable") = rs.Fields("Возмещаемые (если агентский договор прописывать № договора )") '17
rs2.Fields("kod_Cdelka") = rs.Fields("Код типа сделки (справочник сделок)") '18
rs2.Fields("kod_StatBud") = rs.Fields("Код статьи бюджета (справочник Статей бюджета)") '19
rs2.Fields("numberLot") = rs.Fields("Номер лота") '20
rs2.Fields("ZKprotocol") = rs.Fields("Протокол ЗК") '21
rs2.Fields("kod_edizm") = rs.Fields("Единица измерения") '22
rs2.Fields("kod_urovuslug") = rs.Fields("Уровень обслуживания(Эконом/Стандарт/Премиум)") '23
rs2.Fields("cost") = rs.Fields("Тариф за единицу в месяц (без НДС, руб)") '24
rs2.Fields("valuta") = rs.Fields("Валюта договора") '25
rs2.Fields("procNDS") = rs.Fields("Процент НДС") '26
rs2.Fields("coefficient") = rs.Fields("Целевой коэффициент") '27
rs2.Fields("volume01") = rs.Fields("Объем обслуживаемых единиц (1)") '28
rs2.Fields("sum01") = rs.Fields("Сумма в месяц, рублей, без НДС (1)") '29
rs2.Fields("volume02") = rs.Fields("Объем обслуживаемых единиц (2)") '30
rs2.Fields("sum02") = rs.Fields("Сумма в месяц, рублей, без НДС (2)") '31
rs2.Fields("volume03") = rs.Fields("Объем обслуживаемых единиц (3)") '32
rs2.Fields("sum03") = rs.Fields("Сумма в месяц, рублей, без НДС (3)") '33
rs2.Fields("volume04") = rs.Fields("Объем обслуживаемых единиц (4)") '34
rs2.Fields("sum04") = rs.Fields("Сумма в месяц, рублей, без НДС (4)") '35
rs2.Fields("volume05") = rs.Fields("Объем обслуживаемых единиц (5)") '36
rs2.Fields("sum05") = rs.Fields("Сумма в месяц, рублей, без НДС (5)") '37
rs2.Fields("volume06") = rs.Fields("Объем обслуживаемых единиц (6)") '38
rs2.Fields("sum06") = rs.Fields("Сумма в месяц, рублей, без НДС (6)") '39
rs2.Fields("volume07") = rs.Fields("Объем обслуживаемых единиц (7)") '40
rs2.Fields("sum07") = rs.Fields("Сумма в месяц, рублей, без НДС (7)") '41
rs2.Fields("volume08") = rs.Fields("Объем обслуживаемых единиц (8)") '42
rs2.Fields("sum08") = rs.Fields("Сумма в месяц, рублей, без НДС (8)") '43
rs2.Fields("volume09") = rs.Fields("Объем обслуживаемых единиц (9)") '44
rs2.Fields("sum09") = rs.Fields("Сумма в месяц, рублей, без НДС (9)") '45
rs2.Fields("volume10") = rs.Fields("Объем обслуживаемых единиц (10)") '46
rs2.Fields("sum10") = rs.Fields("Сумма в месяц, рублей, без НДС (10)") '47
rs2.Fields("volume11") = rs.Fields("Объем обслуживаемых единиц (11)") '48
rs2.Fields("sum11") = rs.Fields("Сумма в месяц, рублей, без НДС (11)") '49
rs2.Fields("volume12") = rs.Fields("Объем обслуживаемых единиц (12)") '50
rs2.Fields("sum12") = rs.Fields("Сумма в месяц, рублей, без НДС (12)") '51
rs2.Fields("totalVolume") = rs.Fields("Объем обслуживаемых единиц") '52
rs2.Fields("totalSum") = rs.Fields("Сумма, в рублях, без НДС") '53
rs2.Update
End If
If i < rs.RecordCount Then rs.MoveNext 'если переменная цикла не добралась до конца то двигаем рекордсет eXcel на следующую запись
Next i
End If


...
Рейтинг: 0 / 0
Оптимизация
    #39158127
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
 If DCount("[kod_upr]", "[NCI_UPR_1214]", "[NCI_UPR_1214].[kod_upr]='" & rs.Fields(6) & "'") > 0 
 And DCount("[nStrEd]", "[NCI_StrEd_18]", "[NCI_StrEd_18].[nStrEd]=" & rs.Fields(3)) > 0 Then
rs2.AddNew
''''''''
rs2.Fields("kod_18") = rs.Fields("Код Контрагента (18 справочник)") '3
'''''''''''''''''''
rs2.Fields("nameUslugi") = rs.Fields("Наименование услуги") '6



по правде говоря, не поняла ваше действо
--отбор по контрагенту/услуге
--без накопления
--зачем нужен dcount
...
Рейтинг: 0 / 0
Оптимизация
    #39158129
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dcount проверяет есть ли текущая запись из Excel в справочнике на сервере, если есть то делаем вставку из Excel на сервер.
...
Рейтинг: 0 / 0
Оптимизация
    #39158130
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

без базы сложно понять, но может сначала стыковать основную таблицу с "[NCI_UPR_1214]/ "[NCI_StrEd_18]" для отсекания лишних и по RS читать только нужные, а не считать количество записей в неких подтаблицах, не используя результаты подсчета

а может и запросом insert все можно сделать
...
Рейтинг: 0 / 0
Оптимизация
    #39158131
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно такой алгоритм
1. Создал запрос к серверу к табле управлений
2. Создал запрос к серверу к табле контрагентов
3.Создал подключение к файлу EXcel
4.Получил значение управления
5. Получил данные контрагента
6. Проверил наличие номера управления в табле управлений через рекордсет
7. Проверил наличие данных контрагента в табле контрагентов через рекордсет
8. Совпало делаю вставку, иначе следующее значение
...
Рейтинг: 0 / 0
Оптимизация
    #39158133
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobsDcount проверяет есть ли текущая запись из Excel в справочнике на сервере, если есть то делаем вставку из Excel на сервер.
это я поняла(кроме ссылки на ексель)

не поняла почему не применяется

Код: sql
1.
2.
3.
4.
5.
select * from tab1
 inner join [NCI_UPR_1214]
   on [NCI_UPR_1214].[kod_upr]=tab1.[Код Контрагента (18 справочник)]
 inner join [NCI_StrEd_18] 
 on [NCI_StrEd_18].[nStrEd]=[Наименование услуги]



пишу без конструктора и таблиц --могут быть ошибки
...
Рейтинг: 0 / 0
Оптимизация
    #39158137
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

насколько велики таблицы "[NCI_UPR_1214]/ "[NCI_StrEd_18]"
порядок записей в них

rs.Fields("Код Контрагента (18 справочник)") '3 ---это код--число или текст
'''''''''''''''''''
rs.Fields("Наименование услуги") '6------------------это похоже текст
...
Рейтинг: 0 / 0
Оптимизация
    #39158139
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в NCI_UPR_1214 -1000 записей
в NCI_StrEd_18 - 35000 записей
...
Рейтинг: 0 / 0
Оптимизация
    #39158140
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

не ответили на
авторrs.Fields("Код Контрагента (18 справочник)") '3 ---это код--число или текст
'''''''''''''''''''
rs.Fields("Наименование услуги") '6------------------это похоже текст
...
Рейтинг: 0 / 0
Оптимизация
    #39158142
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rs.Fields("Код Контрагента (18 справочник)") '3 ---это число
...
Рейтинг: 0 / 0
Оптимизация
    #39158143
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rs.Fields("Наименование услуги") '6------------------это текст
...
Рейтинг: 0 / 0
Оптимизация
    #39158144
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

а это
авторrs.Fields("Наименование услуги") '6------------------это похоже текст
...
Рейтинг: 0 / 0
Оптимизация
    #39158145
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

можете ли вы в конструкторе составить такой запрос(правильно)
Код: sql
1.
2.
3.
4.
5.
select * from tab1
 inner join [NCI_UPR_1214]
   on [NCI_UPR_1214].[kod_upr]=tab1.[Код Контрагента (18 справочник)]
 inner join [NCI_StrEd_18] 
 on [NCI_StrEd_18].[nStrEd]=[Наименование услуги]
...
Рейтинг: 0 / 0
Оптимизация
    #39158148
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а tab1 это что?
Я понял что псевдоним, но какой таблицы?
...
Рейтинг: 0 / 0
Оптимизация
    #39158151
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

я же не могу угадать, чему соответствует rs.RecordCount
...
Рейтинг: 0 / 0
Оптимизация
    #39158155
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это recordset файла Excel
...
Рейтинг: 0 / 0
Оптимизация
    #39158158
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,

выложите полный код процедуры
вы же где то прописали

Код: vbnet
1.
set rs=currentdb.openrecordset("select * from НЕКАЯ_ТАБЛИЦА")
...
Рейтинг: 0 / 0
Оптимизация
    #39158172
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Код: 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.
Dim rs As Object
Dim rs2 As Object
Dim sqlDel As String
Set objConnectionEx = CreateObject("ADODB.Connection")
Set objConnectionSer = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rs2 = CreateObject("ADODB.Recordset")
objConnectionEx.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " & Me.Form.l1.Value & "; Extended Properties=""Excel 12.0 xml;HDR=Yes"""
strsql = "select [Код Кураторов],[Код Менеджера],[Вид деятельности ОД/ИД/Прибыль/Возмещаемые],[Код Контрагента (18 справочник)],[№ договора САП (25 справочник)],[Наименование услуги],[Код управления],[Код Центров затрат (12 справочник)],[Код Вида услуг (52 справочник)],[Код Целевой программы (33 справочник)],[Код Месторождения (39 справочник)],[Код элементов затрат (47 справочник)],[Код прочих доходов и расходов (кроме прочих р-ций,13 справочник)],[Код Вида производств (103 справочник)],[Код Вида деятельности (24 справочник)],[Код AFE (справочник АФЕ)],[Возмещаемые (если агентский договор прописывать № договора )],[Код типа сделки (справочник сделок)],[Код статьи бюджета (справочник Статей бюджета)],[Номер лота],[Протокол ЗК], " _
 & " [Единица измерения],[Уровень обслуживания(Эконом/Стандарт/Премиум)],[Тариф за единицу в месяц (без НДС, руб)],[Валюта договора],[Процент НДС],[Целевой коэффициент],[Объем обслуживаемых единиц (1)],[Сумма в месяц, рублей, без НДС (1)],[Объем обслуживаемых единиц (2)],[Сумма в месяц, рублей, без НДС (2)],[Объем обслуживаемых единиц (3)],[Сумма в месяц, рублей, без НДС (3)], " _
 & " [Объем обслуживаемых единиц (4)],[Сумма в месяц, рублей, без НДС (4)],[Объем обслуживаемых единиц (5)],[Сумма в месяц, рублей, без НДС (5)],[Объем обслуживаемых единиц (6)],[Сумма в месяц, рублей, без НДС (6)], " _
 & " [Объем обслуживаемых единиц (7)],[Сумма в месяц, рублей, без НДС (7)],[Объем обслуживаемых единиц (8)],[Сумма в месяц, рублей, без НДС (8)],[Объем обслуживаемых единиц (9)],[Сумма в месяц, рублей, без НДС (9)], " _
 & " [Объем обслуживаемых единиц (10)],[Сумма в месяц, рублей, без НДС (10)],[Объем обслуживаемых единиц (11)],[Сумма в месяц, рублей, без НДС (11)],[Объем обслуживаемых единиц (12)],[Сумма в месяц, рублей, без НДС (12)], " _
 & " [Объем обслуживаемых единиц],[Сумма, в рублях, без НДС],[№ договора от Куратора]  from  [Лист1$]"
rs.Open strsql, objConnectionEx, 3, 3 ' открываем рекордсет excel
If rs.BOF And rs.EOF Then
MsgBox "Файл пуст"
Else
objConnectionSer.Open "Provider=SQLOLEDB.1;Password=Skid2016;Persist Security Info=True;User ID=UserSkid;Initial Catalog=SKID;Data Source=rni-32" 'строка подключения к skid
rs.MoveLast: rs.MoveFirst 'прогон рекордсета на последнюю запись и назад к первой для правильного подсчета количества записей
rs2.Open "dbo.DogovorPlan", objConnectionSer, 3, 3  'открываем рекордсет  таблицы Skid

For i = 1 To rs.RecordCount 'цикл по записям рекордсета из excel
 If DCount("[kod_upr]", "[NCI_UPR_1214]", "[NCI_UPR_1214].[kod_upr]='" & rs.Fields(6) & "'") > 0 Then
    If DCount("[nStrEd]", "[NCI_StrEd_18]", "[NCI_StrEd_18].[nStrEd]=" & rs.Fields(3)) > 0 Then
rs2.AddNew
rs2.Fields("kod_kurator") = rs.Fields("Код Кураторов") '0
rs2.Fields("kod_manager") = rs.Fields("Код Менеджера") '1
rs2.Fields("type_activ") = rs.Fields("Вид деятельности ОД/ИД/Прибыль/Возмещаемые") '2
rs2.Fields("kod_18") = rs.Fields("Код Контрагента (18 справочник)") '3
rs2.Fields("NumDogKurator") = rs.Fields("№ договора от Куратора") '4
rs2.Fields("kod_25") = rs.Fields("№ договора САП (25 справочник)") '5
rs2.Fields("nameUslugi") = rs.Fields("Наименование услуги") '6
rs2.Fields("kod_upr") = rs.Fields("Код управления") '7
rs2.Fields("kod_12") = rs.Fields("Код Центров затрат (12 справочник)") '8
rs2.Fields("kod_52") = rs.Fields("Код Вида услуг (52 справочник)") '9
rs2.Fields("kod_33") = rs.Fields("Код Целевой программы (33 справочник)") '10
rs2.Fields("kod_39") = rs.Fields("Код Месторождения (39 справочник)") '11
rs2.Fields("kod_47") = rs.Fields("Код элементов затрат (47 справочник)") '12
rs2.Fields("kod_13") = rs.Fields("Код прочих доходов и расходов (кроме прочих р-ций,13 справочник)") '13
rs2.Fields("kod_103") = rs.Fields("Код Вида производств (103 справочник)") '14
rs2.Fields("kod_24") = rs.Fields("Код Вида деятельности (24 справочник)") '15
rs2.Fields("kod_AFE") = rs.Fields("Код AFE (справочник АФЕ)") '16
rs2.Fields("recoverable") = rs.Fields("Возмещаемые (если агентский договор прописывать № договора )") '17
rs2.Fields("kod_Cdelka") = rs.Fields("Код типа сделки (справочник сделок)") '18
rs2.Fields("kod_StatBud") = rs.Fields("Код статьи бюджета (справочник Статей бюджета)") '19
rs2.Fields("numberLot") = rs.Fields("Номер лота") '20
rs2.Fields("ZKprotocol") = rs.Fields("Протокол ЗК") '21
rs2.Fields("kod_edizm") = rs.Fields("Единица измерения") '22
rs2.Fields("kod_urovuslug") = rs.Fields("Уровень обслуживания(Эконом/Стандарт/Премиум)") '23
rs2.Fields("cost") = rs.Fields("Тариф за единицу в месяц (без НДС, руб)") '24
rs2.Fields("valuta") = rs.Fields("Валюта договора") '25
rs2.Fields("procNDS") = rs.Fields("Процент НДС") '26
rs2.Fields("coefficient") = rs.Fields("Целевой коэффициент") '27
rs2.Fields("volume01") = rs.Fields("Объем обслуживаемых единиц (1)") '28
rs2.Fields("sum01") = rs.Fields("Сумма в месяц, рублей, без НДС (1)") '29
rs2.Fields("volume02") = rs.Fields("Объем обслуживаемых единиц (2)") '30
rs2.Fields("sum02") = rs.Fields("Сумма в месяц, рублей, без НДС (2)") '31
rs2.Fields("volume03") = rs.Fields("Объем обслуживаемых единиц (3)") '32
rs2.Fields("sum03") = rs.Fields("Сумма в месяц, рублей, без НДС (3)") '33
rs2.Fields("volume04") = rs.Fields("Объем обслуживаемых единиц (4)") '34
rs2.Fields("sum04") = rs.Fields("Сумма в месяц, рублей, без НДС (4)") '35
rs2.Fields("volume05") = rs.Fields("Объем обслуживаемых единиц (5)") '36
rs2.Fields("sum05") = rs.Fields("Сумма в месяц, рублей, без НДС (5)") '37
rs2.Fields("volume06") = rs.Fields("Объем обслуживаемых единиц (6)") '38
rs2.Fields("sum06") = rs.Fields("Сумма в месяц, рублей, без НДС (6)") '39
rs2.Fields("volume07") = rs.Fields("Объем обслуживаемых единиц (7)") '40
rs2.Fields("sum07") = rs.Fields("Сумма в месяц, рублей, без НДС (7)") '41
rs2.Fields("volume08") = rs.Fields("Объем обслуживаемых единиц (8)") '42
rs2.Fields("sum08") = rs.Fields("Сумма в месяц, рублей, без НДС (8)") '43
rs2.Fields("volume09") = rs.Fields("Объем обслуживаемых единиц (9)") '44
rs2.Fields("sum09") = rs.Fields("Сумма в месяц, рублей, без НДС (9)") '45
rs2.Fields("volume10") = rs.Fields("Объем обслуживаемых единиц (10)") '46
rs2.Fields("sum10") = rs.Fields("Сумма в месяц, рублей, без НДС (10)") '47
rs2.Fields("volume11") = rs.Fields("Объем обслуживаемых единиц (11)") '48
rs2.Fields("sum11") = rs.Fields("Сумма в месяц, рублей, без НДС (11)") '49
rs2.Fields("volume12") = rs.Fields("Объем обслуживаемых единиц (12)") '50
rs2.Fields("sum12") = rs.Fields("Сумма в месяц, рублей, без НДС (12)") '51
rs2.Fields("totalVolume") = rs.Fields("Объем обслуживаемых единиц") '52
rs2.Fields("totalSum") = rs.Fields("Сумма, в рублях, без НДС") '53
rs2.Update
End If
End If
If i < rs.RecordCount Then rs.MoveNext 'если переменная цикла не добралась до конца то двигаем рекордсет eXcel на следующую запись
Next i
End If
MsgBox "Загрузка прошла успешно"
rs2.Close
rs.Close
Set rs = Nothing
Set rs2 = Nothing


...
Рейтинг: 0 / 0
Оптимизация
    #39158177
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,
а как привязаны [NCI_UPR_1214] и [NCI_StrEd_18]
или это локальные таблицы(находятся в базе)
...
Рейтинг: 0 / 0
Оптимизация
    #39158184
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это запросы к серверу
...
Рейтинг: 0 / 0
Оптимизация
    #39158215
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobsЭто запросы к серверу
вот вам и скорость

3 запроса к серверу на каждой записи
--------------
я видимо применила бы временные локальные таблицы
...
Рейтинг: 0 / 0
Оптимизация
    #39158230
Noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только использовать временные таблицы для ускорения? Других вариантов нет?
...
Рейтинг: 0 / 0
Оптимизация
    #39158246
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Noobs,

по крайней мере я не других вариантов не делала

мой порядок
--создавала пустую рабочую базу
--копировала туда таблицы запросом типа(нужные поля)
select * into tab1 from list1
select * into sp1214 from.....
select * into sp18 from .....
--tab1/sp1214/sp18 прилинковывала
--далее обычные запросы со join

меня это устраивало по скорости и не разбухала локальная база с запросами/формами
у вас же другой монастырь --другие правила

можно справочники считывать не во временные таблицы, а в массивы(если код небольшой --для клиентов)
или коллекции(для текстовых полей)

и там и там можно не обращаясь на каждой записи к серверу --проверить есть ли запись в справочниках
...
Рейтинг: 0 / 0
Оптимизация
    #39158329
noobs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как считывать в массивы или коллекции?
...
Рейтинг: 0 / 0
Оптимизация
    #39158335
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobs,
какой максимальный [NCI_UPR_1214].[kod_upr] ''[Код Контрагента (18 справочник)]
и несколько типичных [NCI_StrEd_18].[nStrEd] ''[Наименование услуги]

после обеда посмотрю
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Оптимизация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]