Hallo liebe Forumsmitglieder,
ich habe folgendes Problem:
in meiner Windowsform habe ich ein TabControl mit 2 Seiten. Auf der ersten sind Textfelder, auf der zweiten ein Datagrid.
Über eine Parametrisierte Abfrage (INSERT) füge ich neue Datensätze aus den Textfeldern in meine Accesstabelle ein. Funktioniert auch, nur werden sie im Grid nicht angezeigt. Was mach ich denn nur falsch? Wäre schön, wenn mir jemand einen Tipp geben könnte.
Beste Grüsse
sphinxx
Inherits System.Windows.Forms.Form
Dim conn As OleDbConnection
Dim cmd As OleDbCommand
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim dt As DataTable
Dim dv As DataView
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data" & _
"Source=c:\WindowsApplication1\daten.mdb")
cmd = New OleDbCommand("SELECT Feld1T1, Feld2T1, Feld3T1, Feld1T2, Feld2T2" & _
"FROM Tabelle1", conn)
da = New OleDbDataAdapter(cmd)
ds = New DataSet
conn.Open()
da.Fill(ds, "Tabelle1")
conn.Close()
dt = ds.Tables.Item("Tabelle1")
dv = ds.DefaultViewManager.CreateDataView(dt)
dv.Sort = "Feld1T1"
DataGrid1.DataSource = dv
End Sub
' Hinzufügen mit eigenem InsertCommand:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim insSQL As String = "INSERT INTO Tabelle1 (Feld1T1, Feld2T1, Feld3T1," & _
"Feld1T2, Feld2T2) VALUES (?, ?, ?, ?, ?)"
Dim cmd As New OleDbCommand(insSQL, conn)
cmd.Parameters.Add("@p1", OleDbType.Char, 50, "Feld1T1").Value = _
TextBox1.Text
cmd.Parameters.Add("@p2", OleDbType.Char, 50, "Feld2T1").Value = _
TextBox2.Text
cmd.Parameters.Add("@p3", OleDbType.Char, 50, "Feld3T1").Value = _
TextBox3.Text
cmd.Parameters.Add("@p4", OleDbType.Char, 50, "Feld1T2").Value = _
TextBox4.Text
cmd.Parameters.Add("@p5", OleDbType.Char, 50, "Feld2T2").Value = _
TextBox5.Text
cmd.CommandText = insSQL
conn.Open()
Try
cmd.ExecuteNonQuery() 'Platzhalter durch Daten ersetzen und in Tabelle
' schreiben
Beep()
Catch ex As Exception
MsgBox(ex.Message)
End Try
da.Fill(ds, "Tabelle1")
conn.Close()
DataGrid1.DataSource = dv
MsgBox("Datensatz angelegt")
End Sub |