Показать сообщение отдельно
  #1  
Старый 16.10.2019, 19:43
APTEMKA APTEMKA вне форума
Прохожий
 
Регистрация: 28.09.2019
Сообщения: 13
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Поиск по базе данных, созданной в Access

Приветствую всех и прошу помощи. У меня есть база данных химчистки,созданная в access, по которой необходимо выполнить поиск по клиентам. Т.е. на отдельной форме я создал форму поиска:
1.png
И набросал вот такой код,изменив найденный на просторах интернета:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var s: string;
    n: integer;
begin
  n := 0;
  s := 'SELECT * FROM ';
  if Checkbox1.Checked then Inc(n);
  if Checkbox2.Checked then Inc(n);
  if Checkbox3.Checked then Inc(n);
  if Checkbox4.Checked then Inc(n);
  if n > 0 then
  begin
    s := s + ' WHERE ';
    if Checkbox1.Checked then
    begin
      s := s + '(DBGrid6.Columns[0] = "' + Edit1.Text + '")';
      if n > 1 then  s := s + ' AND ';
      Dec(n);
    end;
    if Checkbox2.Checked then
    begin
      s := s + '(DBGrid6.Columns[1] = "' + Edit2.Text + '")';
      if n > 1 then  s := s + ' AND ';
      Dec(n);
    end;
    if Checkbox3.Checked then
    begin
      s := s + '(DBGrid6.Columns[2] = "' + Edit3.Text + '")';
      if n > 1 then  s := s + ' AND ';
      Dec(n);
    end;
    if Checkbox4.Checked then
    begin
      s := s + '(DBGrid6.Columns[3] = "' + Edit4.Text + '")';
      if n > 1 then  s := s + ' AND ';
      Dec(n);
    end;
  with DataModule1.FindKlientsQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add(s);
    Open;
  end;
end;
Проблема в том,что я не совсем понимаю,что следует писать в строчке,ибо в интернете полно примеров,где выбираются просто таблицы:
Код:
s := 'SELECT * FROM ';
.
P.S. DBGrid6.Columns[i]-это столбцы базы данных,которая расположена на другой форме.Соответсвенно DBGrid6.Columns[0]-это номер.DBGrid6.Columns[1]-фамилия и т.д.
P.S.S. в DataModule1 расположены два компонента Query(FindKlientsQ) и DataSource(FindKlientsQDS).
12.png
В Query пытался выбирать все DataBaseName,но ничего не работает.
Возможно,что это можно сделать намного проще и я всё усложняю,поэтому и прошу помощи.
Ответить с цитированием