Ich habe 1 Access Datenbank welche 2 Tabellen beinhaltet. Beide Tabellen stehen in einer 1-1 Beziehung. (Allgemein und Details)
Die Adressen möchte ich jetzt in einem Data Grid anzeigen und die Details in Textfeldern rechts daneben.
Klickt man also eine Adresse im Grid an sollen die Details in den Textfeldern angezeigt werden.
Aber wie jet das jetzt mit 2 Tabellen?
Ich habs so probiert funkt aber leider net.
Wenn ich die Datensätze durchblätter funkt es wenn ich aufs Grid klicke werden mir nur die Daten von der Tabelle Allgemein angezeigt.
Daten übernehmen zurück in die Datenbank funkt. leider auch nicht.
Public Class Form1
Inherits System.Windows.Forms.Form
Private cm As CurrencyManager 'zum blättern,löschen,hinzufügen Tabelle
' Allgemein
Private cm2 As CurrencyManager 'zum blättern,löschen,hinzufügen Tabelle
' Details
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
OleDbDataAdapter1.Fill(DataSet12.Allgemein)
OleDbDataAdapter2.Fill(DataSet12.Details)
cm = CType(Me.BindingContext(DataSet12, "Allgemein"), CurrencyManager)
cm2 = CType(Me.BindingContext(DataSet12, "Details"), CurrencyManager)
End Sub
'Datensatz durchblättern
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
cm.Position = 0 '|<
cm2.Position = 0 '|<
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button2.Click
cm.Position -= 1 '<
cm2.Position -= 1
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button3.Click
cm.Position += 1 '>
cm2.Position += 1
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button4.Click
cm.Position = cm.Count - 1 ' >|
cm2.Position = cm.Count - 1
End Sub
'Hinzufügen eines Datensatzes
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button5.Click
cm.AddNew()
End Sub
'Löschen eines Datensatzes
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button6.Click
If cm.Count > 0 Then
Dim msg As String = "Wollen Sie den Kunden " & TextBox3.Text & "" & _
"wirklich löschen?"
Dim cpt As String = "Kunden löschen"
If MessageBox.Show(msg, cpt, MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) _
= DialogResult.Yes Then cm.RemoveAt(cm.Position)
Else
MessageBox.Show("Kein Kunde zum Löschen vorhanden!", "", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
'Abrechen keine änderungen übernehmen
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button7.Click
cm.CancelCurrentEdit()
End Sub
'Daten übernehmen
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button8.Click
cm.EndCurrentEdit()
If DataSet11.HasChanges Then
Try
Dim m As Integer = OleDbDataAdapter1.Update(DataSet12.Allgemein)
MessageBox.Show((m.ToString & "Kunde(n) geändert!"), _
"Änderungen ervolgreich übernommen!", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "Fehler beim Update!", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Else
MessageBox.Show("Keine Änderungen vorhanden!", "Änderungen" & _
"übernehmen", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
End Class |