Hallo, ich habe ein Problem mit meinem Datenbankprogrämmchen !
Ich habe mir zum besseren Verständnis mal ein kleines Programm erstellt mit dem man auf eine Access DB zugreifen kann. Die dort vorhandenen Einträge kann man anzeigen, ändern, löschen, suchen und neue Einträge hinzufügen. Den Quellcode habe ich mir aus den Gallileo openBooks zusammengesucht.
Bei mir installiert ist Office 2007 und Windows 7 Beta. Dort klappt auch alles problemlos !!
Wenn ich das Programm aber auf einem XP Rechner laufen lasse kommt beim schreiben, ändern und löschen nur eine Msgbox in der "fehlt" steht.
Das gleiche Spiel bei einem Vista Rechner, nur daß dort "Operation muss eine aktualisierbare Abfrage verwenden" in der Msgbox steht.
Ich bin bei allen drei Rechnern als Admin angemeldet.
Ich suche schon tagelang und finde nichts
Ich hoffe jemand kann mir helfen.
Ich hab den Source und die DB mal angehängt. Beim ausführen muß die DB in C:\ liegen
Grüße Black_Ice
Ich habe mir zum besseren Verständnis mal ein kleines Programm erstellt mit dem man auf eine Access DB zugreifen kann. Die dort vorhandenen Einträge kann man anzeigen, ändern, löschen, suchen und neue Einträge hinzufügen. Den Quellcode habe ich mir aus den Gallileo openBooks zusammengesucht.
Bei mir installiert ist Office 2007 und Windows 7 Beta. Dort klappt auch alles problemlos !!
Wenn ich das Programm aber auf einem XP Rechner laufen lasse kommt beim schreiben, ändern und löschen nur eine Msgbox in der "fehlt" steht.
Das gleiche Spiel bei einem Vista Rechner, nur daß dort "Operation muss eine aktualisierbare Abfrage verwenden" in der Msgbox steht.
Ich bin bei allen drei Rechnern als Admin angemeldet.
Ich suche schon tagelang und finde nichts
Ich hoffe jemand kann mir helfen.
Ich hab den Source und die DB mal angehängt. Beim ausführen muß die DB in C:\ liegen
Grüße Black_Ice
VB.NET-Quellcode
- Public Class Form1
- Dim con As New OleDb.OleDbConnection
- Dim cmd As New OleDb.OleDbCommand
- Dim reader As OleDb.OleDbDataReader
- Dim pnummer As New ArrayList
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- con.ConnectionString = _
- "Provider=Microsoft.Jet.OLEDB.4.0;" & _
- "Data Source=C:\firma.mdb"
- cmd.Connection = con
- End Sub
- Private Sub cmdsehen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsehen.Click
- AlleSehen()
- End Sub
- Sub AlleSehen()
- Try
- con.Open()
- cmd.CommandText = "select * from personen"
- Ausgabe()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- txtNachname.Text = ""
- txtVorname.Text = ""
- txtPersonalnummer.Text = ""
- txtGehalt.Text = ""
- txtGeburtstag.Text = ""
- End Sub
- Sub Ausgabe()
- reader = cmd.ExecuteReader()
- lstTab.Items.Clear()
- pnummer.Clear()
- Do While reader.Read()
- lstTab.Items.Add(reader("nachname") & " # " _
- & reader("vorname") & " # " _
- & reader("personalnummer") & " # " _
- & reader("gehalt") & " # " _
- & reader("geburtsdatum"))
- pnummer.Add(reader("personalnummer"))
- Loop
- reader.Close()
- End Sub
- Private Sub cmdEinfügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEinfügen.Click
- Dim anzahl As Integer
- If txtPersonalnummer.Text = "" Then
- MsgBox("Bitte mindestens eine " _
- & "Personalnummer eintragen")
- Exit Sub
- End If
- Try
- con.Open()
- cmd.CommandText = _
- "insert into personen " & _
- "(nachname, vorname, personalnummer, " & _
- "gehalt, geburtsdatum) " & _
- "values ('" & _
- txtNachname.Text & "', '" & _
- txtVorname.Text & "', " & _
- txtPersonalnummer.Text & ", " & _
- Val(txtGehalt.Text) & ", '" & _
- CDate(txtGeburtstag.Text) & "')"
- 'MsgBox(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- MsgBox("Es wurde ein Datensatz eingefügt")
- End If
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- AlleSehen()
- End Sub
- Private Sub lstTab_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstTab.SelectedIndexChanged
- Try
- con.Open()
- cmd.CommandText = _
- "select * from personen " _
- & "where personalnummer = " _
- & pnummer(lstTab.SelectedIndex)
- reader = cmd.ExecuteReader()
- reader.Read()
- txtNachname.Text = reader("Nachname")
- txtVorname.Text = reader("vorname")
- txtPersonalnummer.Text = reader("personalnummer")
- txtGehalt.Text = reader("gehalt")
- txtGeburtstag.Text = reader("geburtsdatum")
- reader.Close()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- End Sub
- Private Sub cmdÄndern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdÄndern.Click
- Dim anzahl As Integer
- If txtPersonalnummer.Text = "" Then
- MsgBox("Bitte einen Datensatz auswählen " _
- & "und mindestens eine Personalnummer " _
- & "eintragen")
- Exit Sub
- End If
- Try
- con.Open()
- cmd.CommandText = _
- "update personen set " & _
- "Nachname = '" & txtNachname.Text & "', " & _
- "vorname = '" & txtVorname.Text & "', " & _
- "personalnummer = " _
- & txtPersonalnummer.Text & ", " & _
- "gehalt = " _
- & Val(txtGehalt.Text) & ", " & _
- "geburtsdatum = '" _
- & CDate(txtGeburtstag.Text) & "' " & _
- "where personalnummer = " _
- & pnummer(lstTab.SelectedIndex)
- 'MsgBox(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- MsgBox("Es wurde ein Datensatz geändert")
- End If
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- AlleSehen()
- End Sub
- Private Sub cmdLöschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLöschen.Click
- Dim anzahl As Integer
- If txtPersonalnummer.Text = "" Then
- MsgBox("Bitte einen Datensatz auswählen")
- Exit Sub
- End If
- If MsgBox("Wollen Sie den ausgewählten " _
- & "Datensatz wirklich löschen?", _
- MsgBoxStyle.YesNo) = MsgBoxResult.No Then
- Exit Sub
- End If
- Try
- con.Open()
- cmd.CommandText = _
- "delete from personen " & _
- "where personalnummer = " & _
- pnummer(lstTab.SelectedIndex)
- 'MsgBox(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- MsgBox("Es wurde ein Datensatz gelöscht")
- End If
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- AlleSehen()
- End Sub
- Private Sub cmdSuchen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSuchen.Click
- If txtNachname.Text = "" Then
- MsgBox("Bitte einen Such-Namen eintragen")
- Exit Sub
- End If
- Try
- con.Open()
- cmd.CommandText = _
- "select * from personen where Nachname like '%" _
- & txtNachname.Text & "%'"
- 'MsgBox(cmd.CommandText)
- Ausgabe()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- con.Close()
- End Sub
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Black_Ice“ ()