Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> БД и ФлексГрид + поиск, как организовать? 
:(
    Опции темы
Gannibal
  Дата 11.9.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



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

у меня на форме есть ФлексГрид(ФГ) + 5 ТекстБоксов(ТБ) для поиска...

в ФГ записываю данные из ДБ вот атк вот

Код

intCount = Rst.RecordCount
Rst.MoveFirst

For i = 1 To intCount - 1
  Rst.MoveNext
  flxKnihy.AddItem Rst.Fields("ID") & vbTab & Rst.Fields("Prijmeni") _
  & vbTab & Rst.Fields("Jmeno") & vbTab & Rst.Fields("Dilo") _
  & vbTab & Rst.Fields("Zanr") & vbTab & Rst.Fields("Rok") & vbTab & Rst.Fields("Nakladatelstvi") _
  & vbTab & Rst.Fields("Pujcka")
Next i


они отабражаются после загрузки програмы.. потом есть поля ТБ для поиска как мне обратно записать в ФГ по выбору например если у меня из 5 ТБ заполнено например только 3 и по трём этим значениям вывести записи в ФГ

надеюсь обяснил понятно smile

Это сообщение отредактировал(а) M.E.G.U.S - 11.9.2005, 13:32


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
boevik
Дата 11.9.2005, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Можно всю работу скинуть на базу, т.е. построить запрос на основании новых условий и результат записать в ФГ.

Второй вариант, сделать фильтр на готовый recordset (при условии, жто он не был закрыт). У меня этот вариант иногда работал слишком много времени.

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


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Gannibal
Дата 11.9.2005, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



огромно спасибо за подсказу... поиск написал вот так вот smile работает всё нормально без проблем...
Код

Private Sub cmdSearch_Click()
Dim strDotaz As String
Dim intLenght As Integer

On Error GoTo dbError

strDotaz = "SELECT * FROM knihy WHERE"

If txtID.Text <> "" Then
  strDotaz = strDotaz & "([ID]='" & txtID.Text & "') AND "
End If

If txtSurN.Text <> "" Then
  strDotaz = strDotaz & " ([Prijmeni]='" & txtSurN.Text & "') AND"
End If

If txtFirstN.Text <> "" Then
  strDotaz = strDotaz & " ([Jmeno]='" & txtFirstN.Text & "') AND"
End If

intLenght = Len(strDotaz)
strDotaz = Mid(strDotaz, 1, intLenght - 4)

Set Rst = Db.OpenRecordset("" & strDotaz & " ORDER BY Prijmeni DESC")
flxKnihy.Rows = 1

Rst.MoveLast
dbStart:
  flxKnihy.AddItem Rst.Fields("ID") & vbTab & Rst.Fields("Prijmeni") _
  & vbTab & Rst.Fields("Jmeno") & vbTab & Rst.Fields("Dilo") _
  & vbTab & Rst.Fields("Zanr") & vbTab & Rst.Fields("Rok") & vbTab & Rst.Fields("Nakladatelstvi") _
  & vbTab & Rst.Fields("Pujcka")
Rst.MovePrevious
GoTo dbStart
Exit Sub

dbError:
End Sub


boevik тебе огромное спасибо за наведение на мысль +


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Akina
Дата 11.9.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



M.E.G.U.S

Код
' skipped
Rst.MoveFirst

For i = 1 To intCount - 1
  Rst.MoveNext
'skipped

рекомендую обратить внимание, что ПЕРВАЯ запись рекордсета не обрабатывается...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gannibal
Дата 11.9.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Цитата(Akina @ 11.9.2005, 19:48)
рекомендую обратить внимание, что ПЕРВАЯ запись рекордсета не обрабатывается...


а точно незаметил smile вот так вот работает

Код

For i = 0 To intCount - 1
  flxKnihy.AddItem Rst.Fields("ID") & vbTab & Rst.Fields("Prijmeni") _
  & vbTab & Rst.Fields("Jmeno") & vbTab & Rst.Fields("Dilo") _
  & vbTab & Rst.Fields("Zanr") & vbTab & Rst.Fields("Rok") & vbTab & Rst.Fields("Nakladatelstvi") _
  & vbTab & Rst.Fields("Pujcka")
  Rst.MoveNext
Next i


Это сообщение отредактировал(а) M.E.G.U.S - 11.9.2005, 21:11


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.