Excel поиск в access

intersk

114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

1

19.03.2015, 15:16. Показов 2088. Ответов 11

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

нужно осуществить поиск значения полей из Access в Excel (сначала туда вношу, потом надо найти сроку…)
использую код (покажу часть). Сам код рабочий,но ищет только если указать в поле формы одно слово или их сочетание, точно соответствующее тем словам что есть в ячейке.
В остальных случаях не работает…Почему?
Может дело в типах данных?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Dim Poisk1
Dim Poisk2
 
 
Poisk1 = Forms!Данные!Номер_платежки
Poisk2 = Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов
 
.....
    Set c = .Find(What:=Poisk1, LookIn:=xlValues, LookAt:=xlPart)
.....
                 If Not xlWbkEx.Worksheets(L).Rows(c.Row).Find(What:=Poisk2, LookIn:=xlValues, LookAt:=xlPart) Is Nothing Then



0



Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

19.03.2015, 15:33

2

Прежде всего проверил бы Poisk2 (Debug.Print Poisk2). Та ли там величина, которую Вы ищете? Например, если акс посчитает, что в полях Сумма_долга и Сумма_процентов строки, а не числа, то вместо ожидаемого, к примеру 100+50 равного 150 будет 10050. Или в полях есть длинная мантисса, которая на форме скрывается форматом. Или одно из полей NULL. Вообщем, эту величину надо проверять. И только потом можно двигаться дальше, если поиск не идет по иной причине.

Да и вопрос стоит задавать на форуме ВБА или Excel.



1



114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

19.03.2015, 23:01

 [ТС]

3

Цитата
Сообщение от mobile
Посмотреть сообщение

Прежде всего проверил бы Poisk2 (Debug.Print Poisk2).

складывает числа

Цитата
Сообщение от mobile
Посмотреть сообщение

Или в полях есть длинная мантисса, которая на форме скрывается форматом

формат полей с разделителями
всё же из access ищу….



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

19.03.2015, 23:21

4

intersk, попробуйте поискать только целую часть. Если поиск состоится, то можно искать причины

Visual Basic
1
Poisk2 = Int(Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов)

Если же опять ничего, то есть предположение, что числа в екселе на самом деле строки. И тогда надо искать с пробелами.



0



114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

19.03.2015, 23:37

 [ТС]

5

Цитата
Сообщение от mobile
Посмотреть сообщение

попробуйте поискать только целую часть

не найдено, формат вроде не строковый

Миниатюры

Поиск содержимого поля формы Access в ячейках Excel (части или полного)
 

Поиск содержимого поля формы Access в ячейках Excel (части или полного)
 



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

20.03.2015, 00:52

6

Лучший ответ Сообщение было отмечено intersk как решение

Решение

Попробуем иначе. Ниже процедура с 4 параметрами, которую надо выполнять в Access. Можно обращение к процедуре записать сразу после формирования параметров Poisk1 и Poisk2:
— путь к Excel-файлу с его именем
— имя листа
— значение первого параметра поиска
— значение второго параметра поиска
Если у Вас файл *.XLS, то замените в 4-й строке Excel 12.0 на Excel 8.0

Найденное, если будет такое, запишется в Immediate (область отладки в редакторе ВБА). Если пройдет, подскажу, что делать дальше

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub FindInExcel(Path, lst, par1, par2)
    Dim i, rst As Object, s, p
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;hdr=No;]"
    rst.Open s, CurrentProject.Connection
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
            Debug.Print i, p(i)
        End If
    Next
End Sub

Пример обращения к процедуре

Visual Basic
1
FindInExcel "C:TempМойФайл.xlsx", "Лист1", Poisk1, Poisk2



1



intersk

114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

20.03.2015, 09:30

 [ТС]

7

mobile, ваш код сработал верно!
Просьба адаптировать его к моему коду, потому что у меня поиск был организован по другому и шел намного дольше!

Мой код полностью (его смысл чтобы заполнить ComboBox, а потом выбрав нужную строку (по номеру) добавить в эту строку с этим номером, нужные значения в ячейки этой строки)

Ваш код который работает

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Compare Database
Option Explicit
 
Sub FindInExcel(Path, lst, par1, par2)
    Dim i, rst As Object, s, p
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;hdr=No;]"
    rst.Open s, CurrentProject.Connection
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
            Debug.Print i, p(i)
        End If
    Next
End Sub
 
 
Sub ПоискСтрок()
 
Dim Poisk1
Dim Poisk2
 
Poisk1 = Forms!Данные!Номер_платежки
Poisk2 = Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов
 
Call FindInExcel("c:iSKi_XДЕЛА 2015 ОПОСД.xlsx", "Сводная таблица_2015г", Poisk1, Poisk2)
 
End Sub

мой код

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Option Compare Database
Option Explicit
 
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (lpSystemName As String, ByVal lpAccountName As String, sid As Any, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private CompName As String 'объявляем переменную доступную для всего проекта
 
Dim Workbooks As Object
Dim xlWbkEx As Object, xlAppEx As Object
 
Const MyFile = "c:iSKi_XДЕЛА 2015 ОПОСД.xlsx" ' "P:Судебные делаСУДЕБНЫЕ ДЕЛА 2015 ОПОСД.xlsx"
Const L = "Сводная таблица_2015г" 'l = "Лист1" 'можно просто цифрой номер листа указывать
 
Private Sub кнПоискСтроки_Click()
 
Dim spisok, Poisk1, Poisk2
Dim c, firstAddress
 
Poisk1 = Forms!Данные!Номер_платежки
Poisk2 = Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов
 
Me.плСписСтрокЯчеек.ColumnCount = 4
Me.плСписСтрокЯчеек.RowSourceType = "Value List"
 
Set xlAppEx = CreateObject("Excel.Application.15") 'создаем объект Excel, чтобы можно было работать с его методами и свойствами
Set xlWbkEx = xlAppEx.Workbooks.Open(MyFile) ' запускаем процесс excel и открываем файл
 
With xlWbkEx.Worksheets(L).UsedRange.Cells
    Set c = .Find(What:=Poisk1, LookIn:=xlValues, LookAt:=xlPart)
 
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
                 
                 If Not xlWbkEx.Worksheets(L).Rows(c.Row).Find(What:=Poisk2, LookIn:=xlValues, LookAt:=xlPart) Is Nothing Then
                      spisok = c.Row & ";" & xlWbkEx.Worksheets(L).Range("F" & c.Row) & ";" & xlWbkEx.Worksheets(L).Range("G" & c.Row) & ";" & xlWbkEx.Worksheets(L).Range("J" & c.Row)
                      Me.плСписСтрокЯчеек.AddItem Item:=spisok
                 End If
            
            Set c = .Find(What:=Poisk1, After:=c, LookIn:=xlValues, LookAt:=xlPart)
        
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
 
'xlAppEx.Visible = True 'запускаем приложение Excel, можно сдвинуть вниз
'xlAppEx.ScreenUpdating = False    ' отключаем обновление экрана
 
xlWbkEx.Close True
Set xlAppEx = Nothing
Set xlWbkEx = Nothing
 
Call StatusBarNo
 
Me.НадпПоискЗавершен.Visible = True
 
End Sub

в прикрепленном файле этот код для удобства редактирования в текстовом файле

Вложения

Тип файла: txt поиск вариант 2.bas.txt (3.0 Кб, 3 просмотров)



0



intersk

114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

20.03.2015, 14:02

 [ТС]

8

mobile, дополнение предыдущего сообщения — сам попытался адаптировать свой код. Ошибка — не происходит заполнение списка в строке

Visual Basic
1
spisok = i.Row & ";" & xlWbkEx.Worksheets(L).Range("F" & i.Row) & ";" &......

То есть не определяется номер строки. Я посчитал что переменная i это и есть номер строки

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Option Compare Database
Option Explicit
 
 
Dim Workbooks As Object
Dim xlWbkEx As Object, xlAppEx As Object
 
Const MyFile = "c:iSKi_XДЕЛА 2015 ОПОСД.xlsx" 'Const MyFile = "P:Судебные делаСУДЕБНЫЕ ДЕЛА 2015 ОПОСД.xlsx"
Const L = "Сводная таблица_2015г" 'l = "Лист1" 'можно просто цифрой номер листа указывать
 
Sub FindInExcel(Path, lst, par1, par2)
    
Dim spisok
 
Forms!Список!плСписСтрокЯчеек.ColumnCount = 4
Forms!Список!плСписСтрокЯчеек.RowSourceType = "Value List"
 
Set xlAppEx = CreateObject("Excel.Application.15") 'создаем объект Excel, чтобы можно было работать с его методами и свойствами
Set xlWbkEx = xlAppEx.Workbooks.Open(MyFile) ' запускаем процесс excel и открываем файл
 
 
Dim i, rst As Object, s, p
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;hdr=No;]"
    rst.Open s, CurrentProject.Connection
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
    
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
 
                spisok = i.Row & ";" & xlWbkEx.Worksheets(L).Range("F" & i.Row) & ";" & xlWbkEx.Worksheets(L).Range("G" & i.Row) & ";" & xlWbkEx.Worksheets(L).Range("J" & i.Row)
                
                Forms!Список!плСписСтрокЯчеек.AddItem Item:=spisok
 
            Debug.Print i, p(i)
            Debug.Print i
        
        End If
 
    Next
 
