Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: hase198312 am Oktober 20, 2015, 11:43:01

Titel: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: hase198312 am Oktober 20, 2015, 11:43:01
Guten Tag liebe Forummitglieder,

ich habe folgendes Problem,
Ich habe ein Formular mit einem Listenfeld (sie Anhang BildNr.3), zu diesem Formular habe ich eine VBA Code geschrieben, beim Starten des Formulars erscheinen 2 Standardausgaben (zuerst bild1, dann 2 und anschließlich 3) und nur danach öffnet sich mein Formular.

Kann man das irgendwie vermeiden?

Schöne Grüße Hase
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: el_gomero am Oktober 20, 2015, 11:59:30
Moin,

Zitat
... zu diesem Formular habe ich eine VBA Code geschrieben,  ...
und wie lautet der vollständige Code?
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: hase198312 am Oktober 20, 2015, 12:08:09
ach ja, entschuldigung
Private Sub Form_Current()

If Me!Text21 <> Me!Text34 Then
    Me!Text21.BackColor = QBColor(7)
    Me!Text34.BackColor = QBColor(7)
Else
    Me!Text21.BackColor = QBColor(15)
    Me!Text34.BackColor = QBColor(15)
    End If

If Me!Text23 <> Me!Text36 Then
    Me!Text23.BackColor = QBColor(7)
    Me!Text36.BackColor = QBColor(7)
Else
    Me!Text23.BackColor = QBColor(15)
    Me!Text36.BackColor = QBColor(15)
End If

If Me!Text21 <> Me!Text34 Or Me!Text23 <> Me!Text36 Then
MsgBox "Die Daten stimmen nicht überein"
End If

'----------------------------------------------



If IsNull(Me!Text19) Then
    Me!Text19.BackColor = QBColor(7)
    Me!Text21.BackColor = QBColor(7)
    Me!Text23.BackColor = QBColor(7)
    Me!Text17.BackColor = QBColor(7)
Else
    Me!Text19.BackColor = QBColor(15)
    Me!Text21.BackColor = QBColor(15)
    Me!Text23.BackColor = QBColor(15)
    Me!Text17.BackColor = QBColor(15)
Debug.Print Me!Text19.Value
End If

If IsNull(Me!Text32) Then
    Me!Text32.BackColor = QBColor(7)
    Me!Text34.BackColor = QBColor(7)
    Me!Text36.BackColor = QBColor(7)
    Me!Text30.BackColor = QBColor(7)
Else
    Me!Text32.BackColor = QBColor(15)
    Me!Text34.BackColor = QBColor(15)
    Me!Text36.BackColor = QBColor(15)
    Me!Text30.BackColor = QBColor(15)
Debug.Print Me!Text19.Value
End If


If IsNull(Me!Text19) Then
    MsgBox "Legen Sie ein neues Projekte in Projekte 1 an: " _
    & vbLf & "" _
    & vbLf & "Projektnummer: " & Me!Text32 _
    & vbLf & "Projektname: " & Me!Text34 _
    & vbLf & "Status: " & Me!Text36
End If

If IsNull(Me!Text32) Then
    MsgBox "Legen Sie ein neues Projekt in Projekte2 an: " _
    & vbLf & "" _
    & vbLf & "Projektnummer: " & Me!Text21 _
    & vbLf & "Projektname: " & Me!Text23 _
    & vbLf & "Status: " & Me!Text17
End If

End Sub
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: el_gomero am Oktober 20, 2015, 12:21:03
also ausgelöst werden die MsgBoxen durch leere Felder Text19 und Text32. Allein an der Ausführung kannst du sicher erkennen, dass "sprechende" Bezeichner die Arbeit erleichtern.

Wenn die Meldungen hier nicht erscheinen sollen, musst du dir Gedanken über die Logik machen ...
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: MaggieMay am Oktober 20, 2015, 12:24:21
Hi,
ZitatKann man das irgendwie vermeiden?
du bist lustig, du hast das doch selbst so programmiert. Und wie man das anders machen könnte, kann doch nur der wissen, der die Zusammenhänge kennt.
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: hase198312 am Oktober 20, 2015, 12:31:19

Danke für Eure schnelle Antworten
Hm, es ist nicht so einfach, wie ich es mir dachte.....ich bin nämlich Anfänger, in der Sache VBA
Zitat von: el_gomero am Oktober 20, 2015, 12:21:03

Wenn die Meldungen hier nicht erscheinen sollen, musst du dir Gedanken über die Logik machen ...

dann muss ich wohl meine Code anders formulieren ??? :-\
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: hase198312 am Oktober 20, 2015, 13:54:45
Ich habe den Fehler gefunden,

ich habe meine Code im Auswahltyp: Formular=>Ereignis=> Beim Anzeigen -geschrieben, deswegen kam es dazu, dass MsgBox erst geöffnet wurde

