2016-10-10 3 views
-1

절차 너무 큰 오류를받은 나는 오류 메시지가 아래에받은 :내가 액세스 VBA 코드

내가 VBA는 64K의 제한 또는 절차에 따라 뭔가가 생각이 너무 커서

절차. 이 코드를 어떻게 분리하거나 단축 할 수 있습니까?

If txt29.Value = "" Then 
    Box67.BackColor = labelnull.BackColor 
    cmd29.Enabled = False 
Else 
    cmd29.Enabled = True 
End If 

If txt29.Value = "Yellow" Then 
    Box67.BackColor = LabelYellow.BackColor 
End If 

If txt29.Value = "Blue" Then 
    Box67.BackColor = LabelBlue.BackColor 
End If 

If txt29.Value = "Red" Then 
    Box67.BackColor = LabelRed.BackColor 
End If 

If txt29.Value = "Brown" Then 
    Box67.BackColor = lableBrown.BackColor 
End If 

If txt29.Value = "Pink" Then 
    Box67.BackColor = Labelpink.BackColor 
End If 

If txt29.Value = "White" Then 
    Box67.BackColor = Labelpink.BackColor 
End If 

If txt29.Value = "Grey" Then 
    Box67.BackColor = Labelpink.BackColor 
End If 

If txt29.Value = "Purple" Then 
    Box67.BackColor = Labelpink.BackColor 
End If 

If txt29.Value = "Green" Then 
    Box67.BackColor = LabelGreen.BackColor 
End If 

나는 당신은 10 컨트롤을 설정 (10)의 기능을 각각 만들 수 100 개 버튼

답변

0

당신은 코드를 단축 할뿐만 아니라 선택 케이스를 사용할 수 있습니다 : 값이 "노란색"으로 발생하는 경우는 모든 옵션을 통해 실행 할 필요가 없습니다으로

If txt29.Value = "" Then 
    Box67.BackColor = labelnull.BackColor 
    cmd29.Enabled = False 
Else 
    cmd29.Enabled = True 
End If 

Select Case txt29.value 
    Case "Yellow" 
    Box67.BackColor = LabelYellow.BackColor 
    Case "Blue" 
    Box67.BackColor = LabelBlue.BackColor 
    Case "Red" 
    Box67.BackColor = LabelRed.BackColor 
    Case "Brown" 
    Box67.BackColor = lableBrown.BackColor 
    Case "Pink" 
    Box67.BackColor = Labelpink.BackColor 
    Case "White" 
    Box67.BackColor = Labelpink.BackColor 
    Case "Grey" 
    Box67.BackColor = Labelpink.BackColor 
    Case "Purple" 
    Box67.BackColor = Labelpink.BackColor 
    Case "Green" 
    Box67.BackColor = LabelGreen.BackColor 
End Select 

이 또한 속도를 높일 것

+0

고맙습니다. – Dana

0

를 위해 위의와 동일하게 할 필요가있다.

그런 다음이 10 개의 함수를 하나의 "마스터"함수에서 호출하십시오.

+0

도움을 주셔서 감사합니다. – Dana

0

난 그냥 올바른 이름으로 라벨을 참조하고 그것의 뒷면 색상을보고 말을하려고했다 - 그것은 비록 핑크 라벨 작동하지 않습니다

If IsNull(txt29.Value) Then 
    box67.BackColor = labelnull.BackColor 
Else 
    box67.BackColor = Me.Controls("Label" & txt29.Value).BackColor 
End If 

또한 발생할 수 있습니다 홍보 oblems는 코드가 존재하지 않는 레이블을 참조하려고 할 때 사용합니다.