Hi,
I have a form with lots of combo boxes. I want the user to be able to search for a particular record, based on what he selected in the form.
My existing SQL Query is VERY, VERY slow. Is there a better way to accomplish this, see below ?
Thanks for any help !
Paul
SELECT Assets.BarcodeNumber, Assets.AssetDescription, Assets.Make, Assets.Model, Assets.SerialNumber, Assets.[Year of Manufacture], Assets.Options, Assets.Firmware, Assets.Status, Assets.[Repair History], Assets.State, Assets.Site, Assets.Comments, Assets.Region, Assets.Rack, Assets.Row, Assets.Slot, Assets.UpdatedBy, Assets.Channel, Assets.Address, Assets.CalibrationDate, Assets.ReminderEmail
FROM Assets
WHERE ([barcodenumber]=Forms![AssetsQuery]![Barcodenumber] OR isNull(Forms![AssetsQuery]![Barcodenumber]))
AND
([Make]=Forms![Assetsquery]![Make] OR isNull(Forms![Assetsquery]![Make]))
AND
([Model]=Forms![Assetsquery]![Model] OR isNull(Forms![Assetsquery]![Model]))
AND
([SerialNumber]=Forms![Assetsquery]![SerialNumber] OR isNull(Forms![Assetsquery]![SerialNumber]))
AND
([Status]=Forms![Assetsquery]![Status] OR isNull(Forms![Assetsquery]![Status]))
AND
([AssetDescription]=Forms![Assetsquery]![AssetDescription] OR isNull(Forms![Assetsquery]![AssetDescription]))
AND
([Firmware]=Forms![Assetsquery]![Firmware] OR isNull(Forms![Assetsquery]![Firmware]))
AND
([Options]=Forms![Assetsquery]![Options] OR isNull(Forms![Assetsquery]![Options]))
AND
([State]=Forms![Assetsquery]![combostate] OR isNull(Forms![Assetsquery]![combostate]))
AND
([Site]=Forms![Assetsquery]![site] OR isNull(Forms![Assetsquery]![site]))
AND
([Year of Manufacture] <Forms![Assetsquery]![BeforeDate] OR isNull(Forms![Assetsquery]![BeforeDate]))
AND
([Year of Manufacture] =Forms![Assetsquery]![Year of Manufacture] OR isNull(Forms![Assetsquery]![Year of Manufacture]))
AND
(right([Year of manufacture],4)<=forms![Assetsquery]![BeforeDate] OR isNull(Forms![Assetsquery]![BeforeDate]))
AND
([Region]=Forms![Assetsquery]![Region] OR isNull(Forms![Assetsquery]![Region]))
AND
([Rack]=Forms![Assetsquery]![Rack] OR isNull(Forms![Assetsquery]![Rack]))
AND
([Row]=Forms![Assetsquery]![Row] OR isNull(Forms![Assetsquery]![Row]))
AND
([Slot]=Forms![Assetsquery]![Slot] OR isNull(Forms![Assetsquery]![Slot]))
AND
(Left([UpdatedBy],8)=Forms![Assetsquery]![UpdatedBy] OR isNull(Forms![Assetsquery]![UpdatedBy]))
AND
([Comments]=Forms![Assetsquery]![Comments] OR isNull(Forms![Assetsquery]![Comments]))
AND
([Channel]=Forms![Assetsquery]![Channel] OR isNull(Forms![Assetsquery]![Channel]))
AND
([Address]=Forms![Assetsquery]![Address] OR isNull(Forms![Assetsquery]![Address]))
ORDER BY Site, Rack, Row, Slot;
I have a form with lots of combo boxes. I want the user to be able to search for a particular record, based on what he selected in the form.
My existing SQL Query is VERY, VERY slow. Is there a better way to accomplish this, see below ?
Thanks for any help !
Paul
SELECT Assets.BarcodeNumber, Assets.AssetDescription, Assets.Make, Assets.Model, Assets.SerialNumber, Assets.[Year of Manufacture], Assets.Options, Assets.Firmware, Assets.Status, Assets.[Repair History], Assets.State, Assets.Site, Assets.Comments, Assets.Region, Assets.Rack, Assets.Row, Assets.Slot, Assets.UpdatedBy, Assets.Channel, Assets.Address, Assets.CalibrationDate, Assets.ReminderEmail
FROM Assets
WHERE ([barcodenumber]=Forms![AssetsQuery]![Barcodenumber] OR isNull(Forms![AssetsQuery]![Barcodenumber]))
AND
([Make]=Forms![Assetsquery]![Make] OR isNull(Forms![Assetsquery]![Make]))
AND
([Model]=Forms![Assetsquery]![Model] OR isNull(Forms![Assetsquery]![Model]))
AND
([SerialNumber]=Forms![Assetsquery]![SerialNumber] OR isNull(Forms![Assetsquery]![SerialNumber]))
AND
([Status]=Forms![Assetsquery]![Status] OR isNull(Forms![Assetsquery]![Status]))
AND
([AssetDescription]=Forms![Assetsquery]![AssetDescription] OR isNull(Forms![Assetsquery]![AssetDescription]))
AND
([Firmware]=Forms![Assetsquery]![Firmware] OR isNull(Forms![Assetsquery]![Firmware]))
AND
([Options]=Forms![Assetsquery]![Options] OR isNull(Forms![Assetsquery]![Options]))
AND
([State]=Forms![Assetsquery]![combostate] OR isNull(Forms![Assetsquery]![combostate]))
AND
([Site]=Forms![Assetsquery]![site] OR isNull(Forms![Assetsquery]![site]))
AND
([Year of Manufacture] <Forms![Assetsquery]![BeforeDate] OR isNull(Forms![Assetsquery]![BeforeDate]))
AND
([Year of Manufacture] =Forms![Assetsquery]![Year of Manufacture] OR isNull(Forms![Assetsquery]![Year of Manufacture]))
AND
(right([Year of manufacture],4)<=forms![Assetsquery]![BeforeDate] OR isNull(Forms![Assetsquery]![BeforeDate]))
AND
([Region]=Forms![Assetsquery]![Region] OR isNull(Forms![Assetsquery]![Region]))
AND
([Rack]=Forms![Assetsquery]![Rack] OR isNull(Forms![Assetsquery]![Rack]))
AND
([Row]=Forms![Assetsquery]![Row] OR isNull(Forms![Assetsquery]![Row]))
AND
([Slot]=Forms![Assetsquery]![Slot] OR isNull(Forms![Assetsquery]![Slot]))
AND
(Left([UpdatedBy],8)=Forms![Assetsquery]![UpdatedBy] OR isNull(Forms![Assetsquery]![UpdatedBy]))
AND
([Comments]=Forms![Assetsquery]![Comments] OR isNull(Forms![Assetsquery]![Comments]))
AND
([Channel]=Forms![Assetsquery]![Channel] OR isNull(Forms![Assetsquery]![Channel]))
AND
([Address]=Forms![Assetsquery]![Address] OR isNull(Forms![Assetsquery]![Address]))
ORDER BY Site, Rack, Row, Slot;