|
|
|
| Писал базу на 2003. Потом организация перешла на 2010. При запуске процедуры стала возникать эта ошибка ("переполнение стека"). Что ему надо, этому 2010-му? Почему в 2003м все работало 5 лет, а здесь - какая-то хрень происходит? Они что, эти MS-овцы, специально гадости подкидывают?
Люди добрые-бодрые, м.б. кто уже с этой пакостью сталкивался? Помогите, пож-та.
Код такой:
Private Sub Факс_Change()
If Right(Факс.Text, 1) <> " " Then
Факс.Text = funВставитьТелефКодГорода(Факс.Text)
End If
End Sub
Function funВставитьТелефКодГорода(strTextTEMP As String) As String
Dim lngТекст As Long
Dim strText As String
strText = strTextTEMP
On Error Resume Next
If strТелефКодГорода <> "() " And strТелефКодГорода & "" <> "" Then
lngТекст = InStr(strText, strТелефКодГорода)
If lngТекст = 0 Then
Select Case strText
Case ""
Case "("
funВставитьТелефКодГорода = strТелефКодГорода
Case Else
funВставитьТелефКодГорода = strТелефКодГорода & strText End Select
Else
funВставитьТелефКодГорода = strText
End If
Else
funВставитьТелефКодГорода = strText
End If
End Function
Спасибо | |
|
| |
|
|
|
| а если это
On Error Resume Next
убрать и посмотреть где истерика
- может какой символ недопустимый - а зацикливания ниде немаэ
п.с. а ХР рулит!!! | |
|
| |
|
|
|
| Да, какой-то цикл получался. А в А-2003 - не получался.
Чёрттёзнить, этих эмэсовцев...
Выкинул всю процедуру в помойку. Написал по-другому.
Тема - закрыта, спасибо, kot_k_k, за отклик... | |
|
| |
|
|
|
| Насколько я помню, присвоение значения св-ву Text вызывает повторно событие Change и если снова меняете его, то попадаете в бесконечный цикл.
Если я прав, то странно, что у вас это работало в А2003.
Нужно либо присваивать измененное значение св-ву Value, либо проверять значение св-ва Text и ничего не делать, если оно вас устраивает.
Кстати, а что вы проверяете конструкцией If Right(Факс.Text, 1) <> " " Then? Вернее, когда там пробел, а когда нет? | |
|
| |
|
|
|
| А чё end select можно уже не ставить? | |
|
| |
|
|
|
| так ведь работало...
может при копировании отвалилось.
А всё равно уже -- | |
|
| |
|
|
|
| ON error безусловно поможет.
Здесь два варианта.(САМ СТАЛКИВАЛСЯ)
1. ПРОСТО ПРОИГНОРИРОВАТЬ ОШИБКУ.
2.ОБРАБОТАТЬ И ПРИНЯТЬ РЕШЕНИЕ ПРОГРАММИСТУ. | |
|
| |