|
|
|
| имеем два набора записей
Dim RST_COMMODITY_GROUP As ADODB.Recordset ' откудаа
Dim RST_COMMODITY_GROUP_1 As ADODB.Recordset ' Куда
|
Одинаковой структуры таблиц
как попроще найти в RST_COMMODITY_GROUP_1 запись, которой нет в
RST_COMMODITY_GROUP, при условии что поиск осуществляем по полю ID_GROUP
Я конечно бегаю по всему RST_COMMODITY_GROUP_1 и проверяю каждую запись на наличие,
а как то "скопом" как то фильтром фильтронуть - можно??? | |
|
| |
|
|
|
| собрать в одну таблу и долбануть запросом
примерно так
SELECT First(Награждения.№) AS [№ поле], Count(Награждения.№) AS Повторы
FROM Награждения
GROUP BY Награждения.№
HAVING (((Count(Награждения.№))<2)); | |
|
| |
|
|
|
| Блин ........
Сё рем забываю сказать
это всё делаю из VB6 используя ADO...
==============================
В access конечно я бы добавил фильтронув записи без подчинённых, а тут чё та как то не знаю как..
и вот ещё приписька - найдя нужные записи - добавить их в набор Dim RST_COMMODITY_GROUP_1 (куда) | |
|
| |
|
|
|
| я конечно зафигачил проверочку - но громоздко как то
If FUN_IS_TABLE_IN_BASA("COMMODITY_GROUP_TBL", GLB_DATA_DB_CONNECTION) = True Then
Set RST_COMMODITY_GROUP = New Recordset '"COMMODITY_GROUP_TBL"
Set RST_COMMODITY_GROUP_1 = New Recordset
' Открываем присланную
RST_COMMODITY_GROUP.Open " SELECT COMMODITY_GROUP_TBL.*" _
& " From COMMODITY_GROUP_TBL", GLB_DATA_DB_CONNECTION, adOpenKeyset, adLockOptimistic
If RST_COMMODITY_GROUP.RecordCount <> 0 Then RST_COMMODITY_GROUP.MoveFirst
' открываем местную
RST_COMMODITY_GROUP_1.Open " SELECT COMMODITY_GROUP_TBL.*" _
& " From COMMODITY_GROUP_TBL", GLB_CONNECTION, adOpenKeyset, adLockOptimistic
'просмотрим на совпадения и добавим если нужное
'бегаем по приланой RST_COMMODITY_GROUP
Do While Not RST_COMMODITY_GROUP.EOF ' заполняем наименованиями список товаров
' смотрим в местной имеется или нет такая гуппа
RST_COMMODITY_GROUP_1.Filter = "ID_GROUP = '" & RST_COMMODITY_GROUP("ID_GROUP") & "'"
If RST_COMMODITY_GROUP_1.RecordCount = 0 Then
' если новая группа
RST_COMMODITY_GROUP_1.AddNew
RST_COMMODITY_GROUP_1("ID_GROUP") = RST_COMMODITY("ID_GROUP") ' ID записи
RST_COMMODITY_GROUP_1("GROUP_NAME") = RST_COMMODITY("GROUP_NAME") ' наименование
RST_COMMODITY_GROUP_1("USER_NAME") = RST_COMMODITY("USER_NAME")
RST_COMMODITY_GROUP_1("DATE_RECORDS") = RST_COMMODITY("DATE_RECORDS")
RST_COMMODITY_GROUP_1.Update
End If
RST_COMMODITY_GROUP.MoveNext
Loop
End If
|
| |
|
| |
|
|
|
| А база данных у тебю какая? ( в смысле субд) | |
|
| |
|
|
|
| сделай запрос на добавление записей без подчиненных и его вызывай. зачем тебе рекордсеты? | |
|
| |
|
|
|
| База - mdb (MS Access 2002)
Наборы записей относятся к разным таблицам из разных баз....
Открываем присланную
RST_COMMODITY_GROUP.Open " SELECT COMMODITY_GROUP_TBL.*" _
& " From COMMODITY_GROUP_TBL", GLB_DATA_DB_CONNECTION , adOpenKeyset, adLockOptimistic
If RST_COMMODITY_GROUP.RecordCount <> 0 Then RST_COMMODITY_GROUP.MoveFirst
' открываем местную
RST_COMMODITY_GROUP_1.Open " SELECT COMMODITY_GROUP_TBL.*" _
& " From COMMODITY_GROUP_TBL", GLB_CONNECTION, adOpenKeyset, adLockOptimistic | |
|
| |
|
|
|
| так можно и не создавать. просто выполнить строку SLQ excute
создавать тоже можно, см. мою статью про adox | |
|
| |
|
|
|
| Дико извиняюсь за неверно заданый вопрос..........
Наборы записей относятся к разным таблицам из разных баз.... | |
|
| |
|