По мере того, как остальные два состояния отвечают, функция $
в функции Mid
заставляет его ожидать входной параметр строки и возвращать строковое значение.И эффективное значение этой части команды Mid$([IndexNumbers],5,3)
заключается в том, что она будет возвращать символы с 5 по 7 столбца IndexNumbers
.
Однако полное значение этой строки кода (котораяэто название вашего вопроса) является следующим:
В соответствии с этой строкой кода, у вас есть запрос или таблица в вашей базе данных (предположительно, запрос) с именем QYearOtherRecordList2
.Этот код отправляет вызов функции DMax для этого запроса, который возвращает «Максимальное строковое значение» символов с 5 по 7 столбца IndexNumbers
для этого запроса (с использованием Mid $ function).
'Example output sample
'Lets assume that the query, with the Mid$ function applied returns the following rows
001
034
555
142
099
'Then, the DMax function would return just the following as the Max of those values
555
Наконец, чтобы убедиться, что NewIndexNumber
содержит пригодное для использования значение, DMax
обернут в вызов функции Nz , что означает, что если для некоторогоПричина DMax
возвращает значение Null
(т. е. нет записей, возвращаемых по вашему запросу, или ни одно из существующих значений IndexNumbers
не превышает 4 символов), а затем мы возвращаем значение "000", так что NewIndexNumber
будетсодержат что-то полезное.
Основываясь на некотором быстром тестировании, которое я провел, чтобы попытаться повторить вашу ошибку, я бы заподозрил, что, возможно, запрос QYearOtherRecordList2
возможно изменился (или, может быть, есть другой код до этого утверждения, которыйвлияет на результаты QYearOtherRecordList2
), которая является истинной причиной вашей ошибки 3464 - Data type mismatch in criteria expression.
Кстати - В своих комментариях вы упомянули правильный номер ошибки для этого сообщения, и вваш обновленный пост, вы опечатали номер.Но в обоих случаях вы урезали сообщение об ошибке, чего не следует делать при обращении за помощью.Последняя часть сообщения in criteria expression
на самом деле VITALLY важна для понимания, где может быть проблема и как ее устранить.
Эта часть сообщения указывает на то, чтовероятность того, что ошибка на самом деле находится в criteria
, также известном как where
предложение или условие.Вот почему я считаю, что проблема косвенно связана со строкой кода, где возникает ошибка.В этой строке кода нет ничего принципиально неправильного, но эта строка кода полагается на запрос QYearOtherRecordList2
, который успешно возвращает набор данных без ошибки.
Так что, пожалуйста, пожалуйста, в будущем точно включитеномер ошибки и полный текст сообщения об ошибке, чтобы помочь нам помочь вам.
Спасибо.