मेरे पास एक फॉर्म है कि कुछ स्थितियों में माता-पिता नहीं होते हैं।
तब यह खुलने में विफल रहता है।
इसलिए मैं इसे 'if'
. में लपेटता हूं यह अभी भी खुलने में विफल है।

Private Sub Form_Open(Cancel As Integer)
    If Not Parent Is Nothing Then  << Error
        Me!Button1.Enabled = Not (Nz(Parent!Lock, 0))
        Me!Button2.Enabled = Not (Nz(Parent!Lock, 0))
    End If
End Sub

"रन-टाइम त्रुटि '2452' देता है: आपके द्वारा दर्ज किया गया अभिव्यक्ति मूल संपत्ति के लिए एक अमान्य संदर्भ है।"
लेकिन अगर मैं चर घोषित करता हूं, तो मूल कोड काम नहीं करेगा।

1
BWhite 16 अक्टूबर 2020, 17:35

1 उत्तर

सबसे बढ़िया उत्तर

यह एक मुश्किल है, जैसे कि फॉर्म में कोई माता-पिता नहीं है, संपत्ति तक कोई भी पहुंच (यहां तक ​​​​कि परीक्षण खाली होने पर भी) एक त्रुटि ट्रिगर करेगा।

त्रुटि ट्रैपिंग का उपयोग करके परीक्षण करना सबसे आसान समाधान है:

Public Function HasParent(obj As Object) As Boolean
    On Error GoTo ExitFunction
    If Not obj.Parent Is Nothing Then
        HasParent = True
    End If
ExitFunction:
End Function

Private Sub Form_Open(Cancel As Integer)
    If HasParent(Me) Then 
        Me!Button1.Enabled = Not (Nz(Parent!Lock, 0))
        Me!Button2.Enabled = Not (Nz(Parent!Lock, 0))
    End If
End Sub
1
Erik A 16 अक्टूबर 2020, 17:40