Hallo zusammen
Ich möchte eine kleines Zeiterfassungsprogramm erstellen und habe mich für VB.Net entschieden, da ich vorher meistens in Access unterwegs war. Daher ist die Datenbank auch eine Access Tabelle.
Ich habe ein Dataset mit dem Designer erstellt, einfach die Datenbank verbunden und die Tabelle in das Datenset gezogen. Funktioniert soweit gut.
Für das Form mit dem Mitarbeiter funktioniert alles Tipp Topp. Nun möchte ich noch eine Form mit den Stempelungen erstellen. Ich möchte nicht alle Daten in das Datenset laden, möchte ich den Datenadapter den SQL entsprechend anpassen.
Wenn ich die Datenbankverbindung manuell erfasse, kann ich beim Datenadapter den CommandText problemlos anpassen.
Hier ein Beispiel:
Wenn ich aber den Datenadapter vom
Dataset anpassen möchte, ist dies nicht möglich. (Achtung –
Beispiel auf andere Tabelle – ist nur für die Erklärung)
Es
kommt folgender Fehler bei Zeile 3:
System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
System.Data.OleDb.OleDbDataAdapter.SelectCommand.get hat Nothing zurückgegeben.
Könnt Ihr mir da weiterhelfen.
Besten Dank
Ich möchte eine kleines Zeiterfassungsprogramm erstellen und habe mich für VB.Net entschieden, da ich vorher meistens in Access unterwegs war. Daher ist die Datenbank auch eine Access Tabelle.
Ich habe ein Dataset mit dem Designer erstellt, einfach die Datenbank verbunden und die Tabelle in das Datenset gezogen. Funktioniert soweit gut.
Für das Form mit dem Mitarbeiter funktioniert alles Tipp Topp. Nun möchte ich noch eine Form mit den Stempelungen erstellen. Ich möchte nicht alle Daten in das Datenset laden, möchte ich den Datenadapter den SQL entsprechend anpassen.
Wenn ich die Datenbankverbindung manuell erfasse, kann ich beim Datenadapter den CommandText problemlos anpassen.
Hier ein Beispiel:
VB.NET-Quellcode
- Dim Con_str As String
- Dim DB_Path As String
- Dim DB_name As String
- Dim sql As String
- DB_Path = "C:\Script\Zeiterfassung"
- DB_name = "Zeiterfassung.accdb"
- Con_str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Script\Zeiterfassung\Zeiterfassung.accdb"
- conn = New OleDbConnection
- If System.IO.File.Exists(DB_Path & "\" & DB_name) Then
- conn.ConnectionString = Con_str
- Else
- MsgBox("Datenbank nicht gefunden - bitte Einstellen und neu starten")
- Exit Sub
- End If
- sql = "Select TOP 4 * From Stempelzeit Where MaNr = 1084 Order by Stempelzeit DESC"
- daStempelzeit = New OleDbDataAdapter("", conn)
- daStempelzeit.SelectCommand.CommandText = sql
- daStempelzeit.SelectCommand.CommandType = CommandType.Text
- '........Hier wird der Code gekürzt...
- sql = "Select TOP 4 * From Stempelzeit Where MaNr = " & Me.TB_MANr.Text & " Order by Stempelzeit DESC"
- daStempelzeit.SelectCommand.CommandText = sql
- daStempelzeit.Fill(Me.ZeiterfassungDataSet.Stempelzeit)
Wenn ich aber den Datenadapter vom
Dataset anpassen möchte, ist dies nicht möglich. (Achtung –
Beispiel auf andere Tabelle – ist nur für die Erklärung)
Es
kommt folgender Fehler bei Zeile 3:
System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
System.Data.OleDb.OleDbDataAdapter.SelectCommand.get hat Nothing zurückgegeben.
Könnt Ihr mir da weiterhelfen.
Besten Dank