Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dim SString As String
- Dim mark As Variant
- Private Sub Список_пациентов_санатория__поиск_Click()
- Dim cstring As String
- Set SData = New ADODB.Recordset
- SData.CursorLocation = adUseClient
- SData.Open "Select * FROM [Пациенты]", CurrentProject.Connection
- cstring = Switch(Список_пациентов_санатория__найти_слово__поле_выбора.Value = "точная фраза", "'", _
- Список_пациентов_санатория__найти_слово__поле_выбора.Value = "внутри слова", "'%")
- If Not (Список_пациентов_санатория__поле_поиска = "") Then
- cstring = cstring & Список_пациентов_санатория__поле_поиска.Value
- cstring = cstring & Switch(Список_пациентов_санатория__найти_слово__поле_выбора.Value = "точная фраза", "'", _
- Список_пациентов_санатория__найти_слово__поле_выбора.Value = "внутри слова", "%'")
- If (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Номер пациента") Or (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "ФИО") Then
- SString = Switch(Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Номер пациента", "[Номер пациента]", _
- Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "ФИО", "[ФИО]")
- SString = SString & " LIKE " & cstring
- End If
- If (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Дата рождения") Then
- cstring = Список_пациентов_санатория__поле_поиска.Value
- SString = "[Дата рождения]"
- SString = SString & " = " & cstring
- End If
- If (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Пол") Then
- If (Список_пациентов_санатория__поле_поиска.Value = "М") Or (Список_пациентов_санатория__поле_поиска.Value = "Муж") Then
- cstring = True
- SString = "[Пол]"
- SString = SString & " = " & cstring
- Else
- If (Список_пациентов_санатория__поле_поиска.Value = "Ж") Or (Список_пациентов_санатория__поле_поиска.Value = "Жен") Then
- cstring = False
- SString = "[Пол]"
- SString = SString & " = " & cstring
- End If
- End If
- End If
- If (Trim(Список_пациентов_санатория__направление_поиска__поле_выбора.Value = "по возрастанию")) Then
- SData.MoveFirst
- SData.Find SString, 0, adSearchForward
- Else
- SData.MoveLast
- SData.Find SString, 0, adSearchBackward
- End If
- If Not (SData.EOF) Then
- Set Список_пациентов_санатория_.Form.Recordset = SData
- Else
- Список_пациентов_санатория__результат_поиска.Caption = "Пациенты не найдены"
- End If
- Else
- MsgBox "Введите заначение для поиска", vbInformation, "Ошибка"
- End If
- End Sub
- Private Sub Список_пациентов_санатория__поиск_далее_Click()
- If (Trim(Список_пациентов_санатория__направление_поиска__поле_выбора.Value = "по возрастанию")) Then
- If Not (SData.EOF) Then
- mark = SData.Bookmark
- SData.Find SString, 1, adSearchForward, mark
- Else
- MsgBox "Поиск завершен"
- End If
- Else
- If Not (SData.BOF) Then
- mark = SData.Bookmark
- SData.Find SString, 1, adSearchBackward, mark
- Else
- MsgBox "Поиск завершен"
- End If
- End If
- End Sub
- Private Sub Список_пациентов_санатория__поиск_по_полю__поле_выбора_Change()
- If (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Пол") Or (Список_пациентов_санатория__поиск_по_полю__поле_выбора.Value = "Дата рождения") Then
- Список_пациентов_санатория__найти_слово__поле_выбора.Value = "точная фраза"
- Список_пациентов_санатория__найти_слово__поле_выбора.Enabled = False
- Else
- Список_пациентов_санатория__найти_слово__поле_выбора.Enabled = True
- End If
- End Sub
- Private Sub Form_Load()
- Set SData = New ADODB.Recordset
- SData.CursorLocation = adUseClient
- SData.Open "Select * FROM [Пациенты]", CurrentProject.Connection
- Set Список_пациентов_санатория__форма.Form.Recordset = SData
- End Sub
- --------------------------------------------- тут функция фильтрации -------------------------------
- Private Function GetDateSexFilter() As String
- Dim DateFilter As String, SexFilter As String
- SexFilter = "True"
- If (Список_пациентов__дата_рождения_с_начало.Value <> "") Then
- DateFilter = DateFilter & " AND [Пациенты].[Дата рождения] >= #" & _
- Format(Список_пациентов__дата_рождения_с_начало.Value, "mm\/dd\/yy") & "#"
- End If
- If (Список_пациентов__дата_рождения_по_конец.Value <> "") Then
- DateFilter = DateFilter & " AND [Пациенты].[Дата рождения] <= #" & _
- Format(Список_пациентов__дата_рождения_по_конец.Value, "mm\/dd\/yy") & "#"
- End If
- Select Case Trim(Список_пациентов__пол_пациента.Value)
- Case "Муж"
- SexFilter = SexFilter & " AND Пол = True"
- Case "Жен"
- SexFilter = SexFilter & " AND Пол = False"
- End Select
- GetDateSexFilter = SexFilter & DateFilter
- End Function
- ' Сброс данных
- Private Sub Список_пациентов__сброс_Click()
- ' Очистка элементов
- Список_пациентов__дата_рождения_с_начало.SetFocus
- Список_пациентов__дата_рождения_с_начало.Text = ""
- Список_пациентов__дата_рождения_по_конец.SetFocus
- Список_пациентов__дата_рождения_по_конец.Text = ""
- Список_пациентов__пол_пациента.SetFocus
- Список_пациентов__пол_пациента.Text = ""
- ' Восстановление данных
- Список_пациентов_санатория_.Form.Filter = ""
- Список_пациентов_санатория_.Form.FilterOn = False
- End Sub
- ' Применение фильтра
- Private Sub Список_пациентов__фильтр_Click()
- Список_пациентов_санатория_.Form.Filter = GetDateSexFilter
- Список_пациентов_санатория_.Form.FilterOn = True
- End Sub
Add Comment
Please, Sign In to add comment