xlWbkEx.Close True
Set xlAppEx = Nothing
Set xlWbkEx = Nothing
 
End Sub
 
Sub ПоискСтрок()
 
Dim Poisk1
Dim Poisk2
 
Poisk1 = Forms!Данные!Номер_платежки
Poisk2 = Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов
 
Call FindInExcel("c:iSKi_XДЕЛА 2015 ОПОСД.xlsx", "Сводная таблица_2015г", Poisk1, Poisk2)
 
End Sub

Добавлено через 2 часа 9 минут
mobile, извините что забросал сообщениями — немного сам разобрался и код теперь делает то, что мне нужно.
Можно ли его ещё как-то оптимизировать?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Option Compare Database
Option Explicit
 
Dim Workbooks As Object
Dim xlWbkEx As Object, xlAppEx As Object
 
Const MyFile = "c:iSKi_XДЕЛА 2015 ОПОСД.xlsx" 'Const MyFile = "P:Судебные делаСУДЕБНЫЕ ДЕЛА 2015 ОПОСД.xlsx"
Const L = "Сводная таблица_2015г" 'l = "Лист1" 'можно просто цифрой номер листа указывать
 
Sub ПоискСтрок()
 
Dim Poisk1, Poisk2
 
Poisk1 = Forms!Данные!Номер_платежки
Poisk2 = Forms!Данные!Сумма_долга + Forms!Данные!Сумма_процентов
 
Call FindInExcel("c:iSKi_XДЕЛА 2015 ОПОСД.xlsx", "Сводная таблица_2015г", Poisk1, Poisk2)
 
End Sub
 
Sub FindInExcel(Path, lst, par1, par2)
    
Dim i, rst As Object, s, p
Dim spisok As String
Dim irow As Integer
    
Forms!Список!плСписСтрокЯчеек.ColumnCount = 4
Forms!Список!плСписСтрокЯчеек.RowSourceType = "Value List"
    
Set xlAppEx = CreateObject("Excel.Application.15") 'создаем объект Excel, чтобы можно было работать с его методами и свойствами
Set xlWbkEx = xlAppEx.Workbooks.Open(MyFile) ' запускаем процесс excel и открываем файл
    
    
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;hdr=No;]"
    rst.Open s, CurrentProject.Connection
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
    
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
            
            irow = i + 1
            spisok = irow & ";" & xlWbkEx.Worksheets(L).Range("F" & irow) & ";" & xlWbkEx.Worksheets(L).Range("G" & irow) & ";" & xlWbkEx.Worksheets(L).Range("J" & irow)
            Forms!Список!плСписСтрокЯчеек.AddItem Item:=spisok
 
            'Debug.Print irow, i, p(i)
        
        End If
    Next
 
xlWbkEx.Close True
Set xlAppEx = Nothing
Set xlWbkEx = Nothing
 
End Sub



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

20.03.2015, 14:47

9

Лучший ответ Сообщение было отмечено intersk как решение

Решение

Не нужно вообще открывать ексель. Вся необходимая инфа уже есть в запросе

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub FindInExcel(Path, lst, par1, par2) 'Поиск по нескольким параметрам в екселе
    Dim i, rst As Object, s, p, r
    Dim nRow
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;IMEX=1;hdr=no;]"
    rst.Open s, CurrentProject.Connection, 1 'adOpenKeyset
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
    Debug.Print rst.RecordCount
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
            nRow = i + 1
            r = Split(p(i), "|")
            Forms!Список!плСписСтрокЯчеек.AddItem Item:=nRow & ";" & r(5) & ";" & r(6) ";" & r(9)
            Exit For
        End If
    Next
End Sub



1



114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

20.03.2015, 15:53

 [ТС]

10

mobile, файл Excel, с которым работает код это сетевой файл для работы нескольких пользователей. Поэтому мне надо как-то заблокировать файл от изменений на момент поиска, на момент работы кода.
Моя идея — открыть файл, тогда другим пользователям он будет недоступен для изменения (установлены ограничение на одновременное редактирование).
Как-то ещё можно пометить файл на запрет изменения, на блокировку?
вы умеете работать с таблицами напрямую, это круто! я пока этого не умею.

Добавлено через 7 минут
При тестировании новый код нашел только одну строку (это неправильно). Мой код с открытием Excel ищет две строки (что правильно). Где-то опечатка в коде или цикл прерывается….

Добавлено через 7 минут
обнаружил Exit For , он останавливал поиск на первом значении

Добавлено через 8 минут
ищет и выводит только по тестовой (упрощенной) записи, по реальной ищет (это видно по отладочному окну — там выводиться количество строк столько раз, сколько найдено строк, у вас есть Debug.print в коде), но вот список почему то не заполняется. Вроде и кавычки не причем…



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

20.03.2015, 19:22

11

Исправлю некоторые ошибки и дополню программу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub FindInExcel(Path, lst, par1, par2, CleanSource as Boolean) 'Поиск по нескольким параметрам в екселе
'CleanSource - параметр заполнения поля со списком. 
'Если CleanSource=True, то вновь найденные строки добавляются к имеющимся. 
'Если CleanSource=False, то источник списка очищается перед заполнением
    Dim i, rst As Object, s, p, r, rs, frs
    Dim nRow
    Set rst = CreateObject("ADODB.recordset")
    s = "select * from [" & lst & "$] in '" & Path & "'[Excel 12.0;IMEX=1;hdr=no;]"
    rst.Open s, CurrentProject.Connection, 1 'adOpenKeyset
    p = Split(rst.GetString(, , "|", vbCrLf), vbCrLf)
'    Debug.Print rst.RecordCount
    If CleanSource Then 
        frs=Forms!Список!плСписСтрокЯчеек.RowSource & ";"
    Else
        frs=""
    End If
    For i = 0 To UBound(p)
        If p(i) Like "*" & par1 & "*" And p(i) Like "*" & par2 & "*" Then
            nRow = i + 1
            r = Split(p(i), "|")
            rs=nRow & ";" & r(5) & ";" & r(6) & ";" & r(9)
            frs=frs & rs & ";"
        End If
    Next
    Forms!Список!плСписСтрокЯчеек.RowSource=frs
End Sub



1



114 / 4 / 0

Регистрация: 07.09.2014

Сообщений: 329

20.03.2015, 23:22

 [ТС]

12

mobile,

Цитата
Сообщение от mobile
Посмотреть сообщение

Исправлю некоторые ошибки и дополню программу

тестирую… добавил в Call FindInExcel(…….., False) всё находит!
понял почему не шел поиск в некоторых записях — у меня в поле «платежное_поручение» либо 3 или 4 цифры. 4 цифры ищет, а 3 не ищет. Потому что указана маска (надо чтобы просто было введено не больше 4 цифр, а проверку «нажатие клавиш» только цифры не больше 4 не знаю как сделать, не проверку, а не дать внести 5 цифру….). Появляющаяся звездочка мешает.

