Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

MsgBox öffnet sich beim Starten des Formulars

Begonnen von hase198312, Oktober 20, 2015, 11:43:01

⏪ vorheriges - nächstes ⏩

hase198312

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

el_gomero

Moin,

Zitat
... zu diesem Formular habe ich eine VBA Code geschrieben,  ...
und wie lautet der vollständige Code?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

hase198312

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

el_gomero

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 ...
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MaggieMay

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.
Freundliche Grüße
MaggieMay

hase198312


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 ??? :-\

hase198312

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

el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MaggieMay

Zitatkann nicht nachvollziehen, was ich falsch in meinem Code geschrieben habe.
Teste im Unterbrechungsmodus, dann siehst du was passiert.
Freundliche Grüße
MaggieMay

hase198312

Vielen Dank für Eure Tipps ich hab es endlich gelöst!!! :)

Hase