2015-12-15 25 views
-1

我有一个选项卡式窗体,并希望用户从两个不同的选项组中选择两个选项,即类型和所有权,它们位于同一窗体上。如果选项组中的两个选定选项满足条件,则只应显示一个选项卡式表单。 我在下面显示了我的代码无法正常工作。 请告知可能会出现什么问题,或者是否有替代代码。 代码:以ms为单位隐藏或显示表单

Private Sub Ownership_AfterUpdate() 
If Me.Type.Value = 1 And Me.Ownership = 2 Or 3 Or 4 Or 6 Then 
Me.HousesToRent.Visible = True 
Me.HousesForSale.Visible = False 
Me.ApartmentToRent.Visible = False 
Me.ApartmentForSale.Visible = False 
Me.OfficeAndWarehouse.Visible = False 
Me.PlotForSale.Visible = False 
End If 
If Me.Type.Value = 3 And Me.Ownership = 2 Or 3 Or 4 Or 6 Then 
Me.HousesToRent.Visible = False 
Me.HousesForSale.Visible = True 
Me.ApartmentToRent.Visible = False 
Me.ApartmentForSale.Visible = False 
Me.OfficeAndWarehouse.Visible = False 
Me.PlotForSale.Visible = False 
End If 
End Sub 
+0

由于它的工作原理,但我有如下选项的组合:私人小组Ownership_AfterUpdate() 如果Me.Type。值= 1,Me.Ownership = 1,则 Me.HousesToRent.Visible =假 Me.HousesForSale.Visible =假 Me.ApartmentToRent.Visible =真 Me.ApartmentForSale.Visible =假 Me.OfficeAndWarehouse.Visible =假 Me.PlotForSale.Visible =假 结束如果 如果Me.Type.Value = 3并且Me.Ownership = 2或3或4或6然后......... ..... End Sub。那么除了你第一次回答之外,我怎么能包括这个呢? – AJK

回答

0

你的语法是不完整的:

Private Sub Ownership_AfterUpdate() 

Select Case Me.Type.Value 
    Case 1, 3 
     Select Case Me.Ownership 
      Case 2, 3, 4, 6 
       Me.HousesToRent.Visible = True 
       Me.HousesForSale.Visible = False 
       Me.ApartmentToRent.Visible = False 
       Me.ApartmentForSale.Visible = False 
       Me.OfficeAndWarehouse.Visible = False 
       Me.PlotForSale.Visible = False    
     End Select 
End Select 

End Sub 
0
Me.Type.Value = 1 And Me.Ownership = 2 Or 3 Or 4 Or 6 

评估为

(Me.Type.Value = 1 And Me.Ownership = 2) Or 3 Or 4 Or 6 

一切<> 0总是True,让你的整个If语句总是True

你想:

Me.Type.Value = 1 And (Me.Ownership = 2 Or Me.Ownership = 3 Or Me.Ownership = 4 Or Me.Ownership = 6)