Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Ирча
По поводу динамического отбора... я это делаю так:

Dim srtSQL As String
Dim strRS As String
Dim strRS1 As String
Dim strRS2 As String
Dim strTD As String 'Тип документа
Dim strIS As String ' Исполнитель
Dim strDR As String ' Дата регистрации
Dim strSR As String ' Срок исполнения
Dim strVD As String ' Дата входящего документа
Dim strOT As String 'Отправитель
Dim strSOD As String 'Содержание
Dim strGOD As String ' Год
Dim strDIS As String ' Доп исполнитель
Dim strDost As String

If IsNull(Me.ТипДокум) Or Me.ТипДокум = "" Then
strTD = ""
Else: Poisk1 = Me.ТипДокум
strTD = " AND ((Типдок.ТипДок) Like '*" & psk1() & "*')"
End If
'**************
If IsNull(Me.Исполн) Or Me.Исполн = "" Then
strIS = ""
Else: Poisk2 = Me.Исполн
strIS = " AND ((Отдел.Отдел) Like '*" & psk2() & "*')"
End If
'***********
If Not IsNull(Me.Дата1) And Not IsNull(Me.Дата2) Then
Poisk3 = Me.Дата1
Poisk4 = Me.Дата2
strDR = "((Вх.[Дата регистрации]) Between psk3() And psk4())"
strSR = "((Вх.[Срок исполнения]) Between psk3() And psk4())"
strVD = "((Вх.Дата) Between psk3() And psk4())"
    ElseIf IsNull(Me.Дата1) And Not IsNull(Me.Дата2) Then
    Poisk4 = Me.Дата2
    strDR = "((Вх.[Дата регистрации])= psk4())"
    strSR = "((Вх.[Срок исполнения])= psk4())"
    strVD = "((Вх.Дата)= psk4())"
        ElseIf Not (IsNull(Me.Дата1) And IsNull(Me.Дата2)) Then
        Poisk3 = Me.Дата1
        strDR = "((Вх.[Дата регистрации])= psk3())"
        strSR = "((Вх.[Срок исполнения])= psk3())"
        strVD = "((Вх.Дата)= psk3())"
           ElseIf IsNull(Me.Дата1) And IsNull(Me.Дата2) Then
              strDR = "1=1"
              strSR = "1=1"
              strVD = "1=1"
End If
'******************
If IsNull(Me.Отпр) Or Me.Отпр = "" Then
strOT = ""
Else: Poisk5 = Me.Отпр
strOT = " AND ((Адресат.Адресат) Like '*" & psk5() & "*')"
End If

'******************
If IsNull(Me.Содерж) Or Me.Содерж = "" Then
strSOD = ""
Else: Poisk6 = Me.Содерж
strSOD = " AND ((Вх.Содержание) Like '*" & psk6() & "*')"
End If
'******************
If IsNull(Me.Год) Or Me.Год = "" Then
strGOD = ""
Else: Poisk7 = Me.Год
strGOD = " AND ((Format(Вх.[Дата регистрации],""yyyy"")) Like '*" & psk7() & "*')"
End If
'***************
If IsNull(Me.ДопИсп1) Or Me.ДопИсп1 = "" Then
strDIS = ""
Else: Poisk8 = Me.ДопИсп1
strDIS = " AND ((Вх.ДопИсп) Like '*" & psk8() & "*')"
End If
'*********
If (Me.Dost = True) Then
strDost = " And ((Вх.Доступ)=No)"
Else: strDost = ""
End If

strRS = "SELECT Вх.ID, IIf(IsNull([НомДоп]) Or [НомДоп]="""",[Входящий номер],[Входящий номер] & ""/"" & [НомДоп]) As Ном, Вх.[Дата регистрации], Вх.[Исходящий номер], Вх.Дата, Типдок.ТипДок, Адресат.Адресат, Вх.Содержание, Отдел.Отдел, Вх.ДопИсп, Вх.Ссылка, Вх.[Срок исполнения], Format([Вх.Исполено],""Yes/No"") AS Исполено, Вх.Доступ" _
& " FROM Типдок INNER JOIN (Отдел RIGHT JOIN (Адресат INNER JOIN Вх ON Адресат.№ПП=Вх.Отправитель) ON Отдел.№ПП=Вх.Исполнитель) ON Типдок.№ПП=Вх.[Тип корреспонденции] " _
& " WHERE (" & strDR & strTD & strIS & strOT & strSOD & strGOD & strDIS & strDost _
& ") OR (" & strSR & strTD & strIS & strOT & strSOD & strGOD & strDIS & strDost _
& ") OR (" & strVD & strTD & strIS & strOT & strSOD & strGOD & strDIS & strDost & ");"


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.