Миниатюры

Поиск содержимого поля формы Access в ячейках Excel (части или полного)
 

Поиск содержимого поля формы Access в ячейках Excel (части или полного)
 



0



Поле со списком в access может стать полем для поиска. Поисковое поле со списком в Access может сильно облегчить вам работу с данными.

Существует несколько способов создания поискового поля, самый распространённый из них – при помощи мастера для элемента управления «Поле со списком».

как сделать форму поиска в access

Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):

как сделать форму поиска в access

Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):

как сделать форму поиска в access

Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».

На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».

как сделать форму поиска в access

Макрос состоит всего из двух команд:

как сделать форму поиска в access

как сделать форму поиска в access

Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.

По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.

как сделать форму поиска в access

Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:

как сделать форму поиска в access

Типичной задачей является организация более удобного чем последовательный перебор перехода по записям в форме, задавая значения каких-то полей записи, для ее поиска по ним. Например, в форме с информацией для большого количества сотрудников хотелось бы быстро перейти к карточке сотрудника с известной фамилией. Это можно сделать с помощью специального списка для выбора фамилии.

В разд. «Создание элементов управления с помощью панели элементов»гл. 5 мы упомянули о том, что при создании списка/поля со списком с помощью Мастера в форме, привязанной к источнику данных, Access предлагает сделать его средством перехода к нужной записи в форме. Рассмотрим пример создания такого списка:

  1. Откройте в режиме Конструктора форму «Сотрудники» (Employees) базы данных «Борей» (Northwind).
  2. Убедитесь, что на панели инструментов Панель элементов (Toolbox) нажата кнопка Мастера (Control Wizards). Нажмите кнопку Поле со списком (Combo Box) и разместите новый элемент в разделе заголовка формы, начертив мышью прямоугольник нужного размера.
  3. Появится первое диалоговое окно Мастера списков. Выберите переключатель Поиск записи в форме на основе значения, которое содержит поле со списком (Find a record on my form based on the value I selected in my combo box) и нажмите кнопку Далее (Next).
  4. В следующем диалоговом окне мастера выберите поля, которые образуют столбцы элементов списка: «КодСотрудника» (EmployeeID), «Фамилия» (LastName) и «Имя» (FirstName). Нажмите кнопку Далее (Next).
  5. В следующем диалоговом окне Мастера списков предлагается настроить ширину столбцов списка. Столбец с ключевым полем «КодСотрудника» рекомендуется сделать скрытым (установите флажок Скрыть ключевой столбец (Hide key column)). Оставьте предложенные параметры и нажмите кнопку Далее (Next).
  6. В последнем диалоговом окне мастера требуется ввести текст метки, поясняющей назначение списка. Введите текст: Фамилия: и нажмите кнопку Готово (Finish).

Форма готова. Откройте ее в режиме Формы и убедитесь, что при выборе желаемых фамилии и имени в созданном поле со списком осуществляется переход к информации об этом сотруднике. Такое поле со списком удобно и тем, что значение в нем можно не только выбрать, но и просто ввести первые буквы фамилии — необходимый элемент будет выбран автоматически. Останется нажать клавишу , чтобы отобразить информацию о выбранном сотруднике.

Действие созданного поля со списком обеспечивается процедурой обработки события После обновления (After Update), сгенерированной мастером (см. также разд. «Создание процедур обработки событий»гл. 13).

Создадим двумя способами кнопку «Поиск фамилии» для быстрого поиска покупателя по фамилии в форме “Покупатель”. Первый способ – использование стандартных возможностей Access . Второй способ – использование макроса.

Откроем форму «Покупатель» в режиме конструктора. С панели элементов перенесем пиктограмму Кнопка в нижнюю часть формы. Будет вызван мастер Создание кнопки. Выберем режимы Категории: Переходы по записями,  Действия: Найти запись. Затем на кнопке разместим текст «Поиск фамилии», введя соответствующий текст в поле Текст. Далее в качестве названия кнопки введем ФИО. При работе с формой “Покупатель” при нажатии кнопки будет вызываться окно стандартного поиска и замены Access.

Замечание. Если не запускается мастер создания кнопок, его надо включить на панели инструментов.

В результате на форме появится кнопка «Поиск фамилии», при нажатии на которую выскакивает стандартное окно «Поиск и замена». При поиске кроме образца надо указать поле, в котором необходимо найти данные, а также указать степень совпадения.

как сделать форму поиска в access

Использование макроса

Для примера создадим подобную кнопку поиска для формы «Товар». Создадим поле для ввода начала названия товара. Откроем эту форму в режиме конструктора и перетащим туда пиктограмму Поле в нижнюю часть формы. Вызовем список свойств правой части поля (первоначально оно имеет обозначение Свободный) щелчком правой кнопки мыши и заменим Имя на Поиск – данное имя в дальнейшем будет использоваться. В строке состояния (свойство Текст строки состояния) введем текст: «Введите название товара или его первые буквы». Вызовем список свойств для левой части Поля (Надписи) и заменим Подпись также на Поиск. Закроем форму.

Дальше создадим макрос «Поиск». Он будет состоять из трех макрокоманд. Откроем вкладку Созданиенажмем кнопку Макрос. С помощью команд панели инструментов  Имена макросов включим дополнительный столбец Имя макроса. Введем туда в первой строке слово Поиск. В колонке Макрокоманда выберем макрокоманду КЭлементуУправления. В области Аргументы макрокоманды в нижней части окна в качестве Имени элемента введем текст (в этом поле таблицы ТОВАР будет искаться товар с указанным именем). Во второй строчке во втором столбце Макрокоманда выберем из списка макрокоманд команду НайтиЗапись. В аргументах макрокоманды введем с клавиатуры в поле Образец поиска текст = (т.е. будет разыскиваться в поле Наименование таблицы ТОВАР запись, начало названия товара в которой совпадает с введенным в поле Поиск значением). В поле Совпадение выберем из списка элемент «С начала поля». Остальные элементы оставим без изменения. В третьей строке во втором столбце выберем снова макрокоманду КэлементуУправления, в аргументах макрокоманды для Имени элемента введем . Квадратные скобки вводить обязательно!

Созданный нами макрос будет работать следующим образом. Вначале выбирается поле Наименование таблицы ТОВАР для организации поиска. Затем по образцу из поля Поиск формы осуществляется поиск первой по порядку нужной нам записи. Затем фокус опять передается в поле Поиск для возможного продолжения поиска.

Закроем макрос и сохраним его с именем «Поиск товара». Теперь опять откроем форму «Товар» и перетащим туда макрос «Поиск товара». Появится кнопка с соответствующей подписью. Для поиска товара нужно ввести первые буквы названия товара, нажать кнопку «Поиск», будет найдена нужная запись (если она существует). Обратите внимание, то если ничего не вводить в окне Поиск, то при нажатии кнопки будет выдано сообщение об ошибке! В СУБД Access 2007 существуют способы обработки подобных ситуаций – макросы с условиями, но мы их рассматривать не будем.

Но таким образом можно найти лишь первую запись на введенную букву. Нетрудно организовать еще одну кнопку «Поиск далее». Для этого сделаем копию макроса «Поиск товара» через буфер обмена и назовем его «Поиск далее». С помощью конструктора изменим в новом макросе в аргументе строки НайтиЗапись свойство Первое вхождение с Да на Нет, Область поиска – Вниз. Теперь перетащим новый макрос в режиме конструктора в форму «Товар». Теперь будет идти поиск и последующих записей с тем же началом в поле Наименование.

как сделать форму поиска в access

Задание

  1. Создать в форме «Покупатель» аналогичные кнопки для поиска покупателя по началу фамилии.
  2. Создать в форме «Заказ» кнопку поиска записей, имеющих совпадающую с вводимой в специальном поле дату.

Содержание

  • 1 Change column data case
  • 2 Finding a Record Based on Multiple Criteria
  • 3 Finding a Specific Record in a Recordset
  • 4 Finding Records Using the Find Method
  • 5 Finding the Record Position
  • 6 Find record by using Recordset.FindFirst
  • 7 NoMatch property in Recordset
  • 8 Select specific column in select statement
  • 9 Simple Select statement
  • 10 SQL with where clause

Change column data case

   <source lang="vb">

Sub exaRecordsetEdit()

   Dim db As Database
   Dim rs As Recordset
   
   Set db = CurrentDb
   Set rs = db.OpenRecordset("Employees")
   
   rs.MoveFirst
   Do While Not rs.EOF
      rs.Edit
      rs!Title = UCase$(rs!Title)
      rs.Update
      rs.MoveNext
   Loop
   
   rs.Close
   

End Sub

</source>
   
  

Finding a Record Based on Multiple Criteria

   <source lang="vb">

Sub Find_WithFilter()

  Dim conn As ADODB.Connection
  Dim rst As ADODB.Recordset
  Set conn = New ADODB.Connection
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & _
     "mydb.mdb"
  Set rst = New ADODB.Recordset
  rst.Open "Employees", conn, adOpenKeyset, adLockOptimistic
  rst.Filter = "TitleOfCourtesy ="Ms." and Country ="USA""
  Do Until rst.EOF
     Debug.Print rst.Fields("LastName").Value
     rst.MoveNext
  Loop
  rst.Close
  Set rst = Nothing
  conn.Close
  Set conn = Nothing

End Sub

</source>
   
  

Finding a Specific Record in a Recordset

   <source lang="vb">

Sub FindProject()

   Dim strSQL As String
   Dim rst As ADODB.Recordset
   Set rst = New ADODB.Recordset
   rst.ActiveConnection = CurrentProject.Connection
   rst.CursorType = adOpenStatic
   rst.Open "Select * from Employees"
   "Attempt to find a specific project
   strSQL = "[EmployeeID] = " & 1
   rst.Find strSQL
   "Determine if the specified project was found
   If rst.EOF Then
       msgBox lngValue & " Not Found"
   Else
       msgBox lngValue & " Found"
   End If
   rst.Close
   Set rst = Nothing

End Sub

</source>
   
  

Finding Records Using the Find Method

   <source lang="vb">

Sub Find_WithFind()

  Dim conn As ADODB.Connection
  Dim rst As ADODB.Recordset
  Set conn = New ADODB.Connection
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "mydb.mdb"
  Set rst = New ADODB.Recordset
  rst.Open "Employees", conn, adOpenKeyset, adLockOptimistic
  rst.Find "TitleOfCourtesy ="Ms.""
  Do Until rst.EOF
     Debug.Print rst.Fields("LastName").Value
     rst.Find "TitleOfCourtesy ="Ms."", SkipRecords:=1, _
         SearchDirection:=adSearchForward
  Loop
  rst.Close
  Set rst = Nothing
  conn.Close
  Set conn = Nothing

End Sub

</source>
   
  

Finding the Record Position

   <source lang="vb">

Sub FindRecordPosition()

  Dim conn As ADODB.Connection
  Dim rst As ADODB.Recordset
  Dim strConn As String
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
     "Data Source=" & CurrentProject.Path & _
     "mydb.mdb"
  Set conn = New ADODB.Connection
  conn.Open strConn
  Set rst = New ADODB.Recordset
  With rst
     .Open "Select * from Employees", conn, adOpenKeyset, _
         adLockOptimistic, adCmdText
  Debug.Print .AbsolutePosition
     .Move 3 " move forward 3 records
     Debug.Print .AbsolutePosition
     .MoveLast " move to the last record
     Debug.Print .AbsolutePosition
     Debug.Print .RecordCount
     .Close
  End With
  Set rst = Nothing
  conn.Close
  Set conn = Nothing

End Sub

</source>
   
  

Find record by using Recordset.FindFirst

   <source lang="vb">

Sub findrecorder()

   Dim dbNorthwind As DAO.Database
   Dim dbPath As String
   DbPath = CurrentProject.Path & "mydb.mdb"
   Set dbNorthwind = OpenDatabase(dbPath)
   
   Dim rsEmployees As DAO.Recordset
   Dim rsCustomers As DAO.Recordset
   Set rsEmployees = dbNorthwind.OpenRecordset("Employees", dbOpenTable)
   Set rsCustomers = dbNorthwind.OpenRecordset("Customers", dbOpenTable)
   rsCustomers.MoveLast
   numCustomers = rsCustomers.RecordCount
   With rsEmployees
       .FindFirst "City = "Seattle""
       If .NoMatch Then
           MsgBox ("No Records Found!")
           .MoveFirst
       Else
           MsgBox ("Found "& .Fields(2).Value & " "& .Fields(1).Value & _
                "in Seattle")
       End If
   End With

End Sub

</source>
   
  

NoMatch property in Recordset

   <source lang="vb">

Sub SeekByPrice(curPrice As Currency)

 Dim db As Database
 Dim rec As Recordset
 Dim strSQL As String
 strSQL = "tblSales"
 Set db = CurrentDb()
 Set rec = db.OpenRecordset(strSQL)
 rec.Index = "AmountPaid"
 rec.Seek "=", curPrice
 
 If rec.NoMatch = True Then
   Debug.Print "No orders cost " & FormatCurrency(curPrice)
 Else
   Debug.Print "Order No. " & rec("SalesID") & " placed on " & _
        FormatDateTime(rec("DateOrdered"), vbLongDate) & _
        " cost " & FormatCurrency(rec("AmountPaid"))
 End If
 rec.Close

End Sub

</source>
   
  

Select specific column in select statement

   <source lang="vb">

Sub MyFirstConnection()

   Dim myConnection As ADODB.Connection
   Dim myRecordset As ADODB.Recordset
   Dim strSQL As String
   
   strSQL = "SELECT txtCustFirstName, txtCustLastName FROM tblCustomer"
   Set myConnection = CurrentProject.Connection
   
   Set myRecordset = New ADODB.Recordset
   myRecordset.Open strSQL, myConnection
   
   Do Until myRecordset.EOF
      Debug.Print myRecordset.Fields("txtCustFirstName") & " " & _
                  myRecordset.Fields("txtCustLastName")
      myRecordset.MoveNext
   Loop
   myRecordset.Close
   myConnection.Close
   Set myConnection = Nothing
   Set myRecordset = Nothing

End Sub

</source>
   
  

Simple Select statement

   <source lang="vb">

Sub MyFirstConnection()

   Dim myConnection As ADODB.Connection
   Dim myRecordset As ADODB.Recordset
   Dim strSQL As String
   
   strSQL = "SELECT * FROM tblCustomer ORDER BY txtCustLastName"
   
   Set myConnection = CurrentProject.Connection
   
   Set myRecordset = New ADODB.Recordset
   myRecordset.Open strSQL, myConnection
   
   Do Until myRecordset.EOF
      Debug.Print myRecordset.Fields("txtCustFirstName"), _
                  myRecordset.Fields("txtCustLastName")
      myRecordset.MoveNext
   Loop
   myRecordset.Close
   myConnection.Close
   Set myConnection = Nothing
   Set myRecordset = Nothing

End Sub

</source>
   
  

SQL with where clause

   <source lang="vb">

Sub MyFirstConnection()

   Dim myConnection As ADODB.Connection
   Dim myRecordset As ADODB.Recordset
   Dim strSQL As String
   Dim strSearch As String
   
   strSearch = "Joe"
   
   strSQL = "SELECT txtCustFirstName, txtCustLastName FROM tblCustomer" & _
             " WHERE txtCustLastName = " & " "" & strSearch & """
   
   Set myConnection = CurrentProject.Connection
   
   Set myRecordset = New ADODB.Recordset
   myRecordset.Open strSQL, myConnection
   
   Do Until myRecordset.EOF
      Debug.Print myRecordset.Fields("txtCustFirstName"), _
                  myRecordset.Fields("txtCustLastName")
      myRecordset.MoveNext
   Loop
   myRecordset.Close
   myConnection.Close
   Set myConnection = Nothing
   Set myRecordset = Nothing

End Sub

</source>

