Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: АСС 2010: Пишет такую хрень: Run-time error '28'. Out of stack space
 
 автор: ЛМВ   (06.01.2012 в 06:42)   личное сообщение
 
 

Писал базу на 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

Спасибо

  Ответить  
 
 автор: kot_k_k   (06.01.2012 в 10:40)   личное сообщение
 
 

а если это

On Error Resume Next

убрать и посмотреть где истерика

- может какой символ недопустимый - а зацикливания ниде немаэ

п.с. а ХР рулит!!!

  Ответить  
 
 автор: ЛМВ   (06.01.2012 в 14:37)   личное сообщение
 
 

Да, какой-то цикл получался. А в А-2003 - не получался.
Чёрттёзнить, этих эмэсовцев...
Выкинул всю процедуру в помойку. Написал по-другому.

Тема - закрыта, спасибо, kot_k_k, за отклик...

  Ответить  
 
 автор: Анатолий (Киев)   (06.01.2012 в 17:09)   личное сообщение
 
 

Насколько я помню, присвоение значения св-ву Text вызывает повторно событие Change и если снова меняете его, то попадаете в бесконечный цикл.
Если я прав, то странно, что у вас это работало в А2003.
Нужно либо присваивать измененное значение св-ву Value, либо проверять значение св-ва Text и ничего не делать, если оно вас устраивает.

Кстати, а что вы проверяете конструкцией If Right(Факс.Text, 1) <> " " Then? Вернее, когда там пробел, а когда нет?

  Ответить  
 
 автор: snipe   (06.01.2012 в 18:11)   личное сообщение
 
 

А чё end select можно уже не ставить?

  Ответить  
 
 автор: час   (06.01.2012 в 19:05)   личное сообщение
 
 

так ведь работало...
может при копировании отвалилось.
А всё равно уже --

  Ответить  
 
 автор: Дядя Федор   (07.01.2012 в 21:51)   личное сообщение
 
 

ON error безусловно поможет.
Здесь два варианта.(САМ СТАЛКИВАЛСЯ)
1. ПРОСТО ПРОИГНОРИРОВАТЬ ОШИБКУ.
2.ОБРАБОТАТЬ И ПРИНЯТЬ РЕШЕНИЕ ПРОГРАММИСТУ.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList