У меня есть две таблицы, которые мне нужно обновить. Я должен просмотреть каждую запись в одной таблице, затем внести некоторые изменения в данные, а затем загрузить измененные
данные в другую таблицу!
В двух таблицах содержится 3000 записей и 11 000 записей. Плюс я тоже должен
проверить некоторую информацию из третьей таблицы с около 50 записей!
Dim id
Dim fly_SQL
id="user1"
Dim rsc1_conn As ADODB.Connection
Set rsc1_conn = CreateObject("ADODB.Connection")
rsc1_conn.Provider = "SQLOLEDB"
rsc1_conn.ConnectionString = "SERVER=companyserver;UID=" & id &
";Trusted_Connection=Yes;DATABASE=DATAbank" '
rsc1_conn.Open
Set rsc1 = CurrentDb.OpenRecordset("SELECT * FROM main_database",
dbOpenDynaset, dbSeeChanges)
rsc1.movefirst
do until rsc1.EOF
fly_SQL = "Select * from alt_db where alt_db.number = main.net_number"
Set rsc2 = CurrentDb.OpenRecordset(fly_SQL)
do stuff
code = dlookup( "type_def", "third_rec" , alt_db.activity = activity)
Обе таблицы используют net_number в качестве ссылки, которая на главном является уникальным первичным ключом, но alt_db имеет несколько записей.
Таким образом, в основном я должен пройтись по каждому net_number на основном, посмотреть на соответствующий net_number на alt_db , а затем сравнить активность поле
с третьей таблицей, чтобы увидеть, какое поле я обновляю на главной! Если это расходы на управление проектом, я положил их в main.PM_cost
. net_number в alt_db может повториться для 10 других расходов, которые необходимо направить в соответствующие категории расходов в основной БД! Как пример:
Основной стол выглядит как
net_number
первая запись показывает
main.netnumber = 123456
main.cont_cost
main.PM_cost
main.mgmt_cost
Таблица alt_db выглядит как
alt_db.net_number
alt_db.activity
alt_db.PM_cost
alt_db.const_cost
alt_db.mgmt_cost
third_rec выглядит как
third_rec.code
third_type
где данные могут быть чем-то вроде con1, sabb,
code type
sauf construction
con1 management
I130 project management
И необходимые правила:
проверка alt_db.activity
с third_rec.act
и возврат activity
тип
Если вид деятельности строительный, тогда я помещаю alt_db.cost
в main.const_cost
Если тип деятельности project_mgmt , тогда я помещаю alt_db.cost
в main.PM_cost
. Alt_db.activity может быть con1 или SAF4, а тип определяется таблицей third_rec .
Попытка выяснить лучший (самый эффективный способ) сделать это.
Есть предложения?
В приведенном выше коде, безусловно, будут отсутствовать правильные определения переменных и тому подобное, но это просто для объяснения моей дилеммы!
Возможно, я мог бы сделать это с DLookup
, но я не думаю, что это было бы очень эффективно!
Пит