Я не большой программист на VB, но что-то вроде этого должно быть достаточно простым ... Хотя я действительно в тупике.
У меня есть веб-приложение, которое много работает с электронной почтой и PDF-файлами. Я добавляю в него несколько новых функций и столкнулся с двумя очень основными ошибками «Несоответствие типов» и не смог их решить.
Первое происходит, когда я вызываю inArray () в простом сценарии поиска / замены. Я создаю массив имен полей в базе данных и сравниваю содержимое электронного письма с этими именами, чтобы $ * %% P1FirstName можно было заменить действительным именем в БД. Достаточно просто.
Этот точный код работает в других местах сайта, но на этой новой странице я получаю сообщение об ошибке несоответствия типов в строке, содержащей вызов inArray ():
strOut = ""
strIn = strEmail
arrString = split(strIn,"$*")
'make an array of all the fields in the recordset to compare the fields in the email against
strTmp = ""
for each f in rs2.fields
strTmp = strTmp & f.name & "x%x"
next
arrFields = split(strTmp,"x%x")
for i = lbound(arrString) to ubound(arrString)
'if the current word in the array is a DB field name (as indicated by the leading '%%' then get the data
'from the recordset and drop it into the email, otherwise it is a generic term
if left(arrString(i),2) = "%%" then
arrString(i) = replace(arrString(i),"%%","")
if not trim(arrString(i)) = "" then
if inArray(arrFields, arrString(i)) then
strOut = strOut & rs2(arrString(i))
end if
end if
else
strOut = strOut & arrString(i)
end if
next
Я не могу понять, почему нельзя сравнивать два массива строк (или почему этот же вызов работает в другом месте). Кажется, ничего не отключается, когда я что-то выводю (например, имена полей), и чрезмерное использование CStr () не помогает.
Другой - просто вызов функции:
WritePDF (iformID, TemplateFile, Appfile, подписанный, rsProc ("fontSize"), passwordProtect)
где подпись и защита паролем - логические значения. Это сложнее, потому что ошибка не говорит мне конкретно, какое поле выключено. Я только что попробовал несколько перефразировок и cbool () и вручную установил каждое поле и никуда не попал. Опять же, этот же код работает на всех остальных страницах сайта.
Я уверен, что есть очень простой ответ на это, и это сводит меня с ума, что я не нашел его. Если есть что-то, что вы сразу заметите, я бы хотел получить отзыв.