Nov 19, 2007 13:20
стрУсловие = "" + ?(ПустаяСтрока(НоменклатураНаименование), "", " InternalName " + ?(НоменклатураТочное, "= '" + СокрЛП(ВРЕГ(НоменклатураНаименование) + "'"), "LIKE '%" + СокрЛП(ВРЕГ(НоменклатураНаименование)) + "%'") + " AND")
+ ?(ПустаяСтрока(ПроизводительНаименование), "", " Producer " + ?(ПроизводительТочное, "= '" + СокрЛП(ВРЕГ(ПроизводительНаименование) + "'"), "LIKE '%" + СокрЛП(ВРЕГ(ПроизводительНаименование)) + "%'") + " AND")
+ ?(ПустаяСтрока(СертификатНомер), "", " NumSert " + ?(СертификатТочное, "= '" + СокрЛП(ВРЕГ(СертификатНомер) + "'"), "LIKE '%" + СокрЛП(ВРЕГ(СертификатНомер)) + "%'") + " AND")
+ ?(ЗначениеНеЗаполнено(СертификатДата), "", " DataSert = #" + Месяц(СертификатДата) + "/" + День(СертификатДата) + "/" + СтрЗаменить(Год(СертификатДата), Символ(160), "") + "# AND")
+ ?(ПустаяСтрока(СерияНомер), "", " Serial " + ?(СерияТочное, "= '" + СокрЛП(ВРЕГ(СерияНомер) + "'"), "LIKE '%" + СокрЛП(ВРЕГ(СерияНомер)) + "%'") + " AND");
ТекстЗапроса = "SELECT * FROM SertItems WHERE"
+ Лев(стрУсловие, СтрДлина(стрУсловие) - 4)
+ " ORDER BY Producer, InternalName, DataSert";
СтрокаПодключения = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + ИмяФайла + ";Uid=Admin;Pwd=";
Акцесс = Новый COMОбъект("ADODB.Recordset");
Акцесс.Open(ТекстЗапроса, СтрокаПодключения, 0, 1);
Смотрю я на этот код и представляю себе лицо бедолаги-программера, который сначала выковырял имена полей из левой базы, написанной для аксесса, но не со структурой аксесса, а потом составлял этот запрос.
А мне с этим запросом только предстоит любиться.