Problem mit Visual Basic 2005 Express

  • #1
S

Steffen.Hack

Mitglied
Themenersteller
Dabei seit
08.04.2003
Beiträge
22
Reaktionspunkte
0
Ort
Pirmasens
Hallo!

ich übe gerade den Umgang mit Datenbanken unter Microsoft Visual Basic 2005 Express.

Vielleicht könnten Sie mir einen kleinen Tip geben, da ich gerade nicht weiterkomme.



Ich habe eine Access-Datenbank mit mehreren Tabellen erstellt.



Unter Visual Basic habe ich nun eine Verbindung zur Datenbank hergestellt.

Mit Hilfe von „TableAdapter“, „DataSet“, „BindingSource“ und „BindingNavigator“ können Datensätze auch angezeigt, bearbeitet, gelöscht und hinzugefügt und in der Datenbank aktualisiert werden.



Hier der Code-Auszug zu dem ich eine Frage habe:



Public Class Admin



Private Sub MitarbeiterBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MitarbeiterBindingNavigatorSaveItem.Click

Me.Validate()

Me.MitarbeiterBindingSource.EndEdit()

Me.MitarbeiterTableAdapter.Update(Me.ZefDataSet.Mitarbeiter)



End Sub



Private Sub Admin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

->TODO: Diese Codezeile lädt Daten in die Tabelle ZefDataSet.Mitarbeiter. Sie können sie bei Bedarf verschieben oder entfernen.

Me.MitarbeiterTableAdapter.Fill(Me.ZefDataSet.Mitarbeiter)



End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click



Dim Datensatz As New Object



Datensatz = Me.ZefDataSet.Mitarbeiter.FindByPersonalnummer(Me.TextBox1.Text)



If Datensatz Is Nothing Then

MsgBox(Personalnummer nicht vorhanden!)

Exit Sub

Else

->Me.MitarbeiterBindingSource.MoveNext()

->MsgBox(Me.MitarbeiterBindingSource.IndexOf(Datensatz.Personalnummer))

Me.MitarbeiterBindingSource.Position = ???->Index der gesuchten Personalnummer

End If



End Sub

End Class





Aufgabe: es soll anhand der Personalnummer ein Datensatz zum bearbeiten angezeigt werden.



Es ist kein Problem die Position des Datensatzes im DataSet anhand der Personalnummer (Primärschlüssel) zu finden:



Me.ZefDataSet.Mitarbeiter.FindByPersonalnummer(Me.TextBox1.Text).ID



Leider entspricht diese ID (Autowert) nicht der Position im BindingSource-Objekt. Zumindest nicht, wenn Datensätze gelöscht wurden und dazwischen ID's fehlen.



Das BindingSource-Objekt kennt auch nicht die Methode FindByPersonalnummer, sondern nur MoveNext, MovePrevious, Position =, usw.



Wie kann ich das BindingSource-Objekt dazu bringen, den im DataSet gesuchten Datensatz anzuzeigen?



Me.MitarbeiterBindingSource.Position = ???





Für die Ergänzung des Codes an der Stelle ??? wäre ich sehr dankbar!
 
Thema:

Problem mit Visual Basic 2005 Express

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben