|
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 15
|
|
Поиск в базе данных05.07.2007, 12:07. Показов 5673. Ответов 22
Метки нет (Все метки)
День добрый, помогите чайнику.
Вопрос вот в чем: есть база данных подкачена в VB с помошью Visual Data Meneger надо создать поиск текста из Text1 в ячейках базы в заданном столбце. И затем вывести результат на экран. Заранее благодарен.
0
|
|
| 05.07.2007, 12:07 | |
|
Ответы с готовыми решениями:
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
|
|
| 06.07.2007, 13:27 | |
|
Помогаю со студенческими работами здесь
20
Не работает поиск в базе данных. Нечеткий поиск в базе данных Поиск по базе данных Access Поиск по готовой базе данных, сделанной на Microsoft Access Поиск в ADoquery, Delphi, поиск в базе данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|