Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic в примерах.docx
Скачиваний:
12
Добавлен:
18.08.2019
Размер:
1.1 Mб
Скачать

Поиск записей

Добавьте в форму кнопку для поиска записей:

Свойства кнопки:

Style: 1 – Graphical

Picture: C:\Program Files\DevStudio\Vb\Graphics\Icons\Misc\Binoculr

Код:

Dim nameFind As String ‘ в разделе общих объявлений General

Private Sub cmdFind_Click()

nameFind = InputBox("Введите любую часть наименования товара", "Поиск по названию")

Data1.Recordset.FindFirst "[Наименование] like '*" & nameFind & "*'"

End Sub

С помощью этой кнопки Вы сможете найти любой товар по любой части его наименования. Например, если Вы введете в InputBox набор букв «огра», то будет найден виноград.

Это делает строка:

Data1.Recordset.FindFirst "[Наименование] like '*" & name & "*'"

Строка: <Data1.Recordset.FindFirst "[Наименование] like '" & name & "*'"> будет искать товар по начальным введенным буквам.

Строка: <Data1.Recordset.FindFirst "[Наименование] like '" & name & "'"> будет искать товар по полному наименованию.

Поиск дальше

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

Добавьте кнопку «Поиск дальше». Под кнопку поместите код:

Data1.Recordset.FindNext "[Наименование] like '*" & nameFind & "*'"

Дополните Вашу базу данных еще каким-нибудь товаром с одинаковым наименованием, но с другой ценой. Испытайте кнопку «Искать дальше».

Элемент управления DBGrid

Используется для представления данных в виде таблицы:

  1. Добавьте в проект еще одну форму. Назовите ее «Таблица данных».

  2. Добавьте в первую форму кнопку «Таблица»:

  1. Под кнопку напишите код: Form2.Show

  2. Откройте для работы Form2.

  3. Пункт меню Project – Components… - флажок на Data Bound Grid Control – OK

  4. Дважды щелкните в панели элементов на появившемся элементе DBGrid.

  5. Растяните элемент по всей форме.

  6. Добавьте в форму элемент Data и привяжите его к Вашей базе данных. Свойство Visible поставьте False.

  7. Снова выделите элемент DBGrid.

  8. Щелкните правой кнопкой мыши на выделенном элементе.

  9. Выберите пункт Retrieve Fields.

  10. Еще раз сделайте то же самое и выберите пункт Edit

  11. На элементе DBGrid установите мышью удобную для просмотра ширину полей.

  12. Запустите проект:

Теперь Вы можете просматривать записи в таблице и редактировать их.

Запросы

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

  1. Добавьте в форму кнопку «Выбрать»

  2. Добавьте новую форму в проект. Назовите ее «Запрос на выборку»

  3. Под кнопку «Выбрать» поместите код: Form3.Show

  4. Заполните Form3 элементами:

  1. Добавьте еще одну форму в проект. Назовите ее «Выбрано записей»

  2. Под кнопку «Выполнить выборку» напишите код:

Public Str, Str2 As String ‘ объявление глобальных переменных

Public Data1, Data2 As Date

Private Sub Command1_Click()

‘ проверка вводимых значений

If IsNumeric(Text1.Text) Then Str = CInt(Text1.Text): Form4.Show

If IsNumeric(Text2.Text) Then Str2 = CInt(Text2.Text): Form4.Show

If IsDate(Text3.Text) And IsDate(Text4.Text) Then

Data1 = CDate(Text3.Text)

Data2 = CDate(Text4.Text)

Form4.Show

End If

End Sub

  1. Откройте форму 4.

  2. Пометите туда элемент Data и привяжите его к БД «Склад»и к таблице «Товары».

  3. Поместите элемент DBGrid и привяжите его к элементу Data.

  4. Выделите форму 4.

  5. Щелкните View Code (окно Project)

  6. В поле написания кода выберите процедуру обработки события Form_Load()

  7. В процедуре напишите код:

Private Sub Form_Load()

‘объявляем объектную переменную recTovar как Recordset.

Dim recTovar As Recordset

‘объявляем объектную переменную db как Database.

Dim db As Database

‘переменная strSQL будет содержать строку запроса языка SQL

Dim strSQL As String

‘привязываем базу данных к переменной db

Set db = OpenDatabase("C:\Мои документы\sklad.mdb")

If IsNumeric(Form3.Str) Then

strSQL = "SELECT Наименование,Цена from [Товары] where Цена >" & Form3.Str & _

" order by Наименование asc"

End If

If IsNumeric(Form3.Str2) Then

strSQL = "SELECT Наименование,Цена from [Товары] where Цена <" & Form3.Str2 & _

" order by Наименование asc"

End If

If IsDate(Form3.Data1) Then

‘ так как формат даты для SQL должен быть – ДД/ММ/ГГ, а VB представляет

‘ дату как ДД.ММ.ГГ, то приходится пареводить вручную

a$ = Left(Form3.Data1, 2)

b$ = Mid(Form3.Data1, 4, 2)

c$ = Right(Form3.Data1, 2)

d1$ = a$ + "/" + b$ + "/" + c$

a1$ = Left(Form3.Data2, 2)

b1$ = Mid(Form3.Data2, 4, 2)

c1$ = Right(Form3.Data2, 2)

d2$ = a1$ + "/" + b1$ + "/" + c1$

strSQL = "SELECT Наименование,Цена,Доставка from [Товары] where Доставка" & _

" between #" & d1$ & "# and #" & d2$ & "#"

End If

‘привязываем конкретные записи, выбранные строкой SQL, к переменной recTovar

Set recTovar = db.OpenRecordset(strSQL)

‘эти записи привязываем к элементу управления Data1. А так как к Data привязана

‘таблица DBGrid, то в таблице на экране появляются выбранные записи

Set Data1.Recordset = recTovar

End Sub

При составлении запроса к базе данных мы использовали специальный язык запросов SQL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]