Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Recordset_ы
 
 автор: час   (22.01.2010 в 09:31)   личное сообщение
 
 

имеем два набора записей

    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 и проверяю каждую запись на наличие,
а как то "скопом" как то фильтром фильтронуть - можно???

  Ответить  
 
 автор: snipe   (22.01.2010 в 09:43)   личное сообщение
 
 

собрать в одну таблу и долбануть запросом

примерно так

SELECT First(Награждения.№) AS [№ поле], Count(Награждения.№) AS Повторы
FROM Награждения
GROUP BY Награждения.№
HAVING (((Count(Награждения.№))<2));

  Ответить  
 
 автор: час   (22.01.2010 в 09:48)   личное сообщение
 
 

Блин ........
Сё рем забываю сказать
это всё делаю из VB6 используя ADO...
==============================
В access конечно я бы добавил фильтронув записи без подчинённых, а тут чё та как то не знаю как..

и вот ещё приписька - найдя нужные записи - добавить их в набор Dim RST_COMMODITY_GROUP_1 (куда)

  Ответить  
 
 автор: час   (22.01.2010 в 09:53)   личное сообщение
 
 

я конечно зафигачил проверочку - но громоздко как то

         
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

  Ответить  
 
 автор: FORMAT   (22.01.2010 в 10:45)   личное сообщение
 
 

А база данных у тебю какая? ( в смысле субд)

  Ответить  
 
 автор: osmor   (22.01.2010 в 10:57)   личное сообщение
 
 

сделай запрос на добавление записей без подчиненных и его вызывай. зачем тебе рекордсеты?

  Ответить  
 
 автор: час   (22.01.2010 в 11:21)   личное сообщение
 
 

База - 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

  Ответить  
 
 автор: osmor   (22.01.2010 в 11:26)   личное сообщение
 
 

так можно и не создавать. просто выполнить строку SLQ excute
создавать тоже можно, см. мою статью про adox

  Ответить  
 
 автор: час   (22.01.2010 в 11:29)   личное сообщение
 
 

Дико извиняюсь за неверно заданый вопрос..........
Наборы записей относятся к разным таблицам из разных баз....

  Ответить  
 
 автор: час   (22.01.2010 в 12:50)   личное сообщение
 
 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList