Guten Morgen zusammen!
Ich verzweifle und hoffe das ihr mir helfen könnt
Und zwar habe ich eine Windows Form in VB.NET (Visual Studio 2010) in die ich verschiedene Daten schreibe (Textbox, Checkbox und RichTextBox).
Diese Daten sollten daraufhin in eine Access 2010 Datenbank geschrieben werden.
Habe nun schon mehrere Befehle zum befüllen der Datenbank ausprobiert aber habe immer die gleichen Fehler, komme jedoch nicht auf die Lösung des Problems:
Fehlermeldung:
Invalid SQL statement; expected 'Delete', 'Insert', 'Procedure', 'Selet', or 'Update'.
1. Versuch:
Code:Dim conn As New OleDbConnection("Provider =" & "Microsoft.ACE.OLEDB.12.0;Data Source = P:\garantien.accdb") Dim sqlString As String = "INSERT INTO Erfassung (Bearbeiter, Fehlerbeschreibung, Erledigt)" & "VALUES ('" & Me.txtZeichen.Text & "', '" & Me.rtxFehlerbeschreibung.Text & "', '" & Me.chxErledigt.Checked = True & "')" Dim cmd As New OleDbCommand(sqlString, conn) Try conn.Open() cmd.ExecuteNonQuery() Catch ex As Exception MessageBox.Show(ex.Message) End Try conn.Close() MessageBox.Show("Neuer Datensatz eingetragen")
2. Versuch:
Zuoberst habe ich noch folgende Imports durchgeführt:Code:Dim con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=P:\garantien.accdb") Dim cmd As New OleDb.OleDbCommand cmd.Connection = con cmd.CommandText = "INSERT INTO Erfassung (Bearbeiter, Fehlerbeschreibung, Erledigt) VALUES ('" & Me.txtZeichen.Text & "', '" & Me.rtxFehlerbeschreibung.Text & "', '" & Me.chxErledigt.Checked = True & "')" Dim data As New OleDb.OleDbDataAdapter(cmd) Dim ds As New DataSet data.Fill(ds) MsgBox("Gespeichert") Me.Close()
Ich hoffe echt ihr könnt mir helfen. Es wird sicher nur wieder ein kleiner Fehler sein aber ich seh ihnCode:Imports System.Data.OleDb Imports System.Data.SqlClient Imports System.Data![]()
EDIT:
Uups hab grad gesehen das es hier in eigenes Forum für .NET gibt. Kann man das noch dahin verschieben?
+ Antworten
Ergebnis 1 bis 15 von 18
Daten von VB.NET in Access Datenbank schreiben
Diskussion über Daten von VB.NET in Access Datenbank schreiben in .NET der Kategorie Programmierung; Guten Morgen zusammen! Ich verzweifle und hoffe das ihr mir helfen könnt Und zwar habe ich eine Windows Form in ...
- 16.01.2012 09:04 #1Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
Daten von VB.NET in Access Datenbank schreiben
Geändert von Chlochou (16.01.2012 um 09:09 Uhr)
- 16.01.2012 14:24 #2
Was spricht dagegen ein Access Formular zu verwenden? Ansonsten kann ich nur davon abraten Access zu nutzen.
Wenn du es in .Net machen willst nimm eine ordentliche Datenbank (MySQL, MSSQL, Postgres, Oracle) oder falls es eine Single-User Anwendung ist nimm eine embedded DB.
- 16.01.2012 14:59 #3Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
Hm dagegen? Es sollte so gemacht werden damit ich was lerne und damit ich etwas zu programmieren habe

Es ist einfach so das es eine interne Applikation werden sollte worauf ca. 4 Leute Zugriff haben (lokal installiert). Mit der Software kann man neue Garantien von Geräten eintragen, Garantiefälle auslösen, Suchen und ähnliches.
Das komische ist eben das ich den genau gleichen Code in einem anderen Projekt verwendet habe (Einfach andere Übergabe Texte) und es da funktioniert hat
Die Verbindung zur Datenbank funktioniert.
- 16.01.2012 15:01 #4Reg.-Benutzer
- Reg.-Datum
- 26.07.2011
- Beiträge
- 25
er sagt dir doch das der SQL-string falsch ist. den kannst ja beim debuggen einfach mal rauskopieren und in Access einfügen
- 16.01.2012 15:10 #5Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
inwiefern in Access reinkopieren? steh wohl auf dem Schlauch^^
- 16.01.2012 15:10 #6
Natürlich habe ich nichts dagegen. Für das Szenario ist Access allerdings trotzdem ungünstig, da es eine Single-User Datenbank ist (vllt haben sie es bei 2010 endlich geändert - aber ich bezweifel es). Sprich: Greift jemand drauf zu ist es für die anderen gesperrt. Bei 4 Leuten wohl vernachlässigbar aber sollte man trotzdem beachten.
Zum lernen gehört aber nicht nur das programmieren, sondern auch das konzipieren. Meines Erachtens sogar der wichtigere Part.
Lass dir das erstellte Statement aus der Variable komplett ausgeben. Kopier es in den Access SQL Editor und er sollte dir eine genauere Fehlermeldung geben. Ansonsten gib uns das generierte Statement. Im Code finde ich keinen Fehler. Könnte höchstens an '' oder "" liegen.
- 16.01.2012 15:13 #7Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
Hm klar. Es ist eben so das theoretisch wirklich nur jmd drauf sein sollte. Ist es denn möglich es auch relativ simpel mit MySQL oder so zu lösen? Mit MySQL hab ich noch recht wenig Erfahrung, kann da nur eben Datenbanken erfassen etc.
Und die Verbindung ist da auch wieder so "kompliziert"?
- 16.01.2012 15:17 #8
Quelle: http://www.vb-paradise.de/allgemeine...vb2005-vb2008/Code:Imports MySql Imports MySql.Data Imports MySql.Data.MySqlClient '... Dim conn As New MySqlConnection Dim myConnectionString As String myConnectionString = "server=host;uid=user;pwd=pw;database=db; " conn.ConnectionString = myConnectionString Try conn.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try conn.close
Würde fast sagen es ist leichter als zu einer Access DB. Das arbeiten mit MySQL ist ähnlich wie bei Access, da die "Datenbanksprache" bei allen gängigen Datenbank fast identisch ist.Geändert von trollr (16.01.2012 um 15:21 Uhr)
- 16.01.2012 15:21 #9Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
Okay ich versuch das mal
Danke
Und zum anderen Problem weisst du sonst nichts?
- 16.01.2012 15:23 #10
Lass dir mal aus Bsp. 1. sqlString ausgeben und poste das Ergebnis.
- 16.01.2012 16:06 #11Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
okay.. jetzt schäm ich mich grad ein wenig vor euch

Mein Fehler liegt bei der Checkbox..
Hab jetzt alles nur mit textbox und RichTextBox getestet -> Wunderbare Daten in meiner DB.. Also muss wohl was an meiner Checkbox nicht passen
Tut mir echt verdammt Leid das ich euch damit belästigt hab.
Aber kannst du mir noch dabei helfen? Ich hab ne normale Checkbox die bei mir chxErledigt heisst. In der Access Datenbank hab ich Wahr oder Falsch genommen. Wenn die Checkbox angehäckelt ist, dann ist der Fall erledigt, sonst eben nicht. Hab mal zur Übersicht die Textboxen etc. rausgenommen..
Nun mach ich den Insert so:
Dann kommt die Fehlermeldung:Code:Dim sqlString As String = "INSERT INTO Erfassung (Erledigt)" & "VALUES ('" & chxErledigt.Checked & "')"
Data type mismatch in criteria expression
- 16.01.2012 19:31 #12
undCode:Me.chxErledigt.Checked = True
sollte eigentlich beides den selben Bool Wert ergeben.Code:Me.chxErledigt.Checked
Das erste ist ne Expression, aber Wert ist der gleiche.
Ich würd jetzt mal ungesehen, ungestestet, raten (educated guess) dass der OLEDB Treiber das nicht sauber zu Access Boolean übersetzt. In Access wäre checkbox.checked ein -1 statt einer 1...
Offen gesagt, bevor ich freiwillig Access verwend, parse und schreib ich mir XML.... selbst das ist imo besser als Access.
Ps.: Schäm dich nich, wirklich nich. Da gabs schon GANZ andere Fragen.
Gruß
SvenGeändert von streffin (16.01.2012 um 19:37 Uhr)
"Es geht nicht" ist keine adequate Fehlerbeschreibung !
- 17.01.2012 07:41 #13Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
- 17.01.2012 08:34 #14Reg.-Benutzer
- Reg.-Datum
- 04.05.2001
- Ort
- Neuburg / Donau
- Beiträge
- 451
Hallo
so wie es aussieht weißt du deinem Boolean in der Access- DB einen String zu
Dein Code
So denke ich sollte es gehen CodeCode:Dim sqlString As String = "INSERT INTO Erfassung (Erledigt)" & "VALUES ('" & chxErledigt.Checked & "')"
Und schämen braucht man sich nie, man sieht ja, dass du dir schon vorab deine gedanken gemacht hast, HILFE bekommt man in diesem Fall hier eigentlich immer.Code:Dim sqlString As String = "INSERT INTO Erfassung (Erledigt)" & "VALUES (" & chxErledigt.Checked & ")"
Gruß Hans-JörgGlaube nie einer Zeit, die dein Computerprogramm selbst gestoppt hat.
- 17.01.2012 10:39 #15Reg.-Benutzer
- Reg.-Datum
- 28.04.2009
- Beiträge
- 32
Wooow danke viel viel mals!! Es funktioniert nun endlich

Was so ein doofes Hochkomma nicht alles anrichten kann
Da ist bei mir noch eine Frage aufgetaucht.
Und zwar sind das ja eig. SQL Statements, oder?
Jetzt wäre es doch möglich eig. den Code zu "kopieren" und einfach statt Insert into eine Suche daraus zu generieren (Select * from..)?
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
C# daten in access db schreiben
Von zerberos im Forum .NETAntworten: 14Letzter Beitrag: 16.09.2007, 17:20 -
Daten online in Datenbank schreiben
Von sheyder im Forum DatenbankenAntworten: 8Letzter Beitrag: 18.05.2005, 17:29 -
daten von einer textdatei in die datenbank schreiben
Von azubi-tigerente im Forum DatenbankenAntworten: 4Letzter Beitrag: 02.12.2004, 12:21 -
Daten aus einer Datenbank in eine Listbox schreiben
Von Cleo im Forum C++: Compiler, IDEs, APIsAntworten: 4Letzter Beitrag: 01.03.2002, 08:46 -
XML Daten in Datenbank schreiben
Von MK im Forum DatenbankenAntworten: 0Letzter Beitrag: 29.09.2000, 11:52

LinkBack URL
About LinkBacks
Zitieren