Oc-windows.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access поиск по части слова

Макросы Access 2007. Ускорение поиска

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

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

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

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

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

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

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

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

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

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

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

Задание

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

Связанные статьи

Рекомендую прочесть статьи, связанные с данной:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Строковые функции и их использование

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

С помощью строковых функций в Access, работать с текстом в различных способов можно создавать выражения. Например можно отобразить только часть в числовом формате в форме. Или может потребоваться join (СЦЕПИТЬ) несколько строк друг с другом, например имени и фамилии. Если вы еще не способности выражения, ознакомьтесь со статьей Создание выражений.

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

Возврат знаков с начала строки

Если [СерийныйНомер] = «CD234», результат — «CD»

Возврат знаков с конца строки

Если [СерийныйНомер] = «CD234», результат — «234»

Поиск позиции знака в строке

Если [Имя] = «Алексей», результат — 4

Возврат знаков из середины строки

Если [СерийныйНомер] = «CD234», результат — «D2»

Удаление начальных и конечных пробелов из строки.

Если [Имя] = » Алексей «, результатом будет: «Алексей».

Объединение двух строк

Оператор «знак плюс» (+)*

Если [Имя] = «Алексей», а [Фамилия] = «Орехов», результат — «АлексейОрехов»

Объединение двух строк с пробелом между ними

Оператор «знак плюс» (+)*

Если [Имя] = «Алексей», а [Фамилия] = «Орехов», результат — «Алексей Орехов»

Изменения регистра строки на верхний или нижний

Если [Имя] = «Алексей», результат — «АЛЕКСЕЙ»

Определение длины строки

Если [Имя] = «Алексей», результат — 7

* Ну хорошо, это не функция, а оператор. Но зато это самый быстрый способ объединения строк. В базе данных на компьютере для этой цели можно также использовать оператор «амперсанд» (&), а в приложении Access — только знак «плюс» (+).

Функций для работы с текстом в Access очень много. Чтобы познакомиться с ними, просто откройте построитель выражений и просмотрите списки функций. Его можно открыть практически из любого места, где разрешено создавать выражения. Обычно нужно нажать маленькую кнопку Построение, которая выглядит вот так: .

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

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

Откройте базу данных на компьютере (ACCDB-файл).

Если область навигации еще не открыта, откройте ее с помощью клавиши F11.

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

Щелкните правой кнопкой мыши текстовое поле в форме и выберите пункт Свойства.

На странице свойств нажмите Все > Данные, а затем — кнопку Построение в правой части поля свойства Данные.

В разделе Элементы выражений разверните узел Функции и выберите пункт Встроенные функции.

В разделе Категории выражений выберите пункт Текстовые.

В разделе Значения выражений выберите интересующие вас функции и прочитайте их краткое описание в нижней части построителя выражений.

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

Запуск построителя выражений в веб-приложении Access

Откройте веб-приложение в Access. Если вы просматриваете в браузере, щелкните Параметры > настроить в Access.

Щелкните таблицу в левом столбце, а затем в правой части списка таблиц выберите представление.

Нажмите Изменить, щелкните текстовое поле, а затем нажмите кнопку Данные, которая появится около этого поля.

Нажмите кнопку Построение справа от раскрывающегося списка Данные.

В разделе Элементы выражений разверните узел Функции и выберите пункт Встроенные функции.

Читать еще:  Установить access 2020

В разделе Категории выражений выберите пункт Текстовые.

В разделе Значения выражений выберите интересующие вас функции и прочитайте их краткое описание в нижней части построителя выражений.

Комбинирование текстовых функций для большей гибкости

Иногда при каждом вызове строковой функции приходится заново вычислять ее числовые аргументы. Например, функция Left принимает строку и число, как здесь: =Left([СерийныйНомер], 2). Хорошо, если вам всегда требуются именно два первых знака строки, но иногда нужное число знаков для разных элементов различно. Вместо того чтобы однозначно задавать число знаков, его можно вычислять с помощью другой функции.

Ниже приведены примеры серийных номеров, в каждом из которых есть дефис, но в разной позиции.

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

Вместо того чтобы вводить числа в качестве второго аргумента функции Left, мы кабеля функция InStr, которая возвращает позицию дефиса в числовом формате. Из него вычитается 1 это значение и получите соответствующее количество символов для функции Left для возврата. Во-первых, но при этом немного эксперименты, можно объединить две или более выражений для получения результатов, которые нужно кажется немного сложным в.

Дополнительные сведения об использовании строковых функций см. в статье Использование строковых функций в SQL-запросах в Access.

Макросы Access 2007. Ускорение поиска

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

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

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

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

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

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

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

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

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

Читать еще:  Как скачать powerpoint бесплатно на macbook

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

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

Задание

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

Связанные статьи

Рекомендую прочесть статьи, связанные с данной:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Access поиск по части слова

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

Случается, что по конкретному полю нужно провести поиск на совпадение, а бывает не одно слово, а целый список из ключевых слов.
Можно ли в Access реализовать поиск ключевых слов по полю из, допустим, текстового файла или из excel (не принципиально)?
если да, то как?

Akina

Akina

Во-вторых, если таблица и правда «длиннющая», то 1кк строк в Экселе на неё может тупо не хватить.
Это ещё не переходим к тому, что могут возникнуть надобности вроде комбинирования вхождений по разным, порой непростым, логикам — да даже просто подсчёт, скольким шаблонам соответствует запись, заставит Экселя загрустить.

Так что кривой костыль (а ты ещё докажи, что он кривой) лучше поюзанного набора чесательных палочек.

Никому ничего доказывать тут не намерен.
Если хотите само утвердиться, напишите удельный конструктивный совет.
А хамить и дерьмом поливать низко.
Вы же не тролли-флудеры (все еще надеюсь) Akina, #SI#.
Я попросил помощи, вместо этого увидел насмешки и флуд.

Добавлено 25.08.15, 04:48

поспешное и, как правило, неверное суждение.

Добавлено 25.08.15, 04:49

Akina

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

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

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

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

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

раз уж по сабжу пошли, то вопрос был:
Можно ли в Access реализовать поиск ключевых слов по полю из текстового файла или из excel (не принципиально)?
если да, то как?
повторюсь, я не спец в MS Access и дополнение про условие обработки массивов не уяснил.

Ссылка на основную публикацию
Adblock
detector
Akina