Как реализовать запрос формы (запрос) в проекте Microsoft Access

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

Эта статья касается только в проекте Microsoft Access (.adp).


Для версии Microsoft Access 2000 в этой статье см.
235359.

Обзор

В этой статье показано, как использовать формы Microsoft Access для задания условий запроса в проекте Microsoft Access.

Дополнительные сведения

В базе данных Microsoft Access (.mdb) или в Microsoft Office Access 2007 ACCDB-запрос по форме прием можно использовать для создания «форма запроса» для ввода критериев. Форма запроса содержит пустые текстовые поля или раскрывающиеся списки, каждый из которых представляет поле в таблице Access, необходимо выполнить запрос. Сделать записи только в полях, для которых требуется задать условия поиска.

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

Создание хранимой процедуры

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

  1. Откройте доступ образца проекта Access NorthwindCS.adp. По умолчанию этот файл устанавливается в < диск >: \ < Microsoft Access выбирает папку >.

  2. В Microsoft Office Access 2003 или Microsoft Access 2002 нажмите кнопку запрос в меню Вставка .

    В Microsoft Office Access 2007 откройте вкладку Создать .

  3. В Access 2003 или Access 2002 нажмите кнопку Ввод сохраненной процедуры в диалоговом окне Новый запрос и нажмите кнопку ОК.

    В Access 2007 щелкните Хранимая процедурав другой группе.

  4. Введите следующие инструкции Transact-SQL в окне хранимую процедуру:

    Create Procedure "QBFProc"
    @CustomerID varchar(10), @EmployeeID int, @OrderDate datetime
    As
    Declare @SQLSTRING varchar(1000)
    Declare @SelectList varchar(1000)

    SET NOCOUNT ON

    SELECT @SelectList = 'SELECT * FROM Orders'

    --Check to see if CustomerID search criteria is NULL.
    --If it contains a value, Begin to construct a WHERE clause.
    IF @CustomerID Is NOT NULL
    BEGIN
    SELECT @SQLString = 'WHERE CustomerID = ''' + @CustomerID + ''''
    END

    --Check to see if EmployeeID search criteria is NULL.
    --If it contains a value, add additional information to the WHERE clause.
    IF @EmployeeID Is NOT NULL
    BEGIN
    IF @SQLSTRING Is NOT NULL
    BEGIN
    SELECT @SQLSTRING = @SQLSTRING + ' AND EmployeeID = ' + Convert(varchar(100), @EmployeeID)
    END
    ELSE
    BEGIN
    SELECT @SQLSTRING = 'WHERE EmployeeID = ' + Convert(varchar(100), @EmployeeID)
    END
    END

    --Check to see if OrderDate search criteria is NULL.
    --If it contains a value, add additional information to the WHERE clause.
    IF @OrderDate Is NOT NULL
    BEGIN
    IF @SQLSTRING Is NOT NULL
    BEGIN
    SELECT @SQLSTRING = @SQLSTRING + ' AND OrderDate = ''' + Convert(varchar(20), @OrderDate) + ''''
    END
    ELSE
    BEGIN
    SELECT @SQLSTRING = 'WHERE OrderDate = ''' + Convert(varchar(20), @OrderDate) + ''''
    END
    END

    --Concatenate the SELECT and the WHERE clause together
    --unless all three parameters are null in which case return
    --@SelectList by itself without criteria.
    IF @CustomerID IS NULL AND @EmployeeID IS NULL AND @OrderDate IS NULL
    BEGIN
    SELECT @SelectList = @SelectList
    END
    ELSE
    BEGIN
    SELECT @SelectList = @SelectList + ' ' + @SQLSTRING
    END

    --Execute the SQL statement.
    EXECUTE(@SELECTLIST)
  5. Сохранить хранимую процедуру с именем по умолчанию QBFProc, а затем закройте процедуру.

Создание запроса по форме

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

  1. Создайте новую форму, не основанную на таблице или запросе и назовите его QBF_Form.

  2. В Access 2003 или Access 2002 убедитесь, что кнопка Мастера не нажата в панели элементов. В Access 2007 убедитесь, что кнопка Использовать мастеране нажата в группе элементы управления . Затем добавьте три поля со списком формы назначения следующие свойства:
    Combo Box:
    Name: cboCusID
    Row Source Type: Table/View/StoredProc
    Row Source: SELECT CustomerID FROM Customers

    Combo Box:
    Name: cboEmpID
    Row Source Type: Table/View/StoredProc
    Row Source: SELECT EmployeeID, LastName FROM Employees
    Column Count: 2
    Column Widths: 0;1
    Bound Column: 1

    Combo Box:
    Name: cboOrder
    Row Source Type: Table/View/StoredProc
    Row Source: SELECT OrderDate FROM Orders

  3. Добавьте кнопку в форму с назначения следующие свойства:
    Name: cmdOpenFinal
    Caption: Open Form
    On Click: [Event Procedure]

  4. Нажмите кнопку Построить (...) справа от [Процедура обработки событий], а затем настроить процедуру следующим:

    Private Sub cmdOpenFinal_Click()
    DoCmd.OpenForm "frmFinal", acFormDS
    End Sub
  5. Сохраните и закройте форму, чтобы гарантировать сохранение формы как QBF_Form.

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

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

  1. В Access 2003 или Access 2002 нажмите кнопку запросы в списке объекты окна базы данных и нажмите кнопку QBFProc хранимой процедуры так, чтобы он получил фокус.

    В Access 2007 выберите формы группы в области переходов и выберите команду QBFProc хранимую процедуру таким образом, чтобы он получил фокус.

  2. В Access 2003 или Access 2002 выберите команду Автоформа в меню Вставка .

    В Access 2007 откройте вкладку Создать и нажмите кнопку
    Формы в группе формы .

  3. При появлении запроса на ввод параметра, нажмите кнопку Отмена.

  4. Сохраните форму, созданную в виде frmFinal.

  5. Задайте свойство InputParameters этой формы:
    @CustomerID varchar(10) = Forms!QBF_Form!cboCusID, @EmployeeID int =
    Forms!QBF_Form!cboEmpID, @OrderDate datetime = Forms!QBF_Form!cboOrder

  6. Сохраните и закройте форму frmFinal.

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

Ссылки

Дополнительные сведения о Осуществляют в базе данных Microsoft Access щелкните следующий номер статьи базы знаний Майкрософт:

209645 ACC2000: как использовать метод запроса по форме (запрос)

Дополнительные сведения о языке Transact-SQL (TSQL) и создание хранимых процедур с входными параметрами посетите следующий веб-узел корпорации Майкрософт:

http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

Нужна дополнительная помощь?

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

Были ли сведения полезными?

Спасибо за ваш отзыв!

×