Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: ReneB am Dezember 01, 2022, 07:16:44

Titel: Laufzeitfehler 3075
Beitrag von: ReneB am Dezember 01, 2022, 07:16:44
Guten Morgen,

ich habe ein kleines Problem mit meinem Formular. Nach Eingabe aller Daten muss der Anweder den Speichern-Button drücken, daraufhin wird eine "Insert into... Anweisng gestartet und die Daten in eine Tabelle gespeichert. Das funktioniert soweit ohne Probleme. Es gibt in diesem Formular ein allgem. Textfeld, welches frei beschrieben werden darf und hier ist jetzt folgendes Problem aufgetreten: Wenn der Nutzer z.B.
IBC's schreibt und danach speichern möchte kommt die im Betreff genannte Fehlermeldung. Nimmt er das Zeichen ' wieder raus ist alles gut. Warum kann der Nutzer dieses Sonderzeichen nicht benutzen und was müsste ich ändern, damit er es kann?
Danke für Eure Hilfe.

Grüsse Rene
Titel: Re: Laufzeitfehler 3075
Beitrag von: MzKlMu am Dezember 01, 2022, 08:31:41
Hallo,
zeige den SQL Text der Abfrage zum Speichern. Man hätte auch auf die Idee kommen können das gleich zu tun. Aus den ... kann man nichts entnehmen.

Warum betreibst Du den Aufwand mit einem ungebunden Formular und "Insert into...
Ein an die Tabelle gebundenes Formular hätte das Problem nicht. Auch dann könnte man einen Speichern Button realisieren.

PS:
Im Betreff steht keine Fehlermeldung, sondern eine Fehlernummer von einem Fehlertext ist auch nichts zu sehen.
Titel: Re: Laufzeitfehler 3075
Beitrag von: PhilS am Dezember 01, 2022, 10:06:01
Zitat von: ReneB am Dezember 01, 2022, 07:16:44IBC's schreibt und danach speichern möchte kommt die im Betreff genannte Fehlermeldung. Nimmt er das Zeichen ' wieder raus ist alles gut. Warum kann der Nutzer dieses Sonderzeichen nicht benutzen und was müsste ich ändern, damit er es kann?
Weil das Hochkomma der Textbegrenzer in SQL ist. Wenn du dieses Zeichen in einem Text verwenden willst, musst du es verdoppelt, z.B. mit der Replace-Funktion, oder du verwendest eine Parameterabfrage anstatt die Wert mit dem SQL-String zusammenzusetzen.
Titel: Re: Laufzeitfehler 3075
Beitrag von: ReneB am Dezember 01, 2022, 10:14:10
Hallo,

Sorry dafür. Der Fehler lautet: Syntaxfehler(fehlender Operator in Abfrageausdruck "IBC's')'.

Die zugrundeliegende Anfügeabfrage lautet:
DoCmd.RunSQL ("INSERT INTO Anweisung_Konfekt_tbl([ID],[Datum],[Datum von],[Datum bis],[Autor],[Anweisungsebene],[Anweisung])" _
  & " VALUES ('" & ID & "','" & Me.Datum & "','" & Me.Datum_von & "', '" & Me.Datum_bis & "','" & Me.Autor & "'," _
  & " '" & Me.Anweisungsebene & "','" & Me.Anweisung & "')")

Das Formular ist an eine Tabelle gebunden, aber ich archiviere parallel alle Änderungen in diesem Formular und dafür nutze ich diese Anfügeabfrage und fülle eine zweite Tabelle.
Titel: Re: Laufzeitfehler 3075
Beitrag von: ReneB am Dezember 01, 2022, 10:23:43
Hallo,

die Replacefunktion erscheint mir sinnvoll. Das könnte ich umsetzen. Gibt es noch andere Zeichen, welche hier Probleme machen könnten?
Titel: Re: Laufzeitfehler 3075
Beitrag von: MzKlMu am Dezember 01, 2022, 11:25:48
Hallo,
Zitatgibt es noch andere Zeichen, ....
Ja, das AZ (") wüsste ich noch.
Titel: Re: Laufzeitfehler 3075
Beitrag von: ReneB am Dezember 01, 2022, 12:37:38
Danke für Eure Anmerkungen. Ich werde das so umsetzen.
Titel: Re: Laufzeitfehler 3075
Beitrag von: ebs17 am Dezember 01, 2022, 16:27:07
... '" & Me.Datum_von & "' ...Textdatum?

Zitatoder du verwendest eine Parameterabfrage
Genau. Oder, da mit der Values-Variante nur ein Datensatz angefügt wird, ein Recordset mit AddNew. Auch da entfallen die zusätzlichen Formatierungsprobleme.