03. С помощью функции GetRow можно организовать поиск в таблицы без применения DAO или ADO. Если таблица небольшая считываем данные в массив и поиск организуем уже в нем. Все работает быстро, т.к. не надо обращаться к функциям чтения записей.

Option Compare Database
Option Explicit
Dim myTable As Variant 'Массив данных из таблицы

'==============================================================
'   Заполнение массива
'   myTable(x,y)
'       х - это поля
'       y - это строки
Private Sub Form_Open(Cancel As Integer)
        myTable = funGetRows 'Заполняем массив
        myColumn_AfterUpdate 'Отображаем данные
End Sub

'==============================================================
'   Обновление строки
Private Sub myRow_AfterUpdate()
    Me.myColumnRow.Caption = "Данные в ячейке ("  _
        Me.myColumn  ","  _
        Me.myRow  "): "  _
        myTable(Me.myColumn, Me.myRow)
End Sub

'==============================================================
'   Обновление поля
Private Sub myColumn_AfterUpdate()
    myRow_AfterUpdate
End Sub

'   Заполнение массива
Public Function funGetRows() As Variant
Dim dbs As Database, rst As Recordset, i As Integer

    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("SELECT * FROM [Мои книги] ORDER BY [Книга]")
    If rst.RecordCount  0 Then
        With rst
            .MoveLast 'Заполняем запрос
            .MoveFirst 'Устанавливаем строку
            i = rst.RecordCount 'определяем число записей
            funGetRows = rst.GetRows(i) 'Прочитываем данные
        End With
    End If
    rst.Close 'Закрываем запрос
    Set dbs = Nothing 'Закрываем базу
End Function

Поле со списком в access может стать полем для поиска. Поисковое поле со списком в Access может сильно облегчить вам работу с данными.

Существует несколько способов создания поискового поля, самый распространённый из них – при помощи мастера для элемента управления «Поле со списком».

Как сделать поиск в access?

Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):

Как сделать поиск в access?

Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):

Как сделать поиск в access?

Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».

На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».

Как сделать поиск в access?

Макрос состоит всего из двух команд:

Как сделать поиск в access?
Как сделать поиск в access?

Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.

По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.

Как сделать поиск в access?

Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:

Как сделать поиск в access?

  • 1.2K
  • 23 марта 2005 года
  • Kalitkin

108 / / 05.03.2004

  1. Цитата:
  2. Originally posted by nut_y_z И как его применить
  3. сначал коннектишься к базе данных
  4. CDatebase db;
  5. CRecordset* prs;

db.OpenEx(«DBQ=db.mdb;Driver={Microsoft Access Driver (*.mdb)}»)

  • prs = new CRecordset(&db);
  • а потом все в твоих руках, например нужен чел с фамилией Робинович:
  • клипаем запрос
  • CString s, name(«Робинович»), surname;
  • s.Format(«SELECT * FROM mans WHERE surname=’%s’ ORDER BY id», name);
  • теперь в объект рекордсета выбираем данные из базы данных в соответствии с запросом
  • prs->Open(CRecordset::snapshot, s);
  • prs->GetFieldValue(«surname», surname); prs->Close();

Создадим двумя способами кнопку «Поиск фамилии» для быстрого поиска покупателя по фамилии в форме “Покупатель”. Первый способ – использование стандартных возможностей Access . Второй способ – использование макроса.

Использование стандартных возможностей Access

Откроем форму «Покупатель» в режиме конструктора. С панели элементов перенесем пиктограмму Кнопка в нижнюю часть формы. Будет вызван мастерСоздание кнопки.

 Выберем режимы Категории: Переходы по записями,  Действия: Найти запись. Затем на кнопке разместим текст «Поиск фамилии», введя соответствующий текст в поле Текст. Далее в качестве названия кнопки введем ФИО.

При работе с формой “Покупатель” при нажатии кнопки будет вызываться окно стандартного поиска и замены Access.

Замечание. Если не запускается мастер создания кнопок, его надо включить на панели инструментов.

В результате на форме появится кнопка «Поиск фамилии», при нажатии на которую выскакивает стандартное окно «Поиск и замена». При поиске кроме образца надо указать поле, в котором необходимо найти данные, а также указать степень совпадения.

Как сделать поиск в access?

Использование макроса

Для примера создадим подобную кнопку поиска для формы «Товар». Создадим поле для ввода начала названия товара. Откроем эту форму в режиме конструктора и перетащим туда пиктограмму Полев нижнюю часть формы.

Вызовем список свойств правой части поля (первоначально оно имеет обозначение Свободный) щелчком правой кнопки мыши и заменим Имя на Поиск – данное имя в дальнейшем будет использоваться. В строке состояния (свойство Текст строки состояния) введем текст: «Введите название товара или его первые буквы».

Вызовем список свойств для левой части Поля(Надписи) и заменим Подпись также на Поиск. Закроем форму.

Дальше создадим макрос «Поиск». Он будет состоять из трех макрокоманд. Откроем вкладку Созданиенажмем кнопку Макрос.С помощью команд панели инструментов  Имена макросоввключим дополнительный столбец Имя макроса. Введем туда в первой строке слово Поиск. В колонке Макрокоманда выберем макрокоманду КЭлементуУправления.

В области Аргументы макрокоманды в нижней части окна в качестве Имени элемента введем текст (в этом поле таблицы ТОВАР будет искаться товар с указанным именем). Во второй строчке во втором столбце Макрокоманда выберем из списка макрокоманд команду НайтиЗапись. В аргументах макрокоманды введем с клавиатуры в поле Образец поиска текст = (т.е.

будет разыскиваться в поле Наименование таблицы ТОВАР запись, начало названия товара в которой совпадает с введенным в поле Поиск значением). В поле Совпадение выберем из списка элемент «С начала поля». Остальные элементы оставим без изменения.

В третьей строке во втором столбце выберем снова макрокоманду КэлементуУправления, в аргументах макрокоманды для Имени элемента введем . Квадратные скобки вводить обязательно!

Созданный нами макрос будет работать следующим образом. Вначале выбирается поле Наименование таблицы ТОВАР для организации поиска. Затем по образцу из поля Поискформы осуществляется поиск первой по порядку нужной нам записи. Затем фокус опять передается в поле Поискдля возможного продолжения поиска.

Закроем макрос и сохраним его с именем «Поиск товара». Теперь опять откроем форму «Товар» и перетащим туда макрос «Поиск товара». Появится кнопка с соответствующей подписью.

Для поиска товара нужно ввести первые буквы названия товара, нажать кнопку «Поиск», будет найдена нужная запись (если она существует).

Обратите внимание, то если ничего не вводить в окне Поиск, то при нажатии кнопки будет выдано сообщение об ошибке! В СУБД Access 2007 существуют способы обработки подобных ситуаций – макросы с условиями, но мы их рассматривать не будем.

Но таким образом можно найти лишь первую запись на введенную букву. Нетрудно организовать еще одну кнопку «Поиск далее». Для этого сделаем копию макроса «Поиск товара» через буфер обменаи назовем его «Поиск далее».


С помощью конструктора изменим в новом макросе в аргументе строки НайтиЗапись свойство Первое вхождение с Да на Нет, Область поиска – Вниз. Теперь перетащим новый макрос в режиме конструктора в форму «Товар».

Теперь будет идти поиск и последующих записей с тем же началом в поле Наименование.

Задание

  1. Создать в форме «Покупатель» аналогичные кнопки для поиска покупателя по началу фамилии.
  2. Создать в форме «Заказ» кнопку поиска записей, имеющих совпадающую с вводимой в специальном поле дату.

Источник: http://word-office.ru/kak-sdelat-poisk-v-access.html

Запросы в Access 2013 с помощью элементов формы

Создание формы Пошук

Создадим пустую форму. Для этого выберем в меню вкладку Создание и кликнем на Пустая форма.

Как сделать поиск в access?

Получим форму в режиме макета. Кликнем правой кнопкой мышки по форме и выберем в контекстном меню Свойства формы (или Работа с макетами форм — Конструктор — Сервис — Страница свойств).

Как сделать поиск в access?