Jetzt habe ich meine Code im Auswahltyp: Listenfeld=>Ereignis=>Beim Klicken=> VBA wird dann ausgeführt wenn ich auf Listenfeld Klicke :)

Allerdings habe ich ein weiteres Problem mit diesem Ausschnitt:
'----------------------------------------------------------
'Wenn Inhalte der Textfelder ungleich sind
'Hintergrund grau,sonst weiß
'----------------------------------------------------------
If Me!Text21 <> Me!Text34 Then
    Me!Text21.BackColor = QBColor(7)
    Me!Text34.BackColor = QBColor(7)
Else
    Me!Text21.BackColor = QBColor(15)
    Me!Text34.BackColor = QBColor(15)
    End If

If Me!Text23 <> Me!Text36 Then
    Me!Text23.BackColor = QBColor(7)
    Me!Text36.BackColor = QBColor(7)
Else
    Me!Text23.BackColor = QBColor(15)
    Me!Text36.BackColor = QBColor(15)
End If
'----------------------------------------------
'Wenn folgende Textfelder ungleich sind
'Warnmeldung wird ausgelöst
'----------------------------------------------
If Me!Text21 <> Me!Text34 Or Me!Text23 <> Me!Text36 Then
MsgBox "Die Daten stimmen nicht überein"
End If


Dieser Code sollte mir die Textfelder  aus beiden Projekten die Inhaltlich ungleich sind (nicht korrekt) farblich darstellen, und das mach er auch, aber wenn ich dazu meinen weiteren Code schreibe:
'----------------------------------------------
'Wenn Textfelder-19 und 32 Leer sind,dann werden
'Textfelder 21,23,17,32,34,36,30 grau eingefärbt
'Warnmeldung wird ausgelöst
'-----------------------------------------------
If IsNull(Me!Text19) Then
    Me!Text19.BackColor = QBColor(7)
    Me!Text21.BackColor = QBColor(7)
    Me!Text23.BackColor = QBColor(7)
    Me!Text17.BackColor = QBColor(7)
    MsgBox "Legen Sie ein neues Projekt in Projekte-1 an: " _
    & vbLf & "" _
    & vbLf & "Projektnummer: " & Me!Text32 _
    & vbLf & "Projektname: " & Me!Text34 _
    & vbLf & "Status: " & Me!Text36
Else
    Me!Text19.BackColor = QBColor(15)
    Me!Text21.BackColor = QBColor(15)
    Me!Text23.BackColor = QBColor(15)
    Me!Text17.BackColor = QBColor(15)
Debug.Print Me!Text19.Value
End If

If IsNull(Me!Text32) Then
    Me!Text32.BackColor = QBColor(7)
    Me!Text34.BackColor = QBColor(7)
    Me!Text36.BackColor = QBColor(7)
    Me!Text30.BackColor = QBColor(7)
    MsgBox "Legen Sie ein neues Projekt in Projekte-2 an: " _
    & vbLf & "" _
    & vbLf & "Projektnummer: " & Me!Text21 _
    & vbLf & "Projektname: " & Me!Text23 _
    & vbLf & "Status: " & Me!Text17
Else
    Me!Text32.BackColor = QBColor(15)
    Me!Text34.BackColor = QBColor(15)
    Me!Text36.BackColor = QBColor(15)
    Me!Text30.BackColor = QBColor(15)
Debug.Print Me!Text19.Value
End If



wenn ich dann eine erste Zeile im Listenfeld anklicke, werden auch weiter Felder, die ich in meinem Code nicht definiert habe farblich markiert.(Siehe Anhang)

Ich sitze schon eine ganze Weile, und kann nicht nachvollziehen, was ich falsch in meinem Code geschrieben habe.

Vielen Dank für Eure Rückmeldungen
Hase
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: el_gomero am Oktober 20, 2015, 14:27:06
Zitat
... ich habe meine Code im Auswahltyp: Formular=>Ereignis=> Beim Anzeigen -geschrieben, deswegen kam es dazu, dass MsgBox erst geöffnet wurde

Jetzt habe ich meine Code im Auswahltyp: Listenfeld=>Ereignis=>Beim Klicken=> VBA wird dann ausgeführt wenn ich auf Listenfeld Klicke :) ...

das meinte ich mit "Gedanken über Logik machen" ;)  Wenn du jetzt deinen Bezeichnern noch sinnvolle Namen spendierst, findest du dich (auch später) leichter in deinem Code zurecht.
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: MaggieMay am Oktober 20, 2015, 18:15:36
Zitatkann nicht nachvollziehen, was ich falsch in meinem Code geschrieben habe.
Teste im Unterbrechungsmodus, dann siehst du was passiert.
Titel: Re: MsgBox öffnet sich beim Starten des Formulars
Beitrag von: hase198312 am November 03, 2015, 09:44:46
Vielen Dank für Eure Tipps ich hab es endlich gelöst!!! :)

Hase