2016-07-08 2 views
0

У меня есть два условия в форме (VBA Access 2010), которые оба они работают отдельно. Я помещаю эти условия в событие «Нагрузка» той же формы и времени поиска. Первые работы «If» (связанные с полем «Pr330USD»), но другое поле (ExpireDate) не работает. «Pr330USD» - это числовое поле и «ExpireDate» - поле даты.Два отдельных условия в одном IF (VBA Access 2010)

в ниже коды:

Private Sub Form_Load() 

If Me.Pr330USD.Value = "0" Then 

    OpenReportFRR.Enabled = False 
    OpenFRRDraft.Enabled = True 

ElseIf Me.ExpireDate.Value = "" Then 

    ValidDateSchedule.Enabled = False 
    VDScheduleTable.Enabled = False 

Else 

    OpenReportFRR.Enabled = True 
    OpenFRRDraft.Enabled = False 
    ValidDateSchedule.Enabled = True 
    VDScheduleTable.Enabled = True 

End If 

End Sub 

.................... 

Private Sub Pr330USD_BeforeUpdate(Cancel As Integer) 

If [Pr330USD].Value = "0" Then 

    OpenReportFRR.Enabled = False 
    OpenFRRDraft.Enabled = True 

Else 

    OpenReportFRR.Enabled = True 
    OpenFRRDraft.Enabled = False 

End If 

End Sub 

.................... 

Private Sub ExpireDate_BeforeUpdate(Cancel As Integer) 

If Me.ExpireDate.Text = "" Then 

    ValidDateSchedule.Enabled = False 
    VDScheduleTable.Enabled = False 

Else 

    ValidDateSchedule.Enabled = True 
    VDScheduleTable.Enabled = True 

End If 

End Sub 

.................... 

Я хочу знать, что произошло, и что такое решение?

Спасибо, прежде чем я вас проконсультировать меня ....

Kasra

+0

Только один блок вашего 'If' может выполнить - если больше tha n один тест может быть правдой, тогда напишите их как отдельный 'If''s –

+0

также попробуйте' IsNull (Me.ExpireDate) ' –

+0

Спасибо, дорогой Тим .. Я пробую это – Kasra

ответ

1

Это звучит, как это следует читать:

Private Sub Form_Load() 

    If Me.Pr330USD.Value = "0" Then 
     OpenReportFRR.Enabled = False 
     OpenFRRDraft.Enabled = True 
    Else 
     OpenReportFRR.Enabled = True 
     OpenFRRDraft.Enabled = False 
    End If 
    If IsNull(Me.ExpireDate.Value) Then 
     ValidDateSchedule.Enabled = False 
     VDScheduleTable.Enabled = False 
    Else 
     ValidDateSchedule.Enabled = True 
     VDScheduleTable.Enabled = True 
    End If 

End Sub 
+0

Спасибо, дорогой Густав !! Ваши коды работают правильно и лучше, чем мои недавно коды! :) – Kasra

0

Я изменил порядок строк и условий структуры и, кажется, этот код работает:

Private Sub Form_Load() 

If Me.Pr330USD.Value <> "0" And Me.ExpireDate <> "" Then 

    OpenReportFRR.Enabled = True 
    OpenFRRDraft.Enabled = False 
    ValidDateSchedule.Enabled = True 
    VDScheduleTable.Enabled = True 

ElseIf Me.Pr330USD.Value <> "0" And Me.ExpireDate = "" Then 

    OpenReportFRR.Enabled = True 
    OpenFRRDraft.Enabled = False 
    ValidDateSchedule.Enabled = False 
    VDScheduleTable.Enabled = False 

ElseIf Me.Pr330USD.Value = "0" And Me.ExpireDate <> "" Then 

    OpenReportFRR.Enabled = False 
    OpenFRRDraft.Enabled = True 
    ValidDateSchedule.Enabled = True 
    VDScheduleTable.Enabled = True 

Else 

    OpenReportFRR.Enabled = False 
    OpenFRRDraft.Enabled = True 
    ValidDateSchedule.Enabled = False 
    VDScheduleTable.Enabled = False 

End If 

End Sub 
Смежные вопросы