Справа появится Окно свойств. В выпадающем списке строки Источник записей вкладки Данные выберем Для форми пошуку

Как сделать поиск в access?

После этого в сервисе выберем Добавить поля. Окно свойств сменится на Список полей.

Как сделать поиск в access?

Добавим на форму следующие элементы (перетягивание мышкой из списка полей на форму):

Дата (дважды), Найменування клієнта, Адреса, Телефон, Рахунок, Найменування товару, Ціна (дважды), Кількість (дважды), Передоплата, Сума передоплати (дважды).

Как сделать поиск в access?

  • Изменим надписи для даты, цены, количества и суммы предоплаты.
  • Дата:Дата з:
  • Дата:Дата по:
  • Ціна:Ціна від:
  • Ціна:Ціна до:
  • Кількість:Кількість від:
  • Кількість:Кількість до:
  • Сума передоплати:Сума передоплати від:
  • Сума передоплати:Сума передоплати до:

Выделим поле напротив надписи Дата з:. В инструментах конструктора форм выберем вкладку Конструктор. Откроем окно свойств для выделенного элемента (Сочетание клавиш ALT+ENTER; Конструктор — Сервис — Страница свойств или в контекстном меню выбрать Свойства)

В окне свойств перейдем на вкладку Другие и в строке Имя впишем Дата з

Как сделать поиск в access?

Перейдем на вкладку Данные и в строке Данные сотрем Дата

Как сделать поиск в access?

В строке Значение по умолчанию впишем #02.01.2010#; в строке Правило проверки впишем >#01.01.2010# и в строке Сообщение об ошибкеВведіть дату після 1 січня 2010 року! (см. свойства таблицы Данні про замовлення)

Аналогично поступим и с другими полями формы.

Дата по: вписываем имя Дата по в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем Date(); в строке Правило проверки впишем >#01.01.2010# и в строке Сообщение об ошибкеВведіть дату після 1 січня 2010 року!.

  1. Найменування клієнта:, Адреса:, Телефон:, Рахунок:Найменування товару: очищаем строку Данные вкладки Данные.
  2. Ціна від: вписываем имя Ціна від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибкеВведіть суму > нуля!
  3. Ціна до: вписываем имя Ціна до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную цену); в строке Правило проверки впишем >0 и в строке Сообщение об ошибкеВведіть суму > нуля!
  4. Кількість від: вписываем имя Кількість від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибкеВведіть кількість > нуля!
  5. Кількість до: вписываем имя Кількість до в строке Имя вкладки Другие;очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальное количество); в строке Правило проверки впишем >0 и в строке Сообщение об ошибкеВведіть кількість > нуля!
  6. Передоплата: очищаем строку Данные вкладки Данные.

Сума передоплати від: вписываем имя Сума передоплати від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем . ; в строке Правило проверки впишем >=0 и в строке Сообщение об ошибкеВведіть суму, яка більше або дорівнює нулеві!

Сума передоплати до: вписываем имя Сума передоплати до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную сумму предоплаты); в строке Правило проверки впишем >=0 и в строке Сообщение об ошибкеВведіть суму, яка більше або дорівнює нулеві!

Преобразуем поле Найменування клієнта в поле со списком (контекстное меню поля)

Как сделать поиск в access?

Выполним следующее: Окно свойствДанныеИсточник строкДовідник клієнтівНайменування клієнта — закрыть построитель запросов и подтвердить сохранение.

Аналогично преобразуем в поле со списком Найменування товару. В качестве источника выбрать Найменування товару.

В результате получим

Как сделать поиск в access?

Закроем и сохраним форму под именем Пошук

Источник: https://Bondarenko.dn.ua/informatics/zaprosy-v-access-2013-s-pomoshh-yu-e-lementov-formy/

Создание запросовв базе данных Access 2007

В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.

В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).

Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.

Кроме того, в СУБД Access 2007 существует множество средств для поиска и отображения информации, которая хранится в базе данных. Данные в таблицах можно отсортировать на основе любого поля или комбинации полей. Для извлечения из базы данных необходимых записей можно отфильтровать таблицу, применив средства фильтрации.

На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.

Как сделать поиск в access? Рис. 1.

Рассмотрим создание запроса на выборку с помощью Конструктора

Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).

Как сделать поиск в access? Рис. 2.

Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.

Как сделать поиск в access? Рис. 3.

В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).

Как сделать поиск в access? Рис. 4.

Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.

Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.

При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.

Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).

Как сделать поиск в access? Рис. 5.

Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).

Как сделать поиск в access? Рис. 6.

Далее создаем параметрический query или query с параметрами.

Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию].

В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.

Закрыть окно запроса на выборку. На вопрос о сохранении изменения ответить — Да и ввести имя запроса, например «Параметрический query». Запустим Параметрический query, дважды щелкнув на нем. В открывшемся на экране окне диалога «Введите значение параметра» надо ввести фамилию студента, информацию об успеваемости которого необходимо получить (рис. 8).

Как сделать поиск в access? Рис. 7.

Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).

Как сделать поиск в access? Рис. 8.

В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.

Далее >>> Раздел: 2.4.6. Создание форм для ввода данных в таблицы базы данных Access 2007

Источник: https://www.lessons-tva.info/edu/inf-access/access_5.html

Поисковое поле со списком в Access

Поле со списком в access может стать полем для поиска. Поисковое поле со списком в Access может сильно облегчить вам работу с данными.

Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».

  1. На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».
  2. Как сделать поиск в access?
  3. Макрос состоит всего из двух команд:
  4. Как сделать поиск в access?
  5. Как сделать поиск в access?

Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.

По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.

Источник: https://accesshelp.ru/poiskovoe-pole-so-spiskom-v-access/

Поиск, сортировка, индексирование базы данных, создание форм и отчетов в Access

Поиск данных

В Access существует множество способов отобрать только требуемые данные при выполнении поиска конкретного значения, одной записи или группы записей.

С помощью диалогового окна Поиск легко найти конкретные записи или определенные значения в полях. При обнаружении каждого вхождения требуемого элемента выполняется перемещение по записям. Если нужно заменить конкретные обнаруженные при поиске значения, следует воспользоваться диалоговым окном Замена.

Запросы дают возможность работать с конкретным набором записей, которые удовлетворяют условиям, заданным для одной или нескольких таблиц базы данных. Создание индекса для ускорения поиска и сортировки записей

При помощи индексов сортировка и поиск записей ускоряется. Можно создать индексы, основанные на одном или нескольких полях. Составные индексы позволяют пользователю провести различия между записями, в которых первые поля могут иметь одинаковые значения.

Выбор полей для индексирования

В основном требуется индексировать поля, для которых часто осуществляется поиск, сортировка или поля, объединенные с полями из других таблиц в запросах. Однако иногда при использовании индексов действие замедляется.

Ключевые поля таблицы индексируются автоматически. Нельзя индексировать поля с типом данных поле МЕМО, гиперссылка или объект OLE. Для остальных полей индексирование используется, если выполняются следующие условия.

  • • Поле имеет текстовый, числовой, денежный тип или тип даты/времени.
  • • Не нужно осуществлять поиск значений в поле.
  • • Не нужно осуществлять сортировку значений в поле.

• Не нужно осуществлять сортировку различных значений в поле. Если поле содержит много одинаковых значений, то применение индекса незначительно ускорит работу запросов.

Составные индексы. Если предполагается, что сортировка или поиск двух и более полей одновременно будет часто выполняться, можно создать составной индекс.

При сортировке таблицы по составному индексу сначала осуществляется сортировка по первому полю, определенному для данного индекса.

Если в первом поле содержатся записи с повторяющимися значениями, то сортировка осуществляется по второму полю, определенному для данного индекса, и так далее.

Сортировка записей в таблице. Для сортировки данных, отбираемых фильтром, следует указать порядок сортировки в окне расширенного фильтра, а для сортировки результатов запроса следует задать порядок сортировки в режиме конструктора запроса.

Особенности сортировки записей

Невозможно сортировать поля МЕМО, гиперссылки или объекты OLE.

Создание формы. Пользователь имеет возможность создать форму самостоятельно или воспользоваться мастером. Мастер форм ускоряет процесс создания формы, так как автоматически выполняет всю основную работу.

При использовании мастера Microsoft Access выдает приглашение на ввод данных, на основе которых создается форма. В созданных формах мастер можно использовать для быстрого создания элементов управления в форме.

Для настройки формы следует переключиться в режим конструктора.

Создание отчета. Пользователь имеет возможность разработать отчет самостоятельно или создать отчет с помощью мастера. Мастер по разработке отчетов Microsoft Access выполняет всю рутинную работу и позволяет быстро разработать отчет.

Семантическое моделирование данных (ER-диаграммы). Цель семантического моделирования. Основные этапы семантического моделирования. E/R-модель и соответствующая ей диаграммная техника (E/R-диаграммы). Проектирование базы данных на основе E/R-модели.

Модель «сущность-связь» (entity-relationship model) ER-модель данных – это графический язык определения требований пользователя к данным. Спецификации требований представляются в виде диаграммы, показывающей объекты ПО, их связи и свойства объектов и связей. Существует много различных систем графических обозначений (нотаций), используемых для построения ER-диаграмм.

ER-диаграмма наглядно и точно отражает представления автора о данных. Поэтому она является хорошим источником информации для проектировщика логической модели данных. С другой стороны, диаграммы выразительны, наглядны и легко интерпретируются конечными пользователями. Поэтому их очень удобно использовать при обсуждении требований к данным с конечными пользователями.

Элементы ER-модели. Базовыми элементами ER-модели являются сущности, атрибуты, идентификаторы и связи.

Сущность (entity) – это некоторый объект, выделяемый (идентифицируемый) пользователем в предметной области. Нечто, за чем пользователь хотел бы наблюдать и сохранять результаты наблюдений (данные). Сущностями могут быть люди, предметы, места, события и т.д. Сущность – это нечто, имеющее реальное (физическое) или концептуальное существование и выделяемое в окружающем мире.

  1. Сущности одного и того же типа образуют классы сущностей.
  2. Класс сущностей – это абстракция, понятие выделяемое пользователем.
  3. Атрибут – это характеристика сущности (свойство класса), значимая с точки зрения пользователя.

Атрибут может быть: простым значения принадлежат простым типам данных. композитным (составным). производным значение производного атрибута зависит от значений других атрибутов той же или других сущностей.

Идентификаторы – это атрибуты сущностей, значения которых можно использовать для идентификации или именования экземпляров. Выделяют уникальные идентификаторы (потенциальные ключи) и неуникальные.

Значение уникального идентификатора не может встретиться у двух экземпляров сущности. Значение неуникального идентификатора указывает на множество экземпляров. Идентификатором может быть не любой атрибут сущности.

Сущность может иметь несколько уник. и неуник. идентиф.

Связи – это отношения сущностей. ER-модель различает классы и экземпляры связей.

Описание сущностей и их связей – это и есть (с точки зрения проектировщика БД) основная часть концептуальной модели требований пользователя к данным.

Обычно на ER-диаграммах семантически значимые имена связей не указывают, а поясняют их смысл иначе. На диаграммах используются также специальные обозначения для атрибутов, спецификаторы связей, сущностей, идентификаторов и другие символы.

Изображение атрибутов на диаграммах «сущность-связь»

Некоторые версии нотаций ER-диаграмм предусматривают обозначения для атрибутов. Атрибут изображается именованным эллипсом. Эллипс соединяется дугой с прямоугольником сущности. Контур эллипса сплошной для простого атрибута, штриховой – для производного и двойной – для многозначного.

Компоненты составного атрибута обозначаются эллипсами, соединёнными дугами с эллипсом атрибута. Имена атрибутов, составляющих идентификатор сущности, подчёркиваются. Связь, как и сущность, может иметь свои атрибуты. Они изображаются эллипсами, соединёнными с ромбом связи.

Семантический подход, в отличие от формального, предполагает параллельное выполнение анализа ПО и проектирование логического макета БД. В основе подхода лежат понятия ER-модели данных. Процесс проектирования включает три этапа.

На первом этапе: формируется представление о компонентах бизнеса, идентифицируются сущности и связи. Получение детальной информации о свойствах объектов ПО и их взаимосвязях.

На втором этапе Формирование логического макета БД с точностью до ключей. Детально просматриваются экземпляры и типы сущностей, целостность данных, ссылочная целостность, первичные, внешне ключи и т.д.

На третьемэтапе Окончательно формируется представление о составе атрибутов сущностей, определяются схемы отношений между сущностями. Все отношения схемы находятся в 3 НФ.

Выделяя сущности и определяя связи между ними, проектировщик опирается на свои текущие представления о ПО и здравый смысл. На каждом этапе он может согласовать свои представления с представлениями конечных пользователей. Поэтому грубые ошибки моделирования при разумном использовании семантического подхода – редкость.

Методологии семантического подхода.

1.Использование графических языков для представления ER- модели (наглядность, точность, ясность) представления своих представлений о данных с помощью диаграмм.

2.Глоссарий для однозначного определения имен сущностей и атрибутов. Он позволяет показать то, что нельзя изобразить графически.

Использование семантического подхода для проектирования системы снижает трудозатраты, упрощает и облегчает восприятие моделей, обеспечение создания высококачественных спецификаций системы БД.

Требования к диаграммам ER-уровень

Диаграмма должна содержать сущности и связи, может показывать атрибуты и не должна показывать первичные, альтернативные или внешние ключи.

На ER-уровне сущности не различаются как зависимые или независимые, а соединения – как идентифицирующие и неидентифицирующие.

Сущности не содержат горизонтальных линий, отделяющих область ключей от области данных. Имена сущностей вписываются в обозначающие их прямоугольники.

На ER-уровне допустимы неспецифические соединения. Для изображения соединений можно использовать как сплошные, так и штриховые линии.

Источник: https://cyberpedia.su/16x1db9.html

Сортировка и фильтрация записей в Access

Access 2010 дает вам возможность работать с огромным количеством данных, а это значит, что вам может быть сложно узнать что-либо о вашей базе данных, просто взглянув на нее. Сортировка и фильтрация — это два инструмента, которые позволяют настроить, как вы организуете и просматриваете свои данные, что делает его более удобным для работы.

Из этой статьи вы узнаете, как сортировать и фильтровать записи.

О сортировке и фильтрации

По сути, сортировка и фильтрация — это инструменты, которые позволяют организовать ваши данные. Когда вы сортируете данные, вы приводите их в порядок . Фильтрация данных позволяет скрыть неважные данные и сосредоточиться только на данных, которые вас интересуют.

Сортировка записей

Когда вы сортируете записи, вы вводите их в логический порядок , с похожими данными, сгруппированными вместе . В результате сортированные данные часто проще читать и понимать, чем несортированные данные.

По умолчанию Access сортирует записи по их идентификационным номерам . Однако есть много других способов записи записей.

Например, информация в базе данных, принадлежащей пекарне, может быть отсортирована несколькими способами:

  • Заказы можно сортировать по дате заказа или по фамилии клиентов, разместивших заказы.
  • Клиенты могут сортироваться по имени или по городу или почтовому индексу, где клиенты живут.
  • Продукты можно сортировать по названию, категории (пироги, пирожные, кексы и т.д.) или цене.

Вы можете сортировать как текст, так и цифры двумя способами: в порядке возрастания и убывания . Восходящий означает идти вверх , так что при сортировке по возрастанию устроят цифры от наименьшего до наибольшего и текста от А до Z .

По убыванию означает спуск или наибольшее значение для чисел и от Z до A для текста.

Сортировка идентификационного номера по умолчанию, отображаемая в ваших таблицах, является восходящей сортировкой, поэтому сначала отображаются наименьшие идентификационные номера.

В нашем примере мы будем выполнять сортировку по таблице. Однако вы можете сортировать записи в любом объекте Access. Процедура в основном такая же.

Для сортировки записей:

  1. Выберите поле в ячейке, которую вы хотите сортировать. В этом примере мы сортируем по фамилиям клиентов.
  2. Перейдите на вкладку « Главная » на ленте и найдите группу « Сортировка и фильтр ».
  3. Отсоедините поле, выбрав команду « Восходящий» или « Убывание» .
    • Выберите «Восходящий» для сортировки текста от A до Z или для сортировки чисел от наименьшего до самого большого. Мы выберем это в нашем примере, потому что мы хотим, чтобы последние имена были в порядке A-to-Z.
    • Выберите «Спуск», чтобы отсортировать текст от Z до A или отсортировать номера от самых больших до самых маленьких.
  4. Теперь таблица будет отсортирована по выбранному полю.
  5. Чтобы сохранить новый вид, нажмите кнопку « Сохранить» на панели быстрого доступа.

После сохранения сортировки записи будут отсортированы таким образом, пока вы не выполните другой сортировку или не удалите текущий. Чтобы удалить сортировку, просто нажмите команду «Удалить сортировку».

Фильтрация записей

Фильтры позволяют просматривать только те данные, которые вы хотите просмотреть . Когда вы создаете фильтр, вы устанавливаете критерии для данных, которые хотите отобразить. Затем фильтр выполняет поиск всех записей в таблице, находит те, которые соответствуют вашим критериям поиска, и временно скрывает те, которые этого не делают.

Фильтры полезны, потому что они позволяют сосредоточиться на конкретных записях, не отвлекаясь на данные, которые вам неинтересны.

Например, если у вас есть база данных, включающая информацию о клиенте и заказе, вы можете создать фильтр для отображения только клиентов, живущих в определенном городе или только в заказах, содержащих определенный продукт.

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

В наших примерах и пояснениях мы будем применять фильтры к таблицам. Однако вы можете применять фильтры к любому объекту Access. Процедура в основном такая же.

Чтобы создать простой фильтр:

  1. Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы будем фильтровать по городу, потому что мы хотим увидеть список клиентов, которые живут в определенном городе.
  2. Появится раскрывающееся меню с контрольным списком. В отфильтрованные результаты будут включены только проверенные элементы. Используйте следующие параметры, чтобы определить, какие элементы будут включены в ваш фильтр:
    • Выберите и снимите флажки по одному, установив флажки. Здесь мы отменим выбор всех параметров, кроме Cary .
    • Нажмите «Выбрать все», чтобы включить каждый элемент в фильтр. При нажатии кнопки «Выбрать все» второй раз снимите все элементы.
    • Нажмите «Пусто», чтобы настроить фильтр для поиска только записей без данных в выбранном поле.
  3. Нажмите «ОК» . Фильтр будет применен. В таблице наших клиентов теперь отображаются только клиенты, которые живут в Кэри.

Переключение фильтра позволяет включать и выключать его. Чтобы просмотреть записи без фильтра, просто нажмите кнопку Toggle Filter . Чтобы восстановить фильтр, щелкните его еще раз.

Создание фильтра из выделения

Фильтрация по выбору позволяет выбрать конкретные данные из таблицы и найти данные , которые похожи или непохожи на него.

Например, если вы работаете с базой данных в пекарне и хотите найти все продукты, чьи имена содержат слово шоколад , вы можете выбрать это слово в одном имени продукта и создать фильтр с этим выбором.

Создание фильтра с выбором может быть более удобным, чем создание простого фильтра, если поле, в котором вы работаете, содержит много элементов.

Чтобы создать фильтр из выделения:

  1. Выберите ячейку или данные, с которыми вы хотите создать фильтр. Мы хотим увидеть список всех продуктов, содержащих слово « шоколад» в их именах, поэтому в поле «Название продукта» мы выберем слово «шоколад».
  2. Выберите вкладку « Главная » на ленте и найдите группу «Сортировка и фильтр».
  3. Нажмите стрелку раскрывающегося списка «Выбор».
  4. Выберите тип фильтра, который вы хотите настроить:
    • Содержит только записи с ячейками, которые содержат выбранные данные. Мы выберем это, потому что хотим видеть записи, содержащие слово « шоколад» в любом месте названия.
    • Не содержит все записи, кроме тех, которые содержат ячейки, содержащие выбранные данные.
    • Ends With включает только записи, данные которых для выбранного поля заканчиваются поисковым термином.
    • Не заканчивается. Включает все записи, кроме тех, чьи данные для выбранного поля заканчиваются поисковым термином.
  5. Фильтр будет применен. В нашей таблице теперь отображаются только продукты со словом шоколад в их именах.

Создание фильтра из поискового запроса

Вы также можете создать фильтр, введя поисковый запрос и указав способ соответствия данных данным терминам. Создание фильтра из поискового термина аналогично созданию фильтра из выделения.

Фильтрация текста по поисковому запросу

При фильтрации текста, введя слово для поиска, вы можете использовать некоторые из тех же параметров , которые вы используете при фильтрации с помощью выбора, как Содержит , Не содержит , Ends С , и не заканчивается . Вы также можете выбрать один из следующих вариантов:

  • Равные значения , которые включают только записи с данными, которые идентичны выбранным данным
  • Не равен , что включает все записи, кроме данных, которые идентичны выбору
  • Начинается с , который включает только записи, данные которых для выбранного поля начинаются с поискового запроса
  • Не начинается с , включая все записи, кроме тех, чьи данные для выбранного поля начинаются с поискового запроса

Чтобы фильтровать текст по поисковому запросу:

  1. Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы хотим отфильтровать записи в нашей таблице заказов, чтобы отображать только те, которые содержат заметки с определенной информацией, поэтому мы нажмем стрелку в поле « Примечания» .
  2. В раскрывающемся меню наведите указатель мыши на слова Text Filters . В появившемся списке выберите способ, которым фильтр должен соответствовать введенному вами термину. В этом примере мы хотим просмотреть только записи, чьи заметки указывают, что заказ был размещен для стороны. Мы выберем Contains, чтобы мы могли искать записи, содержащие слово party.
  3. Появится диалоговое окно «Пользовательский фильтр». Введите слово, которое вы хотите использовать в своем фильтре.
  4. Нажмите «ОК» . Фильтр будет применен.

Фильтрация чисел с поисковым термином

Процесс фильтрации номеров с поисковым термином аналогичен процессу фильтрации текста. Однако при работе с числами доступны различные параметры фильтрации. В дополнение к Равно и не равно , вы можете выбрать:

  • Больше, чем включать только записи с числами в этом поле, которые больше или равны числу, которое вы вводите
  • Меньше, чем включать только записи с номерами в этом поле, которые меньше или равно числу, которое вы вводите
  • Между включениями записей с цифрами, которые попадают в определенный диапазон

Чтобы фильтровать числа по поисковому запросу:

  1. Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы хотим отфильтровать записи в нашей таблице пунктов меню по цене, поэтому мы нажмем стрелку в поле « Цена» .
  2. В раскрывающемся меню наведите указатель мыши на слова Number Filters . В появившемся списке выберите способ, которым фильтр будет соответствовать вашему поисковому запросу. В этом примере мы хотим создать фильтр, который покажет нам только недорогие предметы. Мы хотим видеть предметы под определенной ценой, поэтому мы выберем Less Than .
  3. Появится диалоговое окно «Пользовательский фильтр». Введите число или цифры, которые вы хотите использовать в своем фильтре. Мы напечатаем 5, чтобы фильтр показывал нам только пункты меню, стоимость которых не превышает 5 долларов.
  4. Нажмите «ОК» . Фильтр будет применен.

Конкретные типы чисел могут включать в себя другие параметры фильтрации. Например, даты, хранящиеся в числовой форме (mm / dd / yy-eg, 12/01/2010), включают опции для фильтрации по периодам времени.

Источник: https://maxfad.ru/ofis/ms-access/459-sortirovka-i-filtratsiya-zapisej-v-access.html

Понравилась статья? Поделить с друзьями:
  • Excel поиск буквы в строке
  • Excel подсчет ячеек определенного цвета
  • Excel поиск близкого значения к заданному
  • Excel подсчет ячеек одной даты
  • Excel поиск ближайшего меньшего значения