Fehler im Code

Angelika_25

Mitglied
Hallo Leute, ich habe hier einen vb2005 Code, der einen kleinen Fehler enthält und ich weiß nicht warum.
Code:
Private Sub cb_Urlaubsanspruch2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cb_Urlaubsanspruch2.TextChanged
        Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data " & _
            "Source=C:\Urlaubsantrag.mdb")
        cn.Open()
        Dim ergebnis As String
        Dim text As String
        text = "Sie können nicht zweimal das gleiche Jahr verwenden!"
        With cn.CreateCommand()

Select Case cb_Urlaubsanspruch2.Text
                Case "2007"
                    If cb_Urlaubsanspruch.Text <> cb_Urlaubsanspruch2.Text Then
                        .CommandText = "Select UrlaubstageJahr2007 FROM Urlaubstage WHERE " & _
                              "Mitarbeiter='" & cb_Name.Text & "'"
                        ergebnis = .ExecuteScalar.ToString
                        lbl_Urlaubstage2.Text = ergebnis
                    Else
                        MsgBox("Sie können nicht zweimal die gleichen Jahre wählen!")
                        cb_Urlaubsanspruch2.Text = ""

                    End If
                Case "2008"
                    .CommandText = "Select UrlaubstageJahr2008 FROM Urlaubstage WHERE " & _
                      "Mitarbeiter='" & cb_Name.Text & "'"
                    ergebnis = .ExecuteScalar.ToString
                    lbl_Urlaubstage2.Text = ergebnis
Case "2009"
                    .CommandText = "Select UrlaubstageJahr2009 FROM Urlaubstage WHERE " & _
                          "Mitarbeiter='" & cb_Name.Text & "'"
                    ergebnis = .ExecuteScalar.ToString
                    lbl_Urlaubstage2.Text = ergebnis
                Case ""
                    lbl_Urlaubstage2.Text = ""

            End Select

            .Dispose()
        End With

        cn.Close()

    End Sub

Es funktioniert auch alles, nur wenn der Fall eintritt, dass man zwei gleiche Jahre hat, geht die MsgBox nicht weg. Kann mir vielleicht jemand helfen (Habe das bis jetzt nur bei dem Jahr 2007 probiert und habe dann nicht weitergemacht, weil es ja nicht funktioniert ;))

Bin hier halb am Verzweifeln!!

Liebe Grüße
 
Jedes Mal mit dem Bestätigen auf "OK" erscheint sie wieder, es ergibt also eine Endlossschleife. Es ist aber sehr wichtig, dass man eben nicht zweimal die gleichen Jahreszahlen in die ComboBoxen schreibt.


Liebe Grüße
 
liegt daran das du sofort wieder die Eigenschaft Text des Controls setzt und dadurch wird natürlich das TextChanged Event wieder ausgelöst.

Sehe auch gerade sollte durch SELECT eigentlich nicht passieren aber ich vermute mal das ein anderes Event auch noch mit ausgelöst wird.

Setzt einfach mal Breakpoint nach der MessageBox und schau dir im Callstack mal an wo er überall reinfällt.
 
Zurück