Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/30: Рейтинг темы: голосов - 30, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15

Поиск в базе данных

05.07.2007, 12:07. Показов 5673. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый, помогите чайнику.
Вопрос вот в чем:
есть база данных подкачена в VB с помошью Visual Data Meneger надо создать поиск текста из Text1 в ячейках базы в заданном столбце. И затем вывести результат на экран.
Заранее благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2007, 12:07
Ответы с готовыми решениями:

Поиск по базе данных
Доброго времени суток знатокам ВБ! Подскажите как зделать поиск по базе данных ! Например в комбобоксе я выбираю столбец...

Поиск в базе данных
Помогите пожалуйста, у меня есть небольшая прога на VB6, она имеет базу данных, созданную в Access, отображается с помощью флекс грид, мне...

Поиск по базе данных access
Здравствуйте. Как сделать поиск по базе данных access, подключенной к датагридвью по разным полям? Например один тексбокс для поиска...

22
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 12:10
Выполняй SQL-запрос к БД: 'SELECT * FROM Table1 WHERE column1 LIKE '*что искать*''
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 12:15  [ТС]
Спасибо, а кк теперь вывести на экран?
0
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 12:27
Можно сделать кучей разных способов. Для новичка возможно легче всего будет использование компонента Data. Помести его на форму, затем открывай рекордсет

Set rs = db.OpenRecordset('SELECT....')
Set Data1.Recordset = rs

Подробнее сначала посмотри справку по Data (например, msdn.microsoft.com), если не понятно, то спрашивай, постараемся помочь
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 13:00  [ТС]
Спасибо за совет.
Да вот только. Встроенной справки нет.
А инет в наших местах стоит довольно дорого. И начальство голоу снять могёт за него.

Получается следующее: пишу вот что
Private Sub cmdSelect_Click()
Set rs = db.OpenRecordset('select*from data1 where Number like '*text1*'')
Set data1.Recordset = rs
End Sub

а он ругается и в ответ пишет 'требуется объект'
0
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 13:22
Ты должен зайти в меню Project - References, добавить 'Microsoft DAO Object Library', потом, чтобы не было сообщений об ошибках, открывать БД как положено, а не как придется, e.g.

Dim Db As Database, rs As Recordset

Set Db = Workspaces(0).OpenDatabase('C:database1. mdb')
Set rs = Db.OpenRecordset('SELECT ...')

Do While Not rs.EOF
' Выводим все значения в список List1
List1.AddItem rs.Fields('column1')
rs.MoveNext
Loop

' Закрываем БД
rs.Close
Set rs = Nothing
Db.Close
Set Db = Nothing

С Data не помню точно как, потому что у самого хелпа нет, но тебе, если хочешь и дальше работать с БД, нужно купить хотя бы какую-нибудь книжку про бэйсик.
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 13:33  [ТС]
Спасибо! Удачи!
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 14:15  [ТС]
может подскажешь еще раз?
Теперь все вроде в норме, только ругается на несоответствие типов. В MDB таблице все колонки текстовые.
Заранее спасибо.
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 14:17  [ТС]
И еще один вопросик: посоветуй книженцию.
0
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 14:32
В каком месте ругается про типы? Вроде бы все должно быть нормально. Там еще если быть точнее надо писать rs.Fields('column1').Value, но это несущественно...

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

http://www.ozon.ru/detail.cfm/ent=2&partner=vbcode&id=9900

если про VB+БД, то советую:

http://www.ozon.ru/detail.cfm/ent=2&partner=vbcode&id=10077
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 14:35  [ТС]
За совет спасибо, а ругается вот в этом месте:

Set rs = db.OpenRecordset('select * from telfone where Number like '*text1*'')
0
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 14:44
Не уверен, что правильно подставляешь значение, насколько понял, text1 - это текстовое поле на форме, где вводишь телефон?
Тогда Select должен выглядеть:

Set rs = db.OpenRecordset('select * from telfone where Number like '*' & text1.text & '*'')
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
05.07.2007, 14:57  [ТС]
Подставил твою строку, но все равно не работает.
Получилось вот что:

Private Sub cmdSelect_Click()
Dim db As Database, rs As Recordset

Set db = Workspaces(0).OpenDatabase('C:Telfone elfone.mdb')
Set rs = db.OpenRecordset('select * from telfone where Number like '*' & Text1.Text & '*'')


Do While Not rs.EOF
List1.AddItem rs.Fields('Number').Value
rs.MoveNext
Loop

rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

End Sub
0
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 15:15
Поставь перед

Set rs = db.OpenRecordset('select * from telfone where Number like '*' & Text1.Text & '*'')

строку отладки

MsgBox 'select * from telfone where Number like '*' & Text1.Text & '*''

или пиши

Debug.Print 'select * from telfone where Number like '*' & Text1.Text & '*''

чтобы вывести значения в окне Debug.
0
ger
05.07.2007, 17:55
Как я понял вся ругань происходит из-за несоответствия SQL запроса.
На этом же сайте есть неплохой хелп.
В разделе 'базы данных'.

А еще можно попробовать так:
select * from telefone where Number.telefone ='' & Text1.Text & '''
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 18:18
Mangol, ты случайно имя БД и имя таблицы не путаешь? Че то у тебя везде 'telfon' стоит, во-вторых попробуй сначала выполнить этот запрос из Access, чтобы точно убедится в названии всех полей и пр...
0
messer
05.07.2007, 19:33
А лучше так:
select * from telefone where Number.telefone ='' & Trim(Text1.Text) & '''
0 / 1 / 3
Регистрация: 27.03.2012
05.07.2007, 20:14
может быть telfone.Number?
0
ger
06.07.2007, 10:54
Неплохая книга Джона Коннэлла 'Visual Basic 6. Введение в программирование баз данных.' Издательство WROX. Перевод - издательство ДМК.

А запрос попробуй сделать так:
SELECT * (здесь перечисляются поля для выборки или * - значит все поля) FROM X(имя таблицы базы данных ) WHERE Y.X(имя поля.имя таблицы , хотя синтаксис может различаться. например [Y]![X])='' &(знак конкактенации) Text1.text & '' '

Все это желательно в одну строку.
А еще я поначалу проверял соответствие синтаксиса и типа данных на контрольном запросе через Access.
Там сразу видно, где ошибка, и результат можно проверить.
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
06.07.2007, 13:27  [ТС]
Спасибо огромное за советы, переписал все заново: теперь работает.
Удачи!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2007, 13:27
Помогаю со студенческими работами здесь

Не работает поиск в базе данных.
Привет всем! Почему не работает ни как понять не могу. В MSDN смотрел вроде всё нормально, а почему не работает понять не могу. ...

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

Поиск по базе данных Access
Товарищи программисты, помогите плиз, как сделать поиск в vb6 по базе данных, где критерий поиска задаётся из строки. Например, по...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru