Я хотел бы отфильтровать данные из MS Access и получить их в LazReport. Я пробовал несколько комбинаций кода, но никто из них не работал. Я все еще получаю ошибку «Типы данных не равны в выражении критерий». Поле MS Access установлено в Date/Time с форматом Short Date (01.01.2017). DateTimePicker установлен на YMD (Год, Месяц, День).Delphi/Lazarus Фильтр данных MSAccess SQL Query с использованием DateTimePicker
Это мой код:
procedure TForm12.BitBtn1Click(Sender: TObject);
begin
If ListBox1.ItemIndex=0 then
ReportSelected.Caption:=Listbox1.Items[Listbox1.ItemIndex];
If ListBox1.ItemIndex=1 then
ReportSelected.Caption:=Listbox1.Items[Listbox1.ItemIndex];
If ListBox1.ItemIndex=2 then
ReportSelected.Caption:=Listbox1.Items[Listbox1.ItemIndex];
If ListBox1.ItemIndex=3 then
ReportSelected.Caption:=Listbox1.Items[Listbox1.ItemIndex];
If (ReportSelected.Caption='Production Overview') And (DBLookUpListBox1.ItemIndex <> -1) And (CboShift.ItemIndex = 0) then
begin
SQLQuery_ReportShift.Active:=true;
SQLQuery_ReportShift.Close();
SQLQuery_ReportShift.SQL.Text:='SELECT ProductionDate, Shift, AssemblyLine, Product, OperatorsAvailable, ProductionTime, CleanProductionTime, DowntimeTime, GoodParts, ScrapTotal, ScrapRate, QualityRate, Availability, Performance, OEE FROM ProductionInfo WHERE AssemblyLine='''+DBLookUpListBox1.Items[DBLookUpListBox1.Itemindex]+''' AND ProductionDate='''+FormatDateTime('dd/mm/yyyy', DateTimePicker1.Date)+'''';
SQLQuery_ReportShift.Open();
frReport1.LoadFromFile('ProductionOverview.lrf');
frReport1.ShowReport;
end;
Почему тег 'mysql'? Вы говорите, что работаете с таблицей MS Access. – MartynA
Использует ли ваша машина '.' как глобальный разделитель даты? '/' более обычен. Возможно, вам придется использовать файловую форму FormatDateTime и настроить формат для тех, которые требуются MS Access. – Dsm
Попробуйте это: поместите TDBLabel в свою форму, подключите его к полю ProductionDate и сообщите нам, что именно оно отображает. – MartynA