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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Двойной запрос
 
 автор: час   (05.06.2011 в 23:15)   личное сообщение
 
 

Работаю из VB6


Function FUN_NOT_ACTIVE()
' Выявление  не действующих карт& "Выявление неактивных покупателей" и удаление их
Dim INTERVAL_MESYACI As Integer       ' интервал возможной неактивности
Dim rst_C As ADODB.Recordset                  ' карты покупателей
Set rst_C = New ADODB.Recordset
Dim rst_KOMAND As ADODB.Recordset   ' карты команды покупателя
Set rst_KOMAND = New ADODB.Recordset
' выбор тех кто не активировал карту в теч месяца и не проявлял активности
rst_C.Open "SELECT CLIENT_CARDS_TBL.* " _
& " From CLIENT_CARDS_TBL" _
& " WHERE ((CLIENT_CARDS_TBL.YES_OR_NO)=False) ", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic

If Not rst_C.EOF And Not rst_C.BOF Then
        rst_C.MoveFirst
        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), "=========================================")
        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), CStr(Now()))
        
        Do While Not rst_C.EOF

                       
                        INTERVAL_MESYACI = 0
                      If NZVAL(rst_C("DATE_RECORDS")) = 0 Then
                        rst_C("DATE_RECORDS") = Date
                        rst_C.Update
                      End If
                      ' проверка интервала неактивности
                        INTERVAL_MESYACI = DateDiff("m", rst_C("DATE_RECORDS"), Date)
                        If INTERVAL_MESYACI <= 12 Then GoTo Dalee
                          ' проверка интервала неактивности
                          
                  If NZVAL(rst_C("MONTH_TURN")) <> 0 Then GoTo Dalee
                        
                  If NZVB(rst_C("NUMBER_CARD")) <> "БЕЗ_КАРТ" Then
              ' Является ли чьим нибудь спонсором?
 вместо этого набора записей что то типа Dcount с условием - имеется возможность применить?
               rst_KOMAND.Open "SELECT CLIENT_CARDS_TBL.PARENT_CARD " _
               & " From CLIENT_CARDS_TBL " _
               & " WHERE (((CLIENT_CARDS_TBL.PARENT_CARD)= '" & rst_C("NUMBER_CARD") & "'))", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic
                    If rst_KOMAND.RecordCount = 0 Then
                        ' Запись в текстовый файл
                        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), rst_C("NUMBER_CARD") & "- его спонсор " & rst_C("PARENT_CARD"))
                        Set MItem = Me!LV4.ListItems.Add()
                        MItem.Text = rst_C("NUMBER_CARD")
                        rst_C.Delete ' удаление
                        rst_C.Update
                     End If
                  End If
Dalee:
                  rst_C.MoveNext
        Loop
End If
rst_C.Close
rst_KOMAND.Close
Set rst_C = Nothing
Set rst_KOMAND = Nothing

End Function


Пока бегаю по таблице, пытаюсь к этой таблице ещё один запрос применить - не тут то было, надо говорят закрыть первый набор записей.

А мне надо то всего лишь узнать есть записи отвечающие условию:
WHERE (((CLIENT_CARDS_TBL.PARENT_CARD)= '" & rst_C("NUMBER_CARD") & "'))"

может как то иначе обратиться за поиском в таблице?[b][/b]

  Ответить  
 
 автор: час   (05.06.2011 в 23:44)   личное сообщение
 
 

Создал дополнительную функцию - вроде как попёрло!


Function FUN_NOT_ACTIVE()
' Выявление  не действующих карт& "Выявление неактивных покупателей" и удаление их
Dim INTERVAL_MESYACI As Integer       ' интервал возможной неактивности
Dim rst_C As ADODB.Recordset                  ' карты покупателей
Set rst_C = New ADODB.Recordset

' выбор тех кто не активировал карту в теч месяца и не проявлял активности
rst_C.Open "SELECT CLIENT_CARDS_TBL.* " _
& " From CLIENT_CARDS_TBL" _
& " WHERE ((CLIENT_CARDS_TBL.YES_OR_NO)=False) ", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic

If Not rst_C.EOF And Not rst_C.BOF Then
        rst_C.MoveFirst
        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), "=========================================")
        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), CStr(Now()))
        
        Do While Not rst_C.EOF

                       
                        INTERVAL_MESYACI = 0
                      If NZVAL(rst_C("DATE_RECORDS")) = 0 Then
                        rst_C("DATE_RECORDS") = Date
                        rst_C.Update
                      End If
                      ' проверка интервала неактивности
                        INTERVAL_MESYACI = DateDiff("m", rst_C("DATE_RECORDS"), Date)
                        If INTERVAL_MESYACI <= 12 Then GoTo Dalee
                          ' проверка интервала неактивности
                          
                  If NZVAL(rst_C("MONTH_TURN")) <> 0 Then GoTo Dalee
                        
                  If NZVB(rst_C("NUMBER_CARD")) <> "БЕЗ_КАРТ" Then
              ' Является ли чьим нибудь спонсором?
                    If FUN_NOT_SPONSOR(rst_C("NUMBER_CARD")) = False Then
                        ' Запись в текстовый файл
                        Call FUN_IN_TXT(FUN_Patch_File(App.Path, "Свободные карты.txt"), rst_C("NUMBER_CARD") & "- его спонсор " & rst_C("PARENT_CARD"))
                        Set MItem = Me!LV4.ListItems.Add()
                        MItem.Text = rst_C("NUMBER_CARD")
                        rst_C.Delete ' удаление
                        rst_C.Update
                     End If
                  End If
Dalee:
                  rst_C.MoveNext
        Loop
End If
rst_C.Close
Set rst_C = Nothing


End Function



Function FUN_NOT_SPONSOR(STR_NUMBER_CARD) As Boolean
' Является ли чьим нибудь спонсором?
Dim INTERVAL_MESYACI As Integer       ' интервал возможной неактивности
Dim rst_KOMAND As ADODB.Recordset   ' карты команды покупателя
Set rst_KOMAND = New ADODB.Recordset
FUN_NOT_SPONSOR = False
               rst_KOMAND.Open "SELECT CLIENT_CARDS_TBL.*" _
               & " From CLIENT_CARDS_TBL " _
               & " WHERE (((CLIENT_CARDS_TBL.PARENT_CARD)= '" & STR_NUMBER_CARD & "'))", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic
                    If rst_KOMAND.RecordCount = 0 Then
                    FUN_NOT_SPONSOR = True
                  End If

rst_KOMAND.Close
Set rst_KOMAND = Nothing

End Function

  Ответить  
 
 автор: час   (05.06.2011 в 23:45)   личное сообщение
 
 

  Ответить  
 
 автор: kot_k_k   (06.06.2011 в 08:38)   личное сообщение
 
 

Тихо сам с собою, тихо сам с собою. Я веду беседу

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

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