Spaltenwert/Datensätze in Access mit VB 2005 ändern

Smashing Brain

Grünschnabel
Hallo,

mit dem u.g. Code suche ich aus einer Tabelle ("Ta1") mit 3 Spalten (Test, Test1, Test3) in einer Access 2003 DB gespeicherte Werte heraus. Das klappt auch ganz Prima, sowie das speichern "Neuer" Datensätze.
Nur möchte ich die bereits per Eingabe in TextBox5 (Suchfeld) ausgelesenen Werte in TextBox6 und RichTextBox bearbeiten und anhand des Suchkriteriums (TextBox5) wieder in den jeweiligen Spalten speichern (cmdÄndern). Den korrekten Vorgang bekomme ich noch nicht ganz richtig hin. Habe da in Dr. Frankenstein´s Manier ein Spitzen Code zusammengebastelt der natürlich nicht funktioniert (Hehe).
Ich bitte nunmehr um eure Unterstützung.

Für eure Bemühungen bedanke ich mich im Voraus ganz herzlich.

Mit freundlichen Grüssen
Smashing Brain

Code:
Private Sub Suchen()
        conn.Open()
        Try
            'Suchen
            'Datensatz suchen
            Me.dv.Sort = ""
            Me.dv.RowFilter = ""

            dv = New DataView(ds.Tables("Ta1"))

            Dim suchText As String
            suchText = Me.TextBox5.Text

            Dim objZeilen() As DataRowView
            suchText = Me.TextBox5.Text
            Me.dv.Sort = "Test"
            objZeilen = dv.FindRows(suchText)
            If objZeilen.Length = 0 Then
                MessageBox.Show("Sorry, kein " & suchText & " vorhanden.")
                Me.TextBox5.Text = ""
                Me.TextBox5.Select()
            Else
                'Dim intIndex As Integer
                Me.BindingContext(dv).Position = 0
                dv.RowFilter = "Test = '" & suchText & "'"
                Me.BindingContext(dv).Position = 0

                Dim ctl As Control
                For Each ctl In Me.Controls
                    ctl.Visible = True

                    With Me
                        .TextBox5.DataBindings.Clear()
                        .TextBox5.DataBindings.Add("Text", dv, "Test")
                        .TextBox6.DataBindings.Clear()
                        .TextBox6.DataBindings.Add("Text", dv, "Test1")
                        Form2.RichTextBox1.DataBindings.Clear()
                        Form2.RichTextBox1.DataBindings.Add("RTF", dv, "Test3")
                    End With
                Next
                '    If objZeilen.Length > 1 Then
                '        Me.cmdSichern.Visible = True
                '    Else
                '        Me.cmdSichern.Visible = False
                '    End If
            End If

        Catch ex As OleDbException
            MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation)
        Finally
            conn.Close()
        End Try

    End Sub

    Private Sub cmdSichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSichern.Click

        Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da)

        'conn.Open()
        Try
            'Im DataSet einen neuen Datensatz hinzufügen
            'Der Tabelle eine neue DataRow hinzufügen

            Dim Zeile As DataRow
            Zeile = ds.Tables("Ta1").NewRow

            da.Fill(ds, "Ta1")
            Table = ds.Tables("Ta1")

            'Werte übergeben
            With Zeile
                .Item("Test") = TextBox5.Text
                .Item("Test1") = TextBox6.Text
                '.Item("Test3") = RichTextBox1.Rtf
            End With

            ds.Tables("Ta1").Rows.Add(Zeile)
            'Datenbank updaten
            da.Update(ds, "Ta1")

            MessageBox.Show("Datensatz  " & strEintrag & " geändert!", _
                        "Datensatz", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As OleDbException
            MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation)
        Finally
            'conn.Close()
        End Try

    End Sub

'>>>>>>>>>>>>>>>>DAS IST DIE LEICHE<<<<<<<<<<<<<<<<<<<<<<<<<<

    Private Sub cmdÄndern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdÄndern.Click

        Dim conn As New OleDbConnection(connStr)
        Dim SelCmd As New OleDbCommand(sqlstr, conn)

        da1 = New OleDbDataAdapter(SelCmd)
        Dim cb As New OleDbCommandBuilder(da1)

        ds1 = New DataSet()

        'DataSet mit Daten füllen
        da1.Fill(ds1, "Ta1")
        Dim Zeile As DataRow
        Zeile = ds.Tables("Ta1").Rows.Add
        ' Textfeld an Feld in der Tabelle binden
        With Zeile
            .Item("Test") = TextBox5.Text
            .Item("Test1") = TextBox6.Text
            .Item("Test3") = RichTextBox1.Rtf
        End With
        bs1.EndEdit()

        ' Update durchführen
        da1.Update(ds1, "Ta1")

    End Sub
 
Zurück