Form_Active перестал срабатывать
|
|
Воскресенье, 03 Декабря 2017 г. 14:45
+ в цитатник
Господа, приветствую.
акс 2007.
Жил был проект, и даже работал))).
Проблема в заголовке.
Приложил тестовый пример, сделанный в новой бд.
Ситуация:
все формы - вкладками
разделенные, но пробовал их и одиночными сделать... тоже
варианты:
1 - источник, таблица. Наглухо.
2 - источник Recordsourse.
3,4 - источники Recordset, ADODB и DAO. 4 вариант тупо для чистоты эксперимента
варианты 1 и 2 - Form_Active срабатывает
и при открытии, и смене фокусаварианты 3 и 4 - Form_Active срабатывает
только при смене активной формы/вкладки.Если так и должно быть, то тогда почему проект с пол года уже отработал???
А если не должно так быть...кто знает причину?
Объясните плиз...
Если лень/не можете скачать...код в формах
вариант 1
+ |
Option Compare Database
Option Explicit
Private Sub Form_Activate()
MsgBox Me.Name
End Sub
|
вариант 2
+ |
Private Sub Form_Activate()
MsgBox Me.Name
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Form_Open_Error
Cancel = MyWhere(0)
On Error GoTo 0
Exit Sub
Form_Open_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Open of Form_Cases_All", , "Error!"
End Sub
Public Function MyWhere(TypeSearch As Long) As Boolean
On Error GoTo MyWhere_Error
Me.Form.RecordSource = "SELECT * FROM Таблица1"
On Error GoTo 0
Exit Function
MyWhere_Error:
MyWhere = True
MsgBox Err.Number, Err.Description
End Function
|
вариант 3
+ |
Private MyRec As ADODB.Recordset
Private strMy As String
Private Sub Form_Activate()
MsgBox Me.Name
End Sub
Private Sub Form_Open(Cancel As Integer)
10 On Error GoTo Form_Open_Error
90 Cancel = MyWhere(0)
100 On Error GoTo 0
110 Exit Sub
Form_Open_Error:
120 MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Open of Form_Cases_All", , "Error!"
End Sub
Public Function MyWhere(TypeSearch As Long) As Boolean
10 On Error GoTo MyWhere_Error
strMy = "SELECT * FROM Таблица1"
180 Set MyRec = New ADODB.Recordset
190 With MyRec
200 .CursorLocation = adUseClient
210 .Open strMy, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
220 End With
230 Set Me.Recordset = MyRec
240 MyWhere = False
360 If Not MyRec Is Nothing Then Set MyRec = Nothing '
380 On Error GoTo 0
390 Exit Function
MyWhere_Error:
400 If Not MyRec Is Nothing Then Set MyRec = Nothing '
410 MyWhere = True
520 MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Open of Form_Cases_All", , "Error!"
End Function
|
вариант 4
+ |
Private MyRec As DAO.Recordset
Private strMy As String
Private Sub Form_Activate()
MsgBox Me.Name
End Sub
Private Sub Form_Open(Cancel As Integer)
10 On Error GoTo Form_Open_Error
90 Cancel = MyWhere(0)
100 On Error GoTo 0
110 Exit Sub
Form_Open_Error:
120 MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Open of Form_Cases_All", , "Error!"
End Sub
Public Function MyWhere(TypeSearch As Long) As Boolean
10 On Error GoTo MyWhere_Error
strMy = "SELECT * FROM Таблица1"
180 Set MyRec = CurrentDb.OpenRecordset(strMy)
230 Set Me.Recordset = MyRec
240 MyWhere = False
360 If Not MyRec Is Nothing Then Set MyRec = Nothing '
380 On Error GoTo 0
390 Exit Function
MyWhere_Error:
400 If Not MyRec Is Nothing Then Set MyRec = Nothing '
410 MyWhere = True
520 MsgBox "Error number 0409(" & Erl & "). If this error persists, please write down the error number and contact technical support.", , "Error Encountered! System code: " & Err.Number
End Function
|
http://www.sql.ru/forum/1278920/form-active-perestal-srabatyvat
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-