|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Поиск по бд акссес
Есть БД аксес, сейчас поиск и формирование отчета происходит по дате рождения, помогите сделать по ФИО.
Вот часть кода формы поиска: Код:
unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB,shellapi; type TForm7 = class(TForm) Edit1: TEdit; Label1: TLabel; Label2: TLabel; ComboBox1: TComboBox; Button1: TButton; ADOQuery10: TADOQuery; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; implementation uses main; {$R *.dfm} procedure TForm7.Button1Click(Sender: TObject); var F: TextFile; sql:String; b:Integer; begin ADOQuery10.SQL.Clear; b:=0; if(Edit1.Text<>'')then begin sql:='Data_rogdenie=DateValue("'+Edit1.Text+'")'; b:=1; end; if(ComboBox1.Text<>'')then begin if(b=1)then sql:=sql+' AND '; sql:='Pol="'+ComboBox1.Text+'"'; b:=1; end; ADOQuery10.SQL.Add('SELECT Tab_nomer FROM Sotrydnik WHERE '+sql); try ADOQuery10.Active:=True; except ShowMessage('Произошла исключительная ситуация: Не могу поместить данные! Обратитесь к разработчику программы.'); end; with Form1 do begin AssignFile(F, 'report.htm'); Rewrite(F); Writeln(F,'<html><head><title>Отчет по сотруднику сотруднику</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body>'); Последний раз редактировалось Admin, 04.02.2010 в 11:46. |
#2
|
||||
|
||||
У Вас ФИО это одно поле или 3(имя,фамилия,отчество)?
|
#3
|
|||
|
|||
Вообще 3 мя, но если можно подскажите как сделать отдельно Фамилию это поле Familia
И все вместе 3 мя поля ми |
#4
|
||||
|
||||
Надо просто сделать другой запрос,как-то так:
Код:
Это поиск по фамилии sql:='Upper(Familia)=Upper('+familia+')'; // upper-нужен что бы сделать регистронезависимый поиск .................... ADOQuery10.SQL.Add('SELECT Tab_nomer FROM Sotrydnik WHERE '+sql); Общий поиск: sql:='Upper(Familia)=Upper('+familia+') AND Upper(NAME)=Upper('+name+'') AND Upper(Otchestvo)=upper('+otchestvo+')'; ADOQuery10.SQL.Add('SELECT Tab_nomer FROM Sotrydnik WHERE '+sql); где familia,name,otchestvo - переменные типа string в которых хранятся необходимые фамилия,имя,отчество |
#5
|
|||
|
|||
Если делаю как написано выскакивает след
[Error] Unit7.pas(42): Undeclared identifier: 'family' [Fatal Error] Diplom.dpr(11): Could not compile used unit 'Unit7.pas' Если делаю так sql:='Upper(Family)'; ТО опять ни чего не происходит открываеться файл htm отчета пустой. |
#6
|
||||
|
||||
family - это переменная, которой надо присвоить значение!
Код:
procedure TForm7.Button1Click(Sender: TObject); var family:string; .............. family:='petrov'; ................. |