#vb6 #report #selection #formula
#vb6 #Сообщить #выбор #формула
Вопрос:
Пожалуйста, помогите мне… Мне нужно показать отчет, взятый из формулы выбора комбинации между datetime и полем базы данных varchar. Я использую этот источник :
.SelectionFormula = "{sales.date}=#" Format(datapicker1.Value, "mm-dd-yyyy") "#" And "{sales.customer} in '" amp; combo1.Text amp; "'"
Но это несоответствие типа ошибки источника… в чем проблема? Я использую vb6, sql server 2000 и crystal report (версия 8.5). Большое вам спасибо… Спасибо stackoverflow..
Ответ №1:
Ошибка возникает из-за того, что вы используете оператор And
VB с двумя строками. VB попытается преобразовать строки
"{sales.date}=#22-06-2014#"
и
"{sales.customer} in 'mycombotext'"
в логические значения. Они не будут преобразовываться — таким образом, ошибка несоответствия типов. Вам нужно следующее:
.SelectionFormula = "{sales.date}=#" Format(datapicker1.Value, "mm-dd-yyyy") "# And {sales.customer} in '" amp; combo1.Text amp; "'"
Комментарии:
1. Ну, похоже, вы понимаете строки. Просто вы случайно завершили свою строку, добавив два дополнительных
"
символа. Обратите внимание, что это было бы зафиксировано на других языках в момент компиляции кода. VB пытается делать то, что вы просите, даже если это не имеет большого смысла. Итак, в этом случае он попытался преобразовать строки в логические значения.2. это не должно заканчивать строку. В худшем случае, и это то, что OP должен учитывать, это то, что он извлекает всех клиентов, которые являются нулевой строкой. aivosto.com/vbtips/stringopt2.html Я рекомендую использовать оператор amp; вместо , чтобы избежать проблем с принудительным вводом типов.