мы разработали приложение с помощью vb6.0 и SQL-сервер 2000 несколько лет назад. недавно, некоторые наши клиенты говорят нам, что при запуске приложения, на некоторых компьютерах, которые используют Winxp sp2 в качестве их O/S, они получают следующую ошибку, когда они хотят показать поисковую форму:
"Ошибка периода выполнения 380: значение Недопустимого свойства"
Что вызывает эту ошибку?
Полагаю, ваше приложение использует окно редактирования с маской? Это относительно хорошо известная проблема, документированная Microsoft здесь:
http://support.microsoft.com/kb/177088
Статья ссылается на VB4 и 5, но я вполне уверен, что то же самое относится и к VB6.
EDIT
В дальнейших исследованиях я нахожу ссылки на эту проблему и с другими элементами управления. Перекомпиляция вашего приложения под Windows XP для пользователей, которые работают под XP, вероятно, создаст им рабочую версию, хотя это не идеальное решение...
. Просто чтобы бросить два моих цента: еще одна распространенная причина этой ошибки в моем опыте - код в событии Form_Resize
, который использует математику для изменения размеров элементов управления на форме. Размеры элементов управления (Высота
и Ширина
) не могут быть установлены в отрицательные значения, поэтому код, подобный приведенному ниже в событии Form_Resize
, может привести к данной ошибке:
Private Sub Form_Resize()
'Resize text box to fit the form, with a margin of 1000 twips on the right.'
'This will error out if the width of the Form drops below 1000 twips.'
txtFirstName.Width = Me.Width - 1000
End Sub
Приведенный выше код приведет к ошибке "Недействительное значение свойства", если форма будет изменена до ширины менее 1000 twips. Если это проблема, то самым простым решением будет добавить On Error Resume Next
в качестве первой строки, чтобы такие ошибки игнорировались. Это одна из тех редких ситуаций в VB6, где On Error Resume Next
является вашим другом.
Что вызывает ошибку во время выполнения 380 ? Попытка установить свойство объекта или элемента управления в недопустимое значение. Просмотрите код, который запускается при загрузке поисковой формы (Form_Load и т.д.) на наличие любого кода, который устанавливает свойство в зависимости от значений во время выполнения.
Другой мой совет - добавить обработку ошибок и ведение логов, чтобы отследить точную строку, вызывающую ошибку.
Erl
, чтобы сообщить номера строк и найти точную линию - MZTools может автоматически вставить номера строк для Вас. _
On Error Goto Handler
<routine contents>
Handler:
Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description