Wenn du deine Schreibweise verwendet möchtest, dann schreibst du in meinem Beispiel statt:
"" & Form_Tabelle1.feld1 = ""
bitte
"" & Forms!Tabelle1.feld1 = ""
und statt
Form_Formular1.Version1.ForeColor
bitte
Forms!Formular1.Version1.ForeColor
Warum du meintest das du immer Forms! schreiben musst, liegt daran, dass du dich bei den Namen verheddert hast. In Access verwendest du mit Forms!.... den Namen den du im weißen Fenster siehst. Die Objekte heissen aber anders, das sind die die ich verwendet habe. Sprich das Formular1 in meinem beispiel heisst im Soruce-Code eigentlich Form_Formular1.
Du hast also meinen Source immer verwendet und hast dich gewundert, warum du Forms!... schreiben musst. Weil du halt es 1:1 kopiert hast. Da kommt sicher eine FM, weil er das nicht kennt. Du hast also deinen Anzeigennamen statt meinen geschrieben, du hättest aber den Objektnamen nehmen müssen. Da ist der Unterschied. Deshaklb haben wir auch in diesem Zusammenhand immer aneinander vorbeigeredet. Deshalb möchte ich dir noch mal ans Herz legen, es so zu schreiben wie ich, dann hast du es wesentlich einfacher. Wie die Formulare in Access direkt heissen, spielt je keine Rolle. Wer das lieber mag, wie du bis jetzt, macht halt Forms!.....
Versuchs einfach mal so wie ich geschrieben haben, ist echt leichter. So ich hoffe, ich konnte alle Unklarheiten beseitigen und wir sind wieder "Freunde"
Private Sub Version1_Click()
DoCmd.OpenForm "Tabelle1", acNormal, "", "", , acNormal
If "" & Form_Tabelle1.feld1 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
ElseIf "" & Form_Tabelle1.feld2 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
ElseIf "" & Form_Tabelle1.feld3 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
ElseIf "" & Form_Tabelle1.feld4 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
ElseIf "" & Form_Tabelle1.feld5 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
ElseIf "" & Form_Tabelle1.feld6 = "" Then
Form_Formular1.Version1.ForeColor = RGB(255, 0, 0)
Else
Form_Formular1.Version1.ForeColor = RGB(0, 128, 255)
End If
DoCmd.Close acForm, "Tabelle1"
End Sub
Private Sub Version2_Click()
DoCmd.OpenForm "Tabelle1", acNormal, "", "", , acNormal
Dim irgendeinsbefuellt As Boolean
If Not "" & Form_Tabelle1.feld1 = "" Then
irgendeinsbefuellt = True
ElseIf Not "" & Form_Tabelle1.feld2 = "" Then
irgendeinsbefuellt = True
ElseIf Not "" & Form_Tabelle1.feld3 = "" Then
irgendeinsbefuellt = True
ElseIf Not "" & Form_Tabelle1.feld4 = "" Then
irgendeinsbefuellt = True
ElseIf Not "" & Form_Tabelle1.feld5 = "" Then
irgendeinsbefuellt = True
ElseIf Not "" & Form_Tabelle1.feld6 = "" Then
irgendeinsbefuellt = True
Else
irgendeinsbefuellt = False
End If
If irgendeinsbefuellt = False Then
Form_Formular1.Version2.ForeColor = RGB(255, 0, 0)
Else
Form_Formular1.Version2.ForeColor = RGB(0, 128, 255)
End If
DoCmd.Close acForm, "Tabelle1"
End Sub
Private Sub Version3_Click()
DoCmd.OpenForm "Tabelle1", acNormal, "", "", , acNormal
Dim irgendeinsbefuellt As Boolean
If "" & Form_Tabelle1.feld1 = "" Then
irgendeinsbefuellt = False
ElseIf "" & Form_Tabelle1.feld2 = "" Then
irgendeinsbefuellt = False
ElseIf "" & Form_Tabelle1.feld3 = "" Then
irgendeinsbefuellt = False
ElseIf "" & Form_Tabelle1.feld4 = "" Then
irgendeinsbefuellt = False
ElseIf "" & Form_Tabelle1.feld5 = "" Then
irgendeinsbefuellt = False
ElseIf "" & Form_Tabelle1.feld6 = "" Then
irgendeinsbefuellt = False
Else
irgendeinsbefuellt = True
End If
If irgendeinsbefuellt = False Then
Form_Formular1.Version3.ForeColor = RGB(255, 0, 0)
Else
Form_Formular1.Version3.ForeColor = RGB(0, 128, 255)
End If
DoCmd.Close acForm, "Tabelle1"
End Sub |