MS Access mit Java Problem mit Update Statment

Rin

Mitglied
Hallo alle zusammen,

ich bin seit heute hier regestriert weil ich schon viele hilfreiche sachen hier gelesen habe und man merkt das hier einem geholfen wird

Ich hab folgendes Problem in folgendem Code:

Java:
 String einmupStmt1 = "UPDATE Einmelder2 " +
				   "SET Einmelder2.Umfragelink = " + Umfragelink + " " +
				   "WHERE Umfragelink = Null AND EinmelderID IN (" +                                   Authentificator.getIdSb() +
				   ")";
				 PreparedStatement einmupPrepSt1 = con.prepareStatement(einmupStmt1);
				 boolean einmupresult1 = einmupPrepSt1.execute();

das Authentificator.getIdSb ist ein stringbuffer wo ausgewählte 20% einer tabelle upgedatet werden sollen so die Tabelle schaut so aus
  • Einmelder ID (Autowert)
  • Einmelder (String)
  • EinmelderEmail (String)
  • LetzeUmfrage (Date) (Timestemp)
  • UmfrageID (Zahl) (Verweis auf die jeweilige Umfrage)
  • Umfragelink (String)
  • Gesperrt (Boolean) (Erklärt sich von selbst)

Problem ist das er mir jedes mal diesen fehler ausgibt:
[Microsoft][ODBC-Treiber für Microsoft Access] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
:bahnhof: ???:L

ich hoffe es kann mir wer helfen
Vielen Dank

Lg
 

nrg

Top Contributor
Mach doch mal nach Zeile 4 ein
Code:
System.out.println(einmupStmt1);
und führe dann diese Ausgabe direkt auf der Datenbank aus. So siehste dann schonmal recht schnell, ob du das Statement richtig zusammengesetzt hast. Ausserdem verstehe ich nicht, warum du PreparedStatement verwendest und dein Statement trotzdem selber zusammenbaust. PreparedStatement nimmt dir eigentlich diese Arbeit ab und macht die Statements dadruch transparenter und fehlerunanfälliger.

btw: Variablen sind lowerCamelCase.
 

Rin

Mitglied
also wenn ich vorher System.out.println(einmupStmt1); zeigt er mir ein korrektes Statment

UPDATE Einmelder2 SET Einmelder2.Umfragelink = asdasdasd WHERE Umfragelink = Null AND EinmelderID IN (7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277)

ich arbeit noch dazu mit swing und den link geb ich manuell ein

und wusst ich nicht das preparedstatment mir diese arbeit abnimmt dann sollte statment ausreichen wenn ich es eh zusammen bastel

was mich einfach so stutzig mach ist das die spalte vorhanden ist die where bedingung stimmt eigentlich auch hm...

sitzt jetzt schon seit gestern an diesem problem
 

areafo

Mitglied
Wo ist das ein korrektes Statement? Da fehlt doch hinten das ; evtl. Where noch klammern. Access ist da manchmal eigenen

UPDATE Einmelder2 SET Einmelder2.Umfragelink = asdasdasd WHERE (Umfragelink = Null AND EinmelderID IN (7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277));
 

areafo

Mitglied
Einmelder2.Umfragelink = "asdasdasd" ist ja ein Text den du da überschreiben willst. Liegt also allein an deiner SQL Formulierung. zur Not Access auf u Aktualisierungsabfrage erstmal da formulieren.

mit \" escapen um " zu bekommen
 

Rin

Mitglied
ja das ; war nicht makiert und ist nicht kopiert worden :lol: xD und ja bin gerade selber darauf gekommen das es einfach nur banal ist und zwar die hochkomme fehlen danke trotzdem manchmal sieht man den wald für lauter bäumen nicht

danke trotzdem an euch

lg
 

nrg

Top Contributor
ja und genau bei solchen fehler könnte dir PreparedStatement helfen. also würde ich dir schon empfehlen dich damit anzufreunden.
 

Rin

Mitglied
ah wie genau kann mir das dabei helfen? kann ich sozusagen damit vorgefertigte statments nehmen und mit einzelnen parametern füttern sozusagen??
 

Rin

Mitglied
aja da fällt mir noch eine frage ein es gibt den Access befehl DLookup('Spalte','Tabelle') benutz ich um die umfrage id aus einer anderen tabelle zu lesen ohne das ich ein subselect brauche im Update Statment so jetzt ist die frage ob das nur den ersten Datensatz aussliest weil ich eben das problem hab das er mir die falsche ID in die Tabelle Hineinschreibt und ich nicht weiß wie ich das genauer mit einer where bedingung gestallten kann das er mir genau die ID zu der Dazugehörigen Umfrage ausliest und ein in die tabelle Einmelder einschreibt

sorry für dopple post
 

Rin

Mitglied
edit:

das problem ist leider doch nicht gelöst bzw hat sich ein neues Entwickelt also ich habe dieses Update Statement:
SQL:
UPDATE Einmelder2 SET UmfrageID = DLookup('UmfrageID','Umfrage2',"Umfragelink='test1'") WHERE LetzteUmfrage=Date() AND Gesperrt = 1;

so im Access funktionierts einbandfrei aber sobald ich ein statement im java mache funktionierts plötzlich nicht mehr -.- dann sagt er mir wieder das 1 Parameter erwartet wurde aber zu wenige gegeben waren

hoffe ich könnt mir helfen

LG
 
Zuletzt bearbeitet:

r.w.

Bekanntes Mitglied
Hallo Rin,

edit:

das problem ist leider doch nicht gelöst bzw hat sich ein neues Entwickelt also ich habe dieses Update Statement:
SQL:
UPDATE Einmelder2 SET UmfrageID = DLookup('UmfrageID','Umfrage2',"Umfragelink='test1'") WHERE LetzteUmfrage=Date() AND Gesperrt = 1;

so im Access funktionierts einbandfrei aber sobald ich ein statement im java mache funktionierts plötzlich nicht mehr -.- dann sagt er mir wieder das 1 Parameter erwartet wurde aber zu wenige gegeben waren

hoffe ich könnt mir helfen

LG

kann es sein, dass Du vergessen hast, dort die doppelten Anführungszeichen zu maskieren?

BTW:
Java:
 String einmupStmt1 = "UPDATE Einmelder2 " +
                   "SET Einmelder2.Umfragelink = " + Umfragelink + " " +
                   "WHERE Umfragelink = Null AND EinmelderID IN (" +                                   Authentificator.getIdSb() +
                   ")";
                 PreparedStatement einmupPrepSt1 = con.prepareStatement(einmupStmt1);
                 boolean einmupresult1 = einmupPrepSt1.execute();
Was macht das für einen Sinn, PreparedStatements zu verwenden und dann
das SQL-Statement doch selbst zusammen zu basteln statt Parameter zu verwenden?


VG ROlf
 

Rin

Mitglied
Hallo r.w.

also ja das erste problem waren die doppelten anführungs zeichen das hab ich shcon gemerkt und ja das mit preparedstatements hab ich jetzt auch geändert ich wusste nur nicht wie ich das benutzen sollte nur da ich mir denke das ich dieses update statment noch nicht mal zum laufen gebracht hab ohne das ich ein prepared statement draus mach würd ich gern raus finden wieso der nichts macht so

jetzt hab ich lang gegooglet gestern und raus gefunden das die ODBC Driver 1.2 - 1.4 das Dlookup mit 3 parametern nicht unterstützt darum funktioniert es im access aber im java über die ODBC Brücke nicht ...... jetzt hab ich mich daran gesetzt ein neues Update Statement zu schreiben das sieht wie folgt aus:
SQL:
UPDATE Einmelder2 INNER JOIN Umfrage2 ON Einmelder2.UmfrageID=Umfrage2.UmfrageID SET Einmelder2.UmfrageID = Umfrage2.UmfrageID
WHERE Umfrage2.Umfragelink="asdasd" And Einmelder2.LetzteUmfrage=Date() And Einmelder2.Gesperrt=0;

so das funktioniert von der grundfunktion das er etwas updaten will aber immer 0 Zeilen obwohl ich die kriterien in meinen augen richtig definiert habe aber vielleicht sie ja ein andere von euch einen fehler die Tabellen schauen wie folgt aus:
Tabelle Einmelder2
  • EinmelderID (PK)
  • Einmelder
  • EinmelderEmail
  • LetzteUmfrage
  • UmfrageID (mit Beziehung zur Tabelle Umfrage2)
  • Gesperrt (boolean)

Tabelle Umfrage2
  • UmfrageID (PK)
  • Umfragelink
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
D Java MS Access Verbindung Datenbankprogrammierung 10
Neumi5694 Java + MS Access + 64 Bit = Fehler -1073740777 Datenbankprogrammierung 2
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
J Access Datenbank mit JAVA erstellen - boolean Werte Datenbankprogrammierung 4
M Access Abfrage mit Parameter & Access/Java liefern unterschiedliche Ergebnisse Datenbankprogrammierung 2
K Access Datenbank mit Java auf win7 64bit Datenbankprogrammierung 14
S Datenbankapplikation von Access -> Java Datenbankprogrammierung 18
B MAC Access Datenbank in Java verwenden - Treiberproblem Datenbankprogrammierung 2
J mit java in access DB über odbc/jdbc Datenbankprogrammierung 2
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
K Java JDBC Access Datenstruktur Datenbankprogrammierung 2
G Java und Access? Datenbankprogrammierung 3
S Java Access Arbeitsgruppendatei Datenbankprogrammierung 2
S Access und Java, aber wie? Datenbankprogrammierung 4
P ODBC verbindung Java soll auf access mdb datei zugreifen Datenbankprogrammierung 2
G Access mit Java OHNE ODBC Datenbankprogrammierung 7
J PLatzhalter unter SQL mit Java und Access Datenbankprogrammierung 2
H Java/Access - Fehler bei der Parameterübergbe Datenbankprogrammierung 4
R MySQL denies access to data source - java.sql.SQLException Datenbankprogrammierung 14
O Access Datenbank mit Java bedienen Datenbankprogrammierung 2
D Access-Datenbank unter Java verwenden Datenbankprogrammierung 7
A Access - JAVA Datenbankprogrammierung 3
R Java und Access Datenbankprogrammierung 3
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
G Connect zu ACCESS-DB mit Ucanaccess Datenbankprogrammierung 11
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
J Unterschied @Id und @Access? Datenbankprogrammierung 5
MaxG. Access Datenbank Datenbankprogrammierung 48
I Access Datenbank in Table einlesen lassen Datenbankprogrammierung 2
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
W Access DB Metainfo hinzufügen Datenbankprogrammierung 8
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
Neumi5694 MS Access Sicherheit entfernen Datenbankprogrammierung 0
L mdb (access) ansteuern: Welcher weg ist der Beste Datenbankprogrammierung 3
Neumi5694 MS Access Tabellenbesitzer ändern Datenbankprogrammierung 0
V Datenbank Access einbinden Datenbankprogrammierung 11
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
Gossi MySQL Access denied Datenbankprogrammierung 11
M Datenbankverbindung Access Datenbankprogrammierung 3
F Insert into Access Datenbankprogrammierung 3
C Access Datenbankprogrammierung 2
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
E Access Datenbank, Linux Umgebung Datenbankprogrammierung 4
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
S Access 2007 zugreifen- ODBC Driver Manger Datenbankprogrammierung 3
F Zugriff auf MS Access-Datenbank mit jackcess Datenbankprogrammierung 10
P Access Datenbank durchsuchen Datenbankprogrammierung 8
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C MS Access und Jarkarta POI Datenbankprogrammierung 4
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
Q Access Datenbank in eine Internetseite einbinden Datenbankprogrammierung 2
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
F Zugriff auf MS Access DB Datenbankprogrammierung 3
T Problem beim Update in die Access DB Datenbankprogrammierung 9
M Tabelle in Access Datei mit JDBC generieren Datenbankprogrammierung 3
C MySQL langsamer als MS ACCESS Datenbankprogrammierung 5
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
X JDBC und MS-Access Sicherheitslücken? Datenbankprogrammierung 4
G "Adapter" Access -> MySQL? Datenbankprogrammierung 6
H Fehler mit ". Microsoft Access Driver" Datenbankprogrammierung 12
V Überprüfen ob Tabelle existiert in Access per ODBC Datenbankprogrammierung 2
S Access vom Programm aus starten Datenbankprogrammierung 8
V Tabelle kopieren (Superbase -> Access) Datenbankprogrammierung 1
D Problem mit Access abfrage Datenbankprogrammierung 10
D Access Datenbank in .jar-Datei Datenbankprogrammierung 51
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
E Wie auf MS-Access DB zugreifen? Datenbankprogrammierung 8
M Access Datenbank ! Datenbankprogrammierung 5
M Hilfe -Access mag sein Replace nciht merh Datenbankprogrammierung 2
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
U MS Access reservierte Wörter Datenbankprogrammierung 2
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
B Platzierung einer Access Datenbank Datenbankprogrammierung 4
V MS Access DB - Schreibschutz deaktivieren Datenbankprogrammierung 3
S PreparedStatements, Abfrageoptimierung unter MS Access Datenbankprogrammierung 5
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
N Hilfe ! Mein Applet bekommt ein Access-Denied von MySQL Datenbankprogrammierung 7
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben