Halllo alle zusammen,
stehe mal wieder vor einem Problem. Ich hoffe sehr Ihr könnt mir helfen.
Zum Problem:
Ich habe eine Windowsform mit einem Dataset verbunden. Nun erstellt VB2005automatisch den Bindingnavigator. Das ist auch alles super so.
Jedoch möchte ich in dem Textfeld (Siehe Bild1), welches mit dem Dataset verbunden ist (Primärschlüsseltabelle) direkt in die Datensätze springen, wenn ich den Text ändere und mit "Enter" bestätige. Doch zurzeit wird nur das Feld geändert, welches zum Bindingnavigator vorgegebenen Datensatzes gehört. Wie kann ich diese Eigenschaft ändern???
Mit dem Bindingnavigator habe ich zwar die Möglichkeit, von einem Datensatz zum nächsten zu springen, kann aber nicht DIREKT den Datensatz aufrufen, den ich suche, bzw der mir bekannt ist. Zum Beispiel ich habe eine Artikeldatenbank und möchte nun alle Informationen von dem Artikel mit der Nr 1000 abrufen. Dann klicke ich doch nicht 1000 mal auf den Next-Button?!?!?
Zudem sollen bei diesem Vorgang auch alle Elemente aktualisiert werden, die sich auf der Form befinden, wenn ein entsprechender Datensatz vorhanden ist. Ansonsten springt ein Dialog auf, der fragt, ob der Datensatz neu eingefügt werden soll.
Wenn ich den Dialog mit "Ja" bestätige und einen Datensatz neu einfüge(siehe Code), soll auch nicht - wie beim Bindingnavigator - der Datensatz an die letzte stelle Rücken, sondern er soll an die Stelle springen, in der die Zeile auch stehen wird. (Immerhin steht in diesem Falle der Primärschlüsselwert "Bedienernummer" ja zur Verfügung, der zur Neuanlage verwendet wird)
So und nun einmal mein Code, den ich bis zu meinem Problem geschrieben habe:
Bediener=Textbox(Siehe Bild1)
Ich Danke euch jetzt schon mal für eure tatkräftige Unterstützung. Bis jetzt wurde mir immer super geholfen hier.
Gruß
Laura
stehe mal wieder vor einem Problem. Ich hoffe sehr Ihr könnt mir helfen.
Zum Problem:
Ich habe eine Windowsform mit einem Dataset verbunden. Nun erstellt VB2005automatisch den Bindingnavigator. Das ist auch alles super so.
Jedoch möchte ich in dem Textfeld (Siehe Bild1), welches mit dem Dataset verbunden ist (Primärschlüsseltabelle) direkt in die Datensätze springen, wenn ich den Text ändere und mit "Enter" bestätige. Doch zurzeit wird nur das Feld geändert, welches zum Bindingnavigator vorgegebenen Datensatzes gehört. Wie kann ich diese Eigenschaft ändern???
Mit dem Bindingnavigator habe ich zwar die Möglichkeit, von einem Datensatz zum nächsten zu springen, kann aber nicht DIREKT den Datensatz aufrufen, den ich suche, bzw der mir bekannt ist. Zum Beispiel ich habe eine Artikeldatenbank und möchte nun alle Informationen von dem Artikel mit der Nr 1000 abrufen. Dann klicke ich doch nicht 1000 mal auf den Next-Button?!?!?
Zudem sollen bei diesem Vorgang auch alle Elemente aktualisiert werden, die sich auf der Form befinden, wenn ein entsprechender Datensatz vorhanden ist. Ansonsten springt ein Dialog auf, der fragt, ob der Datensatz neu eingefügt werden soll.
Wenn ich den Dialog mit "Ja" bestätige und einen Datensatz neu einfüge(siehe Code), soll auch nicht - wie beim Bindingnavigator - der Datensatz an die letzte stelle Rücken, sondern er soll an die Stelle springen, in der die Zeile auch stehen wird. (Immerhin steht in diesem Falle der Primärschlüsselwert "Bedienernummer" ja zur Verfügung, der zur Neuanlage verwendet wird)
So und nun einmal mein Code, den ich bis zu meinem Problem geschrieben habe:
Bediener=Textbox(Siehe Bild1)
Code:
Private Sub BedienerTextBox_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bediener.Leave 'Bediener suchen Dim Bediener As String = Me.Bediener.Text Dim aFindRow As DataRow = Me.BedienerTableAdapter.GetData.Rows.Find(Bediener) 'Gesuchter Bediener nicht vorhanden If aFindRow Is Nothing Then 'Meldung erzeugen Dim strMeldung As String strMeldung = "Der gesuchte Bediener ist nicht vorhanden? Wollen Sie Ihn jetzt anlegen?" Dim result As DialogResult = MessageBox.Show(strMeldung, _ "Kein Datensatz vorhanden", _ MessageBoxButtons.YesNo, _ MessageBoxIcon.Question, _ MessageBoxDefaultButton.Button2) 'Result No If result = System.Windows.Forms.DialogResult.No Then Else 'Result Yes result = System.Windows.Forms.DialogResult.Yes 'Passwort hashen Dim nwpass As String = Me.nwpass.Text Dim nhashsource As String = getMd5Hash(nwpass) ' Neuen Datensatz erzeugen Dim newBedienerRow As FMSDataSet.BedienerRow newBedienerRow = Me.FMSDataSet.Bediener.NewBedienerRow() newBedienerRow.Bediener = Me.Bediener.Text.ToString newBedienerRow.Passwort = nhashsource.ToString ' Datensatz anfügen Me.FMSDataSet.Bediener.Rows.Add(newBedienerRow) ' Datensatz speichern Me.BedienerTableAdapter.Update(Me.FMSDataSet.Bediener) MessageBox.Show("Der Bediener wurde erfolgreich angelegt", "Bediener " & Me.Bediener.Text, 0, MessageBoxIcon.Information) 'Zum Datensatz springen und alle Felder aktualisieren ???????Hilfe End If Else 'Gesuchter Bediener vorhanden 'Zum Datensatz springen und alle Felder aktualisieren ???????Hilfe End If End Sub ' Press Enter auf Textfeld Bediener Private Sub Bediener_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Bediener.KeyPress If e.KeyChar = Chr(13) Then 'ENTER Klick SendKeys.Send("{tab}") e.Handled = True End If End Sub
Ich Danke euch jetzt schon mal für eure tatkräftige Unterstützung. Bis jetzt wurde mir immer super geholfen hier.
Gruß
Laura
Comment