Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 14:42   #1
Ivan_C
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 11
По умолчанию БД Access

всем привет. хочу сделать следующее. в form1 через tedit вводишь слово, и он проверял в базе данных есть ли это слово. если есть, то происходит открытие form2, если нету то form3. помогите реализовать?
Ivan_C вне форума Ответить с цитированием
Старый 10.10.2011, 14:55   #2
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Цитата:
Сообщение от Ivan_C Посмотреть сообщение
всем привет. хочу сделать следующее. в form1 через tedit вводишь слово, и он проверял в базе данных есть ли это слово. если есть, то происходит открытие form2, если нету то form3. помогите реализовать?
примерно так...
Код:
adoquery.Close;
adoquery.SQL.Clear;
adoquery.SQL.Add('select * from tab where pole like'+quotedstr(rzedit1.text+'%'));
adoquery.Open;

if edit1.text=adoquery.tab.asstring then
form2.show 
else
form3.show;
end;
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 11.10.2011, 09:01   #3
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Раз пошла такая пьянка я бы предложил
Код:
select count(идентификатор в таблице) as pole from
Вместо
Код:
select * from
А потом проверить
Код:
if adoquery.FieldsByName('pole ').Value > 0 then
показываем форму
else
не показываем форму
PS. Ну еще регистр необходимо учесть. т.к. вАСЯ != Вася
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 13.10.2011, 12:25   #4
Ivan_C
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 11
По умолчанию

спасибо за помощь. возник еще один вопрос. мой делфи 7 не знает adoquery.tab.asstring(не знает Tab Asstring), также FieldsByName. подключаюсь к Access'у через Microsoft Jet 4.0 OLE DB Provider.
Ivan_C вне форума Ответить с цитированием
Старый 13.10.2011, 13:07   #5
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

FieldByName.
После ввода в тексте "adoquery." (с точкой) нажимаем Ctrl+[пробел].
Вводим буквы "fi".
Из списка выбираем нужный метод (здесь FieldByName) и не жалуемся, что Дельфи что-то там не знает.
Прик вне форума Ответить с цитированием
Старый 13.10.2011, 13:15   #6
Ivan_C
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
FieldByName.
После ввода в тексте "adoquery." (с точкой) нажимаем Ctrl+[пробел].
Вводим буквы "fi".
Из списка выбираем нужный метод (здесь FieldByName) и не жалуемся, что Дельфи что-то там не знает.
прошу прощения, FieldByName знает
Ivan_C вне форума Ответить с цитированием
Старый 13.10.2011, 13:29   #7
Ivan_C
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 11
По умолчанию

правильно ли написан код?
Код:
FindQuery.Close;
FindQuery.SQL.Clear;
FindQuery.SQL.Add('select count(password) as pole from'+quotedstr(DBedit1.Text+'%'));
FindQuery.Open;
if FindQuery.FieldByName('pole ').Value>0 then
Form1.Show;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.10.2011 в 13:50.
Ivan_C вне форума Ответить с цитированием
Старый 13.10.2011, 13:49   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет, неправильно!

где имя таблицы и имя поля, по которому ищете?!!!

должно быть что-то вроде
Код:
FindQuery.SQL.Add('select count(password) as pole from ИМЯТАБЛИЦЫ where ПолеВТаблице like '+quotedstr(DBedit1.Text+'%'));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2011, 14:03   #9
Ivan_C
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нет, неправильно!

где имя таблицы и имя поля, по которому ищете?!!!

должно быть что-то вроде
Код:
FindQuery.SQL.Add('select count(password) as pole from ИМЯТАБЛИЦЫ where ПолеВТаблице like '+quotedstr(DBedit1.Text+'%'));
ругается на FindQuery:Field 'Password' not found. хотя это поле есть.

Последний раз редактировалось Ivan_C; 13.10.2011 в 14:12.
Ivan_C вне форума Ответить с цитированием
Старый 13.10.2011, 14:19   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОМГ.

Вы что, вставили строчку так, как я её привёл?!?!?

Там, где у меня выделено фиолетовым напишите имя СВОЕЙ ТАБЛИЦЫ и имя ПОЛЯ в этой таблице (где вы ищете)!


p.s. да, и вместо select count(password) as pole from ......
имхо, лучше написать select count(*) as pole from ....
т.е. заменить идентификатор просто на звёздочку.
Это не принципиально, но, имхо, со звёздочкой лучше...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из Access 2010 в Access 2007 Radzhab Microsoft Office Access 3 10.05.2011 22:13
Запрос с датами и временем к Access [D7, Access] alexandr2010 БД в Delphi 3 26.07.2010 22:19
Есть БД на Access 2.0, нужно открыть в Access 2003 Spirit_33 Microsoft Office Access 1 23.07.2009 07:59
Access 97, открыть базу данных Access alexhol Microsoft Office Access 0 27.04.2009 12:10
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable Lev БД в Delphi 0 11.11.2007 12:14