Я работаю с приложением vb 6.0. Там я использую функцию замены в моем запросе. Запрос отлично работает в доступе, но когда он работает в VB, он выдает мне ошибку:
"Неопределенная функция 'Заменить' в выражении. Ошибка времени выполнения 3085".
Я думаю, что мне не хватает ссылок. В настоящее время я добавил следующие ссылки.
«Заменить» находится в предложении where:
...WHERE ((DateValue(Replace(Invoice.InvoiceDate, ': ', ' '))
Between...
Следующий полный запрос дает мне ошибку.
Set DrsInv = db.OpenRecordset("SELECT Invoice.InvoiceDate, InvoicedProduct.InvoiceType, Invoice.InvoiceStatus, Invoice.RetailerID, Invoice.DailySalesID, Invoice.RepID, InvoicedProduct.Quantity, InvoicedProduct.UnitRate, InvoicedProduct.TotalItemValue From Invoice INNER JOIN InvoicedProduct ON (Invoice.DailySalesID = InvoicedProduct.DailySalesID) AND (Invoice.RepID = InvoicedProduct.RepID) AND (Invoice.InvoiceID = InvoicedProduct.InvoiceID)" _
& " WHERE ((DateValue(Replace(Invoice.InvoiceDate, ': ', ' ')) Between #" & Format(dtpFrom.value, "yyyy/mm/dd") & "# And #" & Format(dtpTo.value, "yyyy/mm/dd") & "#) AND (InvoicedProduct.ProductID = '" & Srs("ProductID") & "'))" _
& " GROUP BY Invoice.InvoiceDate, InvoicedProduct.InvoiceType, Invoice.InvoiceStatus, Invoice.RetailerID, Invoice.DailySalesID, Invoice.RepID, InvoicedProduct.Quantity, InvoicedProduct.UnitRate, InvoicedProduct.TotalItemValue HAVING ((InvoicedProduct.InvoiceType)='Invoice' AND (Invoice.InvoiceStatus)='VALID') Order By Invoice.InvoiceDate DESC")
Я использую функцию замены, потому что InvoiceDate является текстовым полем. Поэтому он выдает ошибку «Несоответствие типов данных», когда я пытаюсь преобразовать его в поле даты в запросе. Двоеточие внутри даты является причиной этой ошибки. Вот почему мне нужно заменить толстую кишку. Я не смог изменить поле базы данных. Так что это решение, как я его вижу.
Данные поля InvoiceDate выглядят следующим образом