![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет всем можете помочь написать код
я к ADOConnection подключил БД access,вывел в DBgrid1 все таблица показывает. Какой код нужно написать чтобы :и скал по таблице dbgrid1,в edi1 вводить данные и на button1 кликать и он производил поиск,а при выборе radioButton2 он производил поиск только фамилии,а по RadioButton3 только Страна, и на radiobutton1 отдельно просто жмешь и он выводил первые три результата и все результаты показывал в dbgrid2 и прошу чтоб код: чтоб результат поиска записывался в текстовый файл .txt вот скрины |
#2
|
|||
|
|||
![]() 1. Скрины не видны.
2. Сумбурно, но более менее понятно. Задача настолько элементарная, что даже думать не хочется. Если ты хочешь видеть результат поиска в другом гриде, то просто надо по твоим параметрам генерировать запрос и выполнять его (не уверен, что access поддерживает ограничение кол-ва выводимых записей, тут надо смотреть). Если устраивает фильтрация в основном гриде, то можно "сесть" на событие OnFilterRecord. Тогда даже кнопки никакие не нужны, все будет работать автоматически на локали. 3. Вывод в файл тоже делается без особых проблем, но зависит от данных, которые надо выводить. 4. Для получения более конкретной помощи необходимо выкладывать свой код и КОНКРЕТНО вопросы ЧЕГО НЕ ПОЛУЧАЕТСЯ. С темами "сделайте мне" и "дайте готовый код" надо в раздел "Работа" или "Код на шару". |
#3
|
|||
|
|||
![]() ПОмогите а то я вобще тупой =(
ВОт сылка на саму программу :http://files.mail.ru/A78000242DFA48B4B2C827CA07254B34 скрины ![]() ![]() Последний раз редактировалось bsambo2013, 28.11.2013 в 10:46. |
#4
|
|||
|
|||
![]() ну брось еще один ADOQuery, подключи его (пусть это будет ADOQueryFind).
При клике на кнопку "Найти" напиши примерно такой код (имен полей не знаю, соотв, поставил по русски): Код:
procedure Form1.btFindClick(Sender : TObject); const cQuery = 'SELECT * FROM Таблица WHERE %s = ''%s'''; var sQuery : String; sField : String; begin If rbLastName.Checked Then sField := 'Фамилия' Else sField := 'Страна'; sQuery := Format(cQuery,[sField,edFind.Text]); ADOQueryFind.SQL.Clear; ADOQueryFind.SQL.Add(sQuery); ADOQueryFind.Open; end; Это для точного сравнения. Для точного сравнения без учета регистра, константу надо описать так: Код:
const cQuery = 'SELECT * FROM Таблица WHERE UPPER(%s) = UPPER(''%s'')'; Для неточного сравнения (по началу строки), но с учетом регистра, надо сделать такую константу: Код:
const cQuery = 'SELECT * FROM Таблица WHERE %s LIKE ''%s%'''; Но я бы все-равно лучше бы "сел" на OnFilterRecord. Так красивее получается ![]() ЗЫ. Все, дальше или в "Код на шару", или в "Работу". |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
bsambo2013 (28.11.2013)
|
#5
|
|||
|
|||
![]() у меня ошибка когда adoqueryfind подключаю к базе в activ ставлю на true И
ADOQueryFInd :Missing SQL propertly.Я вобще тупой не могли бы вы сами подравить?прошу очень сильно =( http://files.mail.ru/A78000242DFA48B4B2C827CA07254B34 Код:
begin ADOQuery2.SQL.Text:='SELECT'; if CheckBox1.Checked then ADOQuery2.SQL.Add('TOP 3'); ADOQuery2.SQL.Add('* FROM Temp'); If length(Edit1.Text)>0 then begin if RadioButton1.Checked then ADOQuery2.SQL.Add('WHERE [Фамилия] like '+QuotedSTR('%'+Edit1.Text+'%')) else ADOQuery2.SQL.Add('WHERE [Страна] like '+QuotedSTR('%'+Edit1.Text+'%')); end; ADOQuery2.Open; Админ: Пользуемся тегами для оформления кода! Всё, всем спасибо! Сам догадался как сделать. АА есщо можно?,При нажатии на CheckBox1 должен выводить список 3 первых из dbgrid1 результатов баллы там есть строка "общие",выводит в Dbgrid2 Последний раз редактировалось M.A.D.M.A.N., 05.12.2013 в 07:22. |