Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 29.04.2017
Сообщений: 226
MS Access

Программа не может найти параметр

12.10.2017, 23:05. Показов 600. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При смене фильтра программа отказывается находить необходимый параметр
Например: отфильтровал записи по параметру 1, переключился на другой фильтр, где параметр 2 и программа отказывается искать тот самый параметр 2

процедура кнопки фильтрации:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
procedure TFMain.Button6Click(Sender: TObject);
var sadd:string;
bl:boolean;
begin
if (Fedit.Text='') then begin
MessageDlg('Параметр фильтрации пуст', mtInformation,[mbok],0);
exit;
end;
DataModule2.QFilt.Active:=false;
DataModule2.QFilt.SQL.Clear;
 
 
case ComboBox3.ItemIndex of
0: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
      +'Участок like :filt'
      +' or Фамилия like :filt1 or Имя like :filt2'
      +' or Отчество like :filt3 or [Адрес проживания] like :filt4'
      +' or [Дата рождения] like :filt5 or [Больничный лист] like :filt6';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
      +'Участок like %:filt%'
      +' or Фамилия like %:filt1% or Имя like %:filt2%'
      +' or Отчество like %:filt3% or [Адрес проживания] like %:filt4%'
      +' or [Дата рождения] like %:filt5% or [Больничный лист] like %:filt6%';
DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt').Value:=Fedit.Text;
DataModule2.QFilt.Parameters.ParamByName('filt1').Value:=Fedit.Text;
DataModule2.QFilt.Parameters.ParamByName('filt2').Value:=Fedit.Text;
DataModule2.QFilt.Parameters.ParamByName('filt3').Value:=Fedit.Text;
DataModule2.QFilt.Parameters.ParamByName('filt4').Value:=Fedit.Text;
DataModule2.QFilt.Parameters.ParamByName('filt5').Value:=Fedit.Text;
if Fedit.Text='Открыт' then
DataModule2.QFilt.Parameters.ParamValues['filt6']:=true;
if Fedit.Text='Закрыт' then
DataModule2.QFilt.Parameters.ParamValues['filt6']:=false;
DataModule2.QFilt.Active:=true;
end;
1: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Участок like :filt';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Участок like %:filt%';
DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt').Value:=Fedit.Text;
end;
2: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Фамилия like :filt1';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Фамилия like %:filt1%';
    DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt1').Value:=Fedit.Text;
DataModule2.QFilt.Active:=true;
end;
3: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Имя like :filt2';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Имя like %:filt2%';
    DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt2').Value:=Fedit.Text;
end;
4: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Отчество like :filt3';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'Отчество like %:filt3%';
    DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt3').Value:=Fedit.Text;
end;
5: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'[Адрес проживания] like :filt4';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'[Адрес проживания] like %:filt4%';
    DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt4').Value:=Fedit.Text;
end;
6: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'[Дата рождения] like :filt5';
if CheckBox1.Checked=false then
sadd:='SELECT * FROM Пациенты WHERE '
    +'[Дата рождения] like %:filt5%';
    DataModule2.QFilt.SQL.Add(sadd);
DataModule2.QFilt.Parameters.ParamByName('filt5').Value:=Fedit.Text;
end;
7: begin
if CheckBox1.Checked=true then
sadd:='SELECT * FROM Пациенты WHERE '
    +'[Больничный лист] like :filt6';
    DataModule2.QFilt.SQL.Add(sadd);
case ComboBox4.ItemIndex of
1: DataModule2.QFilt.Parameters.ParamByName('filt6').Value:=true;
0: DataModule2.QFilt.Parameters.ParamByName('filt6').Value:=false;
end;
end;
 
end;
DataModule2.QFilt.Active:=true;
FFilt.ShowModal;
end;
Вложения
Тип файла: rar prog.rar (3.27 Мб, 2 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2017, 23:05
Ответы с готовыми решениями:

Программа не может найти таблицу
Здравствуйте, помогите с проблемой, когда программу запускаешь он выдает ошибку, что не может найти таблицу, хотя она лежит вместе со всеми...

Программа не может найти dll
Не могу понять в чем беда. Запускаю экзешник, а он выдает что не может найти dll. (лежат в одной папке) #include...

Программа не может найти файл obj
есть 2 проги на ассемблере и паскале,но когда запускаю прогу на паскале пишет что не может найти файл obj подскажите что делать((((оч...

1
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
12.10.2017, 23:49
Подстановочный символ (%) надо использовать в значениях, а не в параметрах:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
  sadd:='SELECT * FROM Пациенты WHERE '
        +'Участок like :filt'
        +' or Фамилия like :filt1 or Имя like :filt2'
        +' or Отчество like :filt3 or [Адрес проживания] like :filt4'
        +' or [Дата рождения] like :filt5 or [Больничный лист] like :filt6';
  DataModule2.QFilt.SQL.Add(sadd);
  DataModule2.QFilt.Parameters.ParamByName('filt').Value := '%'+Fedit.Text+'%';
  DataModule2.QFilt.Parameters.ParamByName('filt1').Value := '%'+Fedit.Text+'%';
  DataModule2.QFilt.Parameters.ParamByName('filt2').Value := '%'+Fedit.Text+'%';
  DataModule2.QFilt.Parameters.ParamByName('filt3').Value := '%'+Fedit.Text+'%';
  DataModule2.QFilt.Parameters.ParamByName('filt4').Value := '%'+Fedit.Text+'%';
  DataModule2.QFilt.Parameters.ParamByName('filt5').Value := '%'+Fedit.Text+'%';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2017, 23:49
Помогаю со студенческими работами здесь

Найти ошибку из-за которой не может запуститься программа
Помогите найти ошибку изза которой не может запуститься программа. #include "stdafx.h" #include <stdio.h> #include...

Программа не может найти файл, находящийся в папке Windows
Скажу сразу: пишу не вирус, хочу автоматизировать удаление ненужных служб и защитника windows ProcessStartInfo cmdP = new...

Телефонный справочник: программа не может найти указанный путь
помогите исправить ошибку - не может найти указанный путь program Phonebook; uses Crt; type Phone = record SurnameS : string; ...

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

Программа не может найти БД при задании относительного пути к ней
Привет всем. Вопрос вроде бы простой, но решить не знаю как. Сделал прошу. В ado указал полный адрес к базе. Запустил работает. Потом...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru