intersk 114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
||||
1 |
||||
19.03.2015, 15:16. Показов 2088. Ответов 11 Метки нет (Все метки)
нужно осуществить поиск значения полей из Access в Excel (сначала туда вношу, потом надо найти сроку…)
0 |
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 |
Прежде всего проверил бы Poisk2 (Debug.Print Poisk2). складывает числа
Или в полях есть длинная мантисса, которая на форме скрывается форматом формат полей с разделителями
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
19.03.2015, 23:21 |
4 |
|||
intersk, попробуйте поискать только целую часть. Если поиск состоится, то можно искать причины
Если же опять ничего, то есть предположение, что числа в екселе на самом деле строки. И тогда надо искать с пробелами.
0 |
114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
|
19.03.2015, 23:37 [ТС] |
5 |
попробуйте поискать только целую часть не найдено, формат вроде не строковый Миниатюры
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||||||
20.03.2015, 00:52 |
6 |
|||||||
Сообщение было отмечено intersk как решение Решение Попробуем иначе. Ниже процедура с 4 параметрами, которую надо выполнять в Access. Можно обращение к процедуре записать сразу после формирования параметров Poisk1 и Poisk2: Найденное, если будет такое, запишется в Immediate (область отладки в редакторе ВБА). Если пройдет, подскажу, что делать дальше
Пример обращения к процедуре
1 |
intersk 114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
||||||||||
20.03.2015, 09:30 [ТС] |
7 |
|||||||||
mobile, ваш код сработал верно! Мой код полностью (его смысл чтобы заполнить ComboBox, а потом выбрав нужную строку (по номеру) добавить в эту строку с этим номером, нужные значения в ячейки этой строки) Ваш код который работает
мой код
в прикрепленном файле этот код для удобства редактирования в текстовом файле Вложения
0 |
intersk 114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
||||||||||||
20.03.2015, 14:02 [ТС] |
8 |
|||||||||||
mobile, дополнение предыдущего сообщения — сам попытался адаптировать свой код. Ошибка — не происходит заполнение списка в строке
То есть не определяется номер строки. Я посчитал что переменная i это и есть номер строки
Добавлено через 2 часа 9 минут
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
20.03.2015, 14:47 |
9 |
|||
Сообщение было отмечено intersk как решение РешениеНе нужно вообще открывать ексель. Вся необходимая инфа уже есть в запросе
1 |
114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
|
20.03.2015, 15:53 [ТС] |
10 |
mobile, файл Excel, с которым работает код это сетевой файл для работы нескольких пользователей. Поэтому мне надо как-то заблокировать файл от изменений на момент поиска, на момент работы кода. Добавлено через 7 минут Добавлено через 7 минут Добавлено через 8 минут
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
20.03.2015, 19:22 |
11 |
|||
Исправлю некоторые ошибки и дополню программу
1 |
114 / 4 / 0 Регистрация: 07.09.2014 Сообщений: 329 |
|
20.03.2015, 23:22 [ТС] |
12 |
mobile,
Исправлю некоторые ошибки и дополню программу тестирую… добавил в Call FindInExcel(…….., False) всё находит! Миниатюры
0 |
Поле со списком в access может стать полем для поиска. Поисковое поле со списком в Access может сильно облегчить вам работу с данными.
Существует несколько способов создания поискового поля, самый распространённый из них – при помощи мастера для элемента управления «Поле со списком».
Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):
Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):
Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».
На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».
Макрос состоит всего из двух команд:
Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.
По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.
Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:
Типичной задачей является организация более удобного чем последовательный перебор перехода по записям в форме, задавая значения каких-то полей записи, для ее поиска по ним. Например, в форме с информацией для большого количества сотрудников хотелось бы быстро перейти к карточке сотрудника с известной фамилией. Это можно сделать с помощью специального списка для выбора фамилии.
В разд. «Создание элементов управления с помощью панели элементов»гл. 5 мы упомянули о том, что при создании списка/поля со списком с помощью Мастера в форме, привязанной к источнику данных, Access предлагает сделать его средством перехода к нужной записи в форме. Рассмотрим пример создания такого списка:
- Откройте в режиме Конструктора форму «Сотрудники» (Employees) базы данных «Борей» (Northwind).
- Убедитесь, что на панели инструментов Панель элементов (Toolbox) нажата кнопка Мастера (Control Wizards). Нажмите кнопку Поле со списком (Combo Box) и разместите новый элемент в разделе заголовка формы, начертив мышью прямоугольник нужного размера.
- Появится первое диалоговое окно Мастера списков. Выберите переключатель Поиск записи в форме на основе значения, которое содержит поле со списком (Find a record on my form based on the value I selected in my combo box) и нажмите кнопку Далее (Next).
- В следующем диалоговом окне мастера выберите поля, которые образуют столбцы элементов списка: «КодСотрудника» (EmployeeID), «Фамилия» (LastName) и «Имя» (FirstName). Нажмите кнопку Далее (Next).
- В следующем диалоговом окне Мастера списков предлагается настроить ширину столбцов списка. Столбец с ключевым полем «КодСотрудника» рекомендуется сделать скрытым (установите флажок Скрыть ключевой столбец (Hide key column)). Оставьте предложенные параметры и нажмите кнопку Далее (Next).
- В последнем диалоговом окне мастера требуется ввести текст метки, поясняющей назначение списка. Введите текст: Фамилия: и нажмите кнопку Готово (Finish).
Форма готова. Откройте ее в режиме Формы и убедитесь, что при выборе желаемых фамилии и имени в созданном поле со списком осуществляется переход к информации об этом сотруднике. Такое поле со списком удобно и тем, что значение в нем можно не только выбрать, но и просто ввести первые буквы фамилии — необходимый элемент будет выбран автоматически. Останется нажать клавишу , чтобы отобразить информацию о выбранном сотруднике.
Действие созданного поля со списком обеспечивается процедурой обработки события После обновления (After Update), сгенерированной мастером (см. также разд. «Создание процедур обработки событий»гл. 13).
Создадим двумя способами кнопку «Поиск фамилии» для быстрого поиска покупателя по фамилии в форме “Покупатель”. Первый способ – использование стандартных возможностей Access . Второй способ – использование макроса.
Откроем форму «Покупатель» в режиме конструктора. С панели элементов перенесем пиктограмму Кнопка в нижнюю часть формы. Будет вызван мастер Создание кнопки. Выберем режимы Категории: Переходы по записями, Действия: Найти запись. Затем на кнопке разместим текст «Поиск фамилии», введя соответствующий текст в поле Текст. Далее в качестве названия кнопки введем ФИО. При работе с формой “Покупатель” при нажатии кнопки будет вызываться окно стандартного поиска и замены Access.
Замечание. Если не запускается мастер создания кнопок, его надо включить на панели инструментов.
В результате на форме появится кнопка «Поиск фамилии», при нажатии на которую выскакивает стандартное окно «Поиск и замена». При поиске кроме образца надо указать поле, в котором необходимо найти данные, а также указать степень совпадения.
Использование макроса
Для примера создадим подобную кнопку поиска для формы «Товар». Создадим поле для ввода начала названия товара. Откроем эту форму в режиме конструктора и перетащим туда пиктограмму Поле в нижнюю часть формы. Вызовем список свойств правой части поля (первоначально оно имеет обозначение Свободный) щелчком правой кнопки мыши и заменим Имя на Поиск – данное имя в дальнейшем будет использоваться. В строке состояния (свойство Текст строки состояния) введем текст: «Введите название товара или его первые буквы». Вызовем список свойств для левой части Поля (Надписи) и заменим Подпись также на Поиск. Закроем форму.
Дальше создадим макрос «Поиск». Он будет состоять из трех макрокоманд. Откроем вкладку Созданиенажмем кнопку Макрос. С помощью команд панели инструментов Имена макросов включим дополнительный столбец Имя макроса. Введем туда в первой строке слово Поиск. В колонке Макрокоманда выберем макрокоманду КЭлементуУправления. В области Аргументы макрокоманды в нижней части окна в качестве Имени элемента введем текст (в этом поле таблицы ТОВАР будет искаться товар с указанным именем). Во второй строчке во втором столбце Макрокоманда выберем из списка макрокоманд команду НайтиЗапись. В аргументах макрокоманды введем с клавиатуры в поле Образец поиска текст = (т.е. будет разыскиваться в поле Наименование таблицы ТОВАР запись, начало названия товара в которой совпадает с введенным в поле Поиск значением). В поле Совпадение выберем из списка элемент «С начала поля». Остальные элементы оставим без изменения. В третьей строке во втором столбце выберем снова макрокоманду КэлементуУправления, в аргументах макрокоманды для Имени элемента введем . Квадратные скобки вводить обязательно!
Созданный нами макрос будет работать следующим образом. Вначале выбирается поле Наименование таблицы ТОВАР для организации поиска. Затем по образцу из поля Поиск формы осуществляется поиск первой по порядку нужной нам записи. Затем фокус опять передается в поле Поиск для возможного продолжения поиска.
Закроем макрос и сохраним его с именем «Поиск товара». Теперь опять откроем форму «Товар» и перетащим туда макрос «Поиск товара». Появится кнопка с соответствующей подписью. Для поиска товара нужно ввести первые буквы названия товара, нажать кнопку «Поиск», будет найдена нужная запись (если она существует). Обратите внимание, то если ничего не вводить в окне Поиск, то при нажатии кнопки будет выдано сообщение об ошибке! В СУБД Access 2007 существуют способы обработки подобных ситуаций – макросы с условиями, но мы их рассматривать не будем.
Но таким образом можно найти лишь первую запись на введенную букву. Нетрудно организовать еще одну кнопку «Поиск далее». Для этого сделаем копию макроса «Поиск товара» через буфер обмена и назовем его «Поиск далее». С помощью конструктора изменим в новом макросе в аргументе строки НайтиЗапись свойство Первое вхождение с Да на Нет, Область поиска – Вниз. Теперь перетащим новый макрос в режиме конструктора в форму «Товар». Теперь будет идти поиск и последующих записей с тем же началом в поле Наименование.
Задание
- Создать в форме «Покупатель» аналогичные кнопки для поиска покупателя по началу фамилии.
- Создать в форме «Заказ» кнопку поиска записей, имеющих совпадающую с вводимой в специальном поле дату.
Содержание
- 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 может сильно облегчить вам работу с данными.
Существует несколько способов создания поискового поля, самый распространённый из них – при помощи мастера для элемента управления «Поле со списком».
Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):
Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):
Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».
На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».
Макрос состоит всего из двух команд:
Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.
По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.
Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:
- 1.2K
- 23 марта 2005 года
- Kalitkin
108 / / 05.03.2004
- Цитата:
- Originally posted by nut_y_z И как его применить
- сначал коннектишься к базе данных
- CDatebase db;
- 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 2007 существуют способы обработки подобных ситуаций – макросы с условиями, но мы их рассматривать не будем.
Но таким образом можно найти лишь первую запись на введенную букву. Нетрудно организовать еще одну кнопку «Поиск далее». Для этого сделаем копию макроса «Поиск товара» через буфер обменаи назовем его «Поиск далее».
С помощью конструктора изменим в новом макросе в аргументе строки НайтиЗапись свойство Первое вхождение с Да на Нет, Область поиска – Вниз. Теперь перетащим новый макрос в режиме конструктора в форму «Товар».
Теперь будет идти поиск и последующих записей с тем же началом в поле Наименование.
Задание
- Создать в форме «Покупатель» аналогичные кнопки для поиска покупателя по началу фамилии.
- Создать в форме «Заказ» кнопку поиска записей, имеющих совпадающую с вводимой в специальном поле дату.
Источник: http://word-office.ru/kak-sdelat-poisk-v-access.html
Запросы в Access 2013 с помощью элементов формы
Создание формы Пошук
Создадим пустую форму. Для этого выберем в меню вкладку Создание и кликнем на Пустая форма.
Получим форму в режиме макета. Кликнем правой кнопкой мышки по форме и выберем в контекстном меню Свойства формы (или Работа с макетами форм — Конструктор — Сервис — Страница свойств).
Справа появится Окно свойств. В выпадающем списке строки Источник записей вкладки Данные выберем Для форми пошуку
После этого в сервисе выберем Добавить поля. Окно свойств сменится на Список полей.
Добавим на форму следующие элементы (перетягивание мышкой из списка полей на форму):
Дата (дважды), Найменування клієнта, Адреса, Телефон, Рахунок, Найменування товару, Ціна (дважды), Кількість (дважды), Передоплата, Сума передоплати (дважды).
- Изменим надписи для даты, цены, количества и суммы предоплаты.
- Дата: → Дата з:
- Дата: → Дата по:
- Ціна: → Ціна від:
- Ціна: → Ціна до:
- Кількість: → Кількість від:
- Кількість: → Кількість до:
- Сума передоплати: → Сума передоплати від:
- Сума передоплати: → Сума передоплати до:
Выделим поле напротив надписи Дата з:. В инструментах конструктора форм выберем вкладку Конструктор. Откроем окно свойств для выделенного элемента (Сочетание клавиш ALT+ENTER; Конструктор — Сервис — Страница свойств или в контекстном меню выбрать Свойства)
В окне свойств перейдем на вкладку Другие и в строке Имя впишем Дата з
Перейдем на вкладку Данные и в строке Данные сотрем Дата
В строке Значение по умолчанию впишем #02.01.2010#; в строке Правило проверки впишем >#01.01.2010# и в строке Сообщение об ошибке — Введіть дату після 1 січня 2010 року! (см. свойства таблицы Данні про замовлення)
Аналогично поступим и с другими полями формы.
Дата по: вписываем имя Дата по в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем Date(); в строке Правило проверки впишем >#01.01.2010# и в строке Сообщение об ошибке — Введіть дату після 1 січня 2010 року!.
- Найменування клієнта:, Адреса:, Телефон:, Рахунок:, Найменування товару: очищаем строку Данные вкладки Данные.
- Ціна від: вписываем имя Ціна від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть суму > нуля!
- Ціна до: вписываем имя Ціна до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную цену); в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть суму > нуля!
- Кількість від: вписываем имя Кількість від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть кількість > нуля!
- Кількість до: вписываем имя Кількість до в строке Имя вкладки Другие;очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальное количество); в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть кількість > нуля!
- Передоплата: очищаем строку Данные вкладки Данные.
Сума передоплати від: вписываем имя Сума передоплати від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем . ; в строке Правило проверки впишем >=0 и в строке Сообщение об ошибке — Введіть суму, яка більше або дорівнює нулеві!
Сума передоплати до: вписываем имя Сума передоплати до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную сумму предоплаты); в строке Правило проверки впишем >=0 и в строке Сообщение об ошибке — Введіть суму, яка більше або дорівнює нулеві!
Преобразуем поле Найменування клієнта в поле со списком (контекстное меню поля)
Выполним следующее: Окно свойств — Данные — Источник строк — … — Довідник клієнтів — Найменування клієнта — закрыть построитель запросов и подтвердить сохранение.
Аналогично преобразуем в поле со списком Найменування товару. В качестве источника выбрать Найменування товару.
В результате получим
Закроем и сохраним форму под именем Пошук
Источник: 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) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.
Рис. 1.
Рассмотрим создание запроса на выборку с помощью Конструктора
Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).
Рис. 2.
Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.
Рис. 3.
В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).
Рис. 4.
Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.
Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.
При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.
Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).
Рис. 5.
Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).
Рис. 6.
Далее создаем параметрический query или query с параметрами.
Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию].
В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.
Закрыть окно запроса на выборку. На вопрос о сохранении изменения ответить — Да и ввести имя запроса, например «Параметрический query». Запустим Параметрический query, дважды щелкнув на нем. В открывшемся на экране окне диалога «Введите значение параметра» надо ввести фамилию студента, информацию об успеваемости которого необходимо получить (рис. 8).
Рис. 7.
Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).
Рис. 8.
В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.
Далее >>> Раздел: 2.4.6. Создание форм для ввода данных в таблицы базы данных Access 2007
Источник: https://www.lessons-tva.info/edu/inf-access/access_5.html
Поисковое поле со списком в Access
Поле со списком в access может стать полем для поиска. Поисковое поле со списком в 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) – это некоторый объект, выделяемый (идентифицируемый) пользователем в предметной области. Нечто, за чем пользователь хотел бы наблюдать и сохранять результаты наблюдений (данные). Сущностями могут быть люди, предметы, места, события и т.д. Сущность – это нечто, имеющее реальное (физическое) или концептуальное существование и выделяемое в окружающем мире.
- Сущности одного и того же типа образуют классы сущностей.
- Класс сущностей – это абстракция, понятие выделяемое пользователем.
- Атрибут – это характеристика сущности (свойство класса), значимая с точки зрения пользователя.
Атрибут может быть: простым значения принадлежат простым типам данных. композитным (составным). производным значение производного атрибута зависит от значений других атрибутов той же или других сущностей.
Идентификаторы – это атрибуты сущностей, значения которых можно использовать для идентификации или именования экземпляров. Выделяют уникальные идентификаторы (потенциальные ключи) и неуникальные.
Значение уникального идентификатора не может встретиться у двух экземпляров сущности. Значение неуникального идентификатора указывает на множество экземпляров. Идентификатором может быть не любой атрибут сущности.
Сущность может иметь несколько уник. и неуник. идентиф.
Связи – это отношения сущностей. ER-модель различает классы и экземпляры связей.
Описание сущностей и их связей – это и есть (с точки зрения проектировщика БД) основная часть концептуальной модели требований пользователя к данным.
Обычно на ER-диаграммах семантически значимые имена связей не указывают, а поясняют их смысл иначе. На диаграммах используются также специальные обозначения для атрибутов, спецификаторы связей, сущностей, идентификаторов и другие символы.
Изображение атрибутов на диаграммах «сущность-связь»
Некоторые версии нотаций ER-диаграмм предусматривают обозначения для атрибутов. Атрибут изображается именованным эллипсом. Эллипс соединяется дугой с прямоугольником сущности. Контур эллипса сплошной для простого атрибута, штриховой – для производного и двойной – для многозначного.
Компоненты составного атрибута обозначаются эллипсами, соединёнными дугами с эллипсом атрибута. Имена атрибутов, составляющих идентификатор сущности, подчёркиваются. Связь, как и сущность, может иметь свои атрибуты. Они изображаются эллипсами, соединёнными с ромбом связи.
Семантический подход, в отличие от формального, предполагает параллельное выполнение анализа ПО и проектирование логического макета БД. В основе подхода лежат понятия ER-модели данных. Процесс проектирования включает три этапа.
На первом этапе: формируется представление о компонентах бизнеса, идентифицируются сущности и связи. Получение детальной информации о свойствах объектов ПО и их взаимосвязях.
На втором этапе Формирование логического макета БД с точностью до ключей. Детально просматриваются экземпляры и типы сущностей, целостность данных, ссылочная целостность, первичные, внешне ключи и т.д.
На третьемэтапе Окончательно формируется представление о составе атрибутов сущностей, определяются схемы отношений между сущностями. Все отношения схемы находятся в 3 НФ.
Выделяя сущности и определяя связи между ними, проектировщик опирается на свои текущие представления о ПО и здравый смысл. На каждом этапе он может согласовать свои представления с представлениями конечных пользователей. Поэтому грубые ошибки моделирования при разумном использовании семантического подхода – редкость.
Методологии семантического подхода.
1.Использование графических языков для представления ER- модели (наглядность, точность, ясность) представления своих представлений о данных с помощью диаграмм.
2.Глоссарий для однозначного определения имен сущностей и атрибутов. Он позволяет показать то, что нельзя изобразить графически.
Использование семантического подхода для проектирования системы снижает трудозатраты, упрощает и облегчает восприятие моделей, обеспечение создания высококачественных спецификаций системы БД.
Требования к диаграммам ER-уровень
Диаграмма должна содержать сущности и связи, может показывать атрибуты и не должна показывать первичные, альтернативные или внешние ключи.
На ER-уровне сущности не различаются как зависимые или независимые, а соединения – как идентифицирующие и неидентифицирующие.
Сущности не содержат горизонтальных линий, отделяющих область ключей от области данных. Имена сущностей вписываются в обозначающие их прямоугольники.
На ER-уровне допустимы неспецифические соединения. Для изображения соединений можно использовать как сплошные, так и штриховые линии.
Источник: https://cyberpedia.su/16x1db9.html
Сортировка и фильтрация записей в Access
Access 2010 дает вам возможность работать с огромным количеством данных, а это значит, что вам может быть сложно узнать что-либо о вашей базе данных, просто взглянув на нее. Сортировка и фильтрация — это два инструмента, которые позволяют настроить, как вы организуете и просматриваете свои данные, что делает его более удобным для работы.
Из этой статьи вы узнаете, как сортировать и фильтровать записи.
О сортировке и фильтрации
По сути, сортировка и фильтрация — это инструменты, которые позволяют организовать ваши данные. Когда вы сортируете данные, вы приводите их в порядок . Фильтрация данных позволяет скрыть неважные данные и сосредоточиться только на данных, которые вас интересуют.
Сортировка записей
Когда вы сортируете записи, вы вводите их в логический порядок , с похожими данными, сгруппированными вместе . В результате сортированные данные часто проще читать и понимать, чем несортированные данные.
По умолчанию Access сортирует записи по их идентификационным номерам . Однако есть много других способов записи записей.
Например, информация в базе данных, принадлежащей пекарне, может быть отсортирована несколькими способами:
- Заказы можно сортировать по дате заказа или по фамилии клиентов, разместивших заказы.
- Клиенты могут сортироваться по имени или по городу или почтовому индексу, где клиенты живут.
- Продукты можно сортировать по названию, категории (пироги, пирожные, кексы и т.д.) или цене.
Вы можете сортировать как текст, так и цифры двумя способами: в порядке возрастания и убывания . Восходящий означает идти вверх , так что при сортировке по возрастанию устроят цифры от наименьшего до наибольшего и текста от А до Z .
По убыванию означает спуск или наибольшее значение для чисел и от Z до A для текста.
Сортировка идентификационного номера по умолчанию, отображаемая в ваших таблицах, является восходящей сортировкой, поэтому сначала отображаются наименьшие идентификационные номера.
В нашем примере мы будем выполнять сортировку по таблице. Однако вы можете сортировать записи в любом объекте Access. Процедура в основном такая же.
Для сортировки записей:
- Выберите поле в ячейке, которую вы хотите сортировать. В этом примере мы сортируем по фамилиям клиентов.
- Перейдите на вкладку « Главная » на ленте и найдите группу « Сортировка и фильтр ».
- Отсоедините поле, выбрав команду « Восходящий» или « Убывание» .
- Выберите «Восходящий» для сортировки текста от A до Z или для сортировки чисел от наименьшего до самого большого. Мы выберем это в нашем примере, потому что мы хотим, чтобы последние имена были в порядке A-to-Z.
- Выберите «Спуск», чтобы отсортировать текст от Z до A или отсортировать номера от самых больших до самых маленьких.
- Теперь таблица будет отсортирована по выбранному полю.
- Чтобы сохранить новый вид, нажмите кнопку « Сохранить» на панели быстрого доступа.
После сохранения сортировки записи будут отсортированы таким образом, пока вы не выполните другой сортировку или не удалите текущий. Чтобы удалить сортировку, просто нажмите команду «Удалить сортировку».
Фильтрация записей
Фильтры позволяют просматривать только те данные, которые вы хотите просмотреть . Когда вы создаете фильтр, вы устанавливаете критерии для данных, которые хотите отобразить. Затем фильтр выполняет поиск всех записей в таблице, находит те, которые соответствуют вашим критериям поиска, и временно скрывает те, которые этого не делают.
Фильтры полезны, потому что они позволяют сосредоточиться на конкретных записях, не отвлекаясь на данные, которые вам неинтересны.
Например, если у вас есть база данных, включающая информацию о клиенте и заказе, вы можете создать фильтр для отображения только клиентов, живущих в определенном городе или только в заказах, содержащих определенный продукт.
Просмотр этих данных с помощью фильтра будет гораздо удобнее, чем поиск его в большой таблице.
В наших примерах и пояснениях мы будем применять фильтры к таблицам. Однако вы можете применять фильтры к любому объекту Access. Процедура в основном такая же.
Чтобы создать простой фильтр:
- Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы будем фильтровать по городу, потому что мы хотим увидеть список клиентов, которые живут в определенном городе.
- Появится раскрывающееся меню с контрольным списком. В отфильтрованные результаты будут включены только проверенные элементы. Используйте следующие параметры, чтобы определить, какие элементы будут включены в ваш фильтр:
- Выберите и снимите флажки по одному, установив флажки. Здесь мы отменим выбор всех параметров, кроме Cary .
- Нажмите «Выбрать все», чтобы включить каждый элемент в фильтр. При нажатии кнопки «Выбрать все» второй раз снимите все элементы.
- Нажмите «Пусто», чтобы настроить фильтр для поиска только записей без данных в выбранном поле.
- Нажмите «ОК» . Фильтр будет применен. В таблице наших клиентов теперь отображаются только клиенты, которые живут в Кэри.
Переключение фильтра позволяет включать и выключать его. Чтобы просмотреть записи без фильтра, просто нажмите кнопку Toggle Filter . Чтобы восстановить фильтр, щелкните его еще раз.
Создание фильтра из выделения
Фильтрация по выбору позволяет выбрать конкретные данные из таблицы и найти данные , которые похожи или непохожи на него.
Например, если вы работаете с базой данных в пекарне и хотите найти все продукты, чьи имена содержат слово шоколад , вы можете выбрать это слово в одном имени продукта и создать фильтр с этим выбором.
Создание фильтра с выбором может быть более удобным, чем создание простого фильтра, если поле, в котором вы работаете, содержит много элементов.
Чтобы создать фильтр из выделения:
- Выберите ячейку или данные, с которыми вы хотите создать фильтр. Мы хотим увидеть список всех продуктов, содержащих слово « шоколад» в их именах, поэтому в поле «Название продукта» мы выберем слово «шоколад».
- Выберите вкладку « Главная » на ленте и найдите группу «Сортировка и фильтр».
- Нажмите стрелку раскрывающегося списка «Выбор».
- Выберите тип фильтра, который вы хотите настроить:
- Содержит только записи с ячейками, которые содержат выбранные данные. Мы выберем это, потому что хотим видеть записи, содержащие слово « шоколад» в любом месте названия.
- Не содержит все записи, кроме тех, которые содержат ячейки, содержащие выбранные данные.
- Ends With включает только записи, данные которых для выбранного поля заканчиваются поисковым термином.
- Не заканчивается. Включает все записи, кроме тех, чьи данные для выбранного поля заканчиваются поисковым термином.
- Фильтр будет применен. В нашей таблице теперь отображаются только продукты со словом шоколад в их именах.
Создание фильтра из поискового запроса
Вы также можете создать фильтр, введя поисковый запрос и указав способ соответствия данных данным терминам. Создание фильтра из поискового термина аналогично созданию фильтра из выделения.
Фильтрация текста по поисковому запросу
При фильтрации текста, введя слово для поиска, вы можете использовать некоторые из тех же параметров , которые вы используете при фильтрации с помощью выбора, как Содержит , Не содержит , Ends С , и не заканчивается . Вы также можете выбрать один из следующих вариантов:
- Равные значения , которые включают только записи с данными, которые идентичны выбранным данным
- Не равен , что включает все записи, кроме данных, которые идентичны выбору
- Начинается с , который включает только записи, данные которых для выбранного поля начинаются с поискового запроса
- Не начинается с , включая все записи, кроме тех, чьи данные для выбранного поля начинаются с поискового запроса
Чтобы фильтровать текст по поисковому запросу:
- Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы хотим отфильтровать записи в нашей таблице заказов, чтобы отображать только те, которые содержат заметки с определенной информацией, поэтому мы нажмем стрелку в поле « Примечания» .
- В раскрывающемся меню наведите указатель мыши на слова Text Filters . В появившемся списке выберите способ, которым фильтр должен соответствовать введенному вами термину. В этом примере мы хотим просмотреть только записи, чьи заметки указывают, что заказ был размещен для стороны. Мы выберем Contains, чтобы мы могли искать записи, содержащие слово party.
- Появится диалоговое окно «Пользовательский фильтр». Введите слово, которое вы хотите использовать в своем фильтре.
- Нажмите «ОК» . Фильтр будет применен.
Фильтрация чисел с поисковым термином
Процесс фильтрации номеров с поисковым термином аналогичен процессу фильтрации текста. Однако при работе с числами доступны различные параметры фильтрации. В дополнение к Равно и не равно , вы можете выбрать:
- Больше, чем включать только записи с числами в этом поле, которые больше или равны числу, которое вы вводите
- Меньше, чем включать только записи с номерами в этом поле, которые меньше или равно числу, которое вы вводите
- Между включениями записей с цифрами, которые попадают в определенный диапазон
Чтобы фильтровать числа по поисковому запросу:
- Нажмите стрелку раскрывающегося списка рядом с полем, в которое вы хотите отфильтровать. Мы хотим отфильтровать записи в нашей таблице пунктов меню по цене, поэтому мы нажмем стрелку в поле « Цена» .
- В раскрывающемся меню наведите указатель мыши на слова Number Filters . В появившемся списке выберите способ, которым фильтр будет соответствовать вашему поисковому запросу. В этом примере мы хотим создать фильтр, который покажет нам только недорогие предметы. Мы хотим видеть предметы под определенной ценой, поэтому мы выберем Less Than .
- Появится диалоговое окно «Пользовательский фильтр». Введите число или цифры, которые вы хотите использовать в своем фильтре. Мы напечатаем 5, чтобы фильтр показывал нам только пункты меню, стоимость которых не превышает 5 долларов.
- Нажмите «ОК» . Фильтр будет применен.
Конкретные типы чисел могут включать в себя другие параметры фильтрации. Например, даты, хранящиеся в числовой форме (mm / dd / yy-eg, 12/01/2010), включают опции для фильтрации по периодам времени.
Источник: https://maxfad.ru/ofis/ms-access/459-sortirovka-i-filtratsiya-zapisej-v-access.html