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
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