Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с поиском по БД в Visual Basic 6.0

78K
24 апреля 2012 года
maxmironov94
9 / / 24.04.2012
Всем привет! Я практикуюсь в программировании и решил попробывать создать базу данных на Visual Basic. Почти все получилось, могу добавлять, удалять и изменять записи в базе данных. Но есть одна проблема, не могу создать поиск по базе. Вот на картинке интерфейс программы чтоб вы могли понять как устроена программа в общих чертах:

Объект Data1 при выполнении программы скрывается. Его заменяют 4 кнопки наверху.
Вот я не могу понять как устроить поиск. В коде кнопки я написал такой код:

При его выполнении пишут ошибку 3251. В интернете нашел другой вариант кода (на этом сайте):
Dim MyTable As Recordset
Set MyTable = Data1.Recordset
MyTable.Index = "AU_ID"
MyTable.Seek "=", 5
Ссылка на статью http://www.codenet.ru/progr/vbasic/vb_db/ раздел "Использование метода Seek для поиска записи."
Но он тоже не работает, при выполнении этого кода жалуется комп на запись Set MyTable = Data1.Recordset

Помогите пожалуйста разобраться. Лучшим вариантом было бы организовать поиск таким методом: Нажимаешь кнопочку Поиск, выскакивает inputbox, в него вводишь ИД записи и при успешном поиске эта запись открывалась на главной форме(верхний рисунок). Если не найдено то сообщить об осутствии. p.s. ещё нужно чтоб ИД не менялся от удаления предыдущих записей. Надеюсь на вашу помощь помогите плз :)
  • Data1 - его значение проверьте. Возможно, что там ничего нет. от D129, 24 апреля 2012 года
78K
25 апреля 2012 года
maxmironov94
9 / / 24.04.2012
Ну вот ни кто помочь мне не смог. Сегодня едя в метро в мою голову пришла отличная идея. И я смог организовать поиск. Не знаю будет ли он эффективным при большом количестве записей, но пока работает. Вот код для кнопки поиска:

Код:
Private Sub btnSearch_Click()
On Error Resume Next
Data1.Recordset.MoveFirst

Dim F As String
F = Trim(InputBox("Введите ИМЯ или ФАМИЛИЮ: "))
    For i = 0 To 5
        If txtName.Text = F Or txtSurname.Text = F Then
            i = 10
        Else
            i = 1
            On Error Resume Next
            Data1.Recordset.MoveNext
        End If
    Next
End Sub
Если у кого то имеютсся вопросы, спрашивайте отвечу :)
Не знаю на сколько гинеален мой код для поиска, но надеюсь нормальный код. :)
327
24 апреля 2012 года
UserNet2008
748 / / 03.04.2010
Цитата:
MyTable.Index = "AU_ID"


Index должно быть числовое значение.

Цитата:
Вот я не могу понять как устроить поиск.


Узнать Максильное количество полей, потом примерно так

 
Код:
For i% = 0 To Max
  If inputbox = Поле(N) Then
     ' что-то нашел
 End If
Next
327
02 мая 2012 года
UserNet2008
748 / / 03.04.2010
Цитата:
Ну вот ни кто помочь мне не смог.


НУ-НУ
Теория моего кода более правильна.

78K
03 мая 2012 года
maxmironov94
9 / / 24.04.2012
Цитата: UserNet2008
Цитата:
Ну вот ни кто помочь мне не смог.


НУ-НУ
Теория моего кода более правильна.



Но эдействие тоже. И практически один и тот же код. Ты узнаешь количество записей в базе и начинаешь искать по базу через цикл For...Next. А я сразу начинаю искать через цикл пока не достигнится последняя запись

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог