Ganz einfach zu lösen?

Liebe Experten,
im Augenblick reisse ich mir die Haare aus. Ich kann ein simples Problem nicht im Code lösen:
Access 2007 (oder 2003)
Habe Formular mit der Tabelle 1 aus Datenbank 1 geöffnet.
Nun möchte ich bei einem bestimmten Ereignis einen bestimmten Text (und zwar immer den gleichen, z.B. „Test“) in das Feld A1 der Tabelle 2 schreiben, und zwar im ersten Datensatz.
Folgenden Code habe ich geschrieben:

Dim db As Database, SQL As String
Set db = CurrentDb
Dim ws As Workspace
Dim rs
Dim Festsatz As String
Festsatz = „Test“
Set ws = DBEngine(0)
Set rs = db.OpenRecordset(„Select *from Tabelle2“)
rs.AbsolutePosition = 1
rs.Delete
'Jetzt Datensatz in „Tabelle2“ schreiben:
SQL = „INSERT INTO Tabelle2 (A1) SELECT Festsatz“
db.Execute SQL

Er löscht zwar brav den 1. Datensatz in Tabelle2, bringt aber anschliessend den Fehler 3061: Es wurden 1 Parameter erwartet aber es wurden zuwenig Parameter übergeben

Wer kann mir bei meinem Denkfehler helfen?
Jetzt schon herzlichen Dank.
Beat

Lieber Beat,

im Augenblick reisse ich mir die Haare aus.

lass deine paar Haare da wo sie sind :smile:

Ich kann ein simples Problem nicht im Code lösen:

wir üben noch mal SQL :smile:

Wer kann mir bei meinem Denkfehler helfen?

ich*

Jetzt schon herzlichen Dank.

Bittte :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

* ach sooo hier die Lösung:

„INSERT INTO Tabelle1 (A1) SELECT Festsatz , *;“

,*; gehören dazu !

aber warum machst du es z.B. nicht einfach so, mit fünf (3) Zeilen Code:

Public Function XXXX (Festsatz)
Dim MySQL

'wenn Festsatz eine Zahl ist:
MySQL = "UPDATE Tabelle2 SET Tabelle2.A1 = " & Festsatz & „;“

‚wenn Festsatz ein Text ist:
MySQL = „UPDATE Tabelle2 SET Tabelle2.A1 = '“ & Festsatz & "‘;"

docmd.runSQL MySQL
End Function

cu

Lieber Wolfgang,
weisst Du überhaupt noch, wohin mit all Deinen Sternen?

* ach sooo hier die Lösung:

„INSERT INTO Tabelle1 (A1) SELECT Festsatz , *;“

,*; gehören dazu !

aber warum machst du es z.B. nicht einfach so, mit fünf (3)
Zeilen Code:

Public Function XXXX (Festsatz)
Dim MySQL

'wenn Festsatz eine Zahl ist:
MySQL = "UPDATE Tabelle2 SET Tabelle2.A1 = " & Festsatz & „;“

‚wenn Festsatz ein Text ist:
MySQL = „UPDATE Tabelle2 SET Tabelle2.A1 = '“ & Festsatz &
"‘;"

docmd.runSQL MySQL
End Function

Das werde ich gleich morgen im Geschäft testen. Klingt aber sehr logisch und gut. Erst mal ganz herzlichen Dank für Deine Mühe!!!

Beste Grüsse aus der s…kalten Schweiz
Beat

Ganz einfach …ja, ABER!!!
Lieber Wolfgang,

aber warum machst du es z.B. nicht einfach so, mit fünf (3)
Zeilen Code:

Public Function XXXX (Festsatz)
Dim MySQL

‚wenn Festsatz ein Text ist:
MySQL = „UPDATE Tabelle2 SET Tabelle2.A1 = '“ & Festsatz & "‘;"

docmd.runSQL MySQL
End Function

Du hattest natürlich völlig recht. So geht es viel einfacher.
Nun habe ich (im Moment) nur noch ein einziges Problem:

Jetzt kommt immer die Meldung, ich wäre daran, einen Datensatz zu aktualisieren. Ob ich denn das wirklich möchte?
Nachdem ich „ja“ sage, macht das Programm auch das, was es soll.

WIE KANN ICH DIESE ABFRAGE ELIMINIEREN?

Du siehst, ohne Deine Hilfe geht es einfach nicht!
Jetzt schon ganz herzlichen Dank für Deine Bemühungen.
Beste Grüsse
Beat

Lieber Beat,

WIE KANN ICH DIESE ABFRAGE ELIMINIEREN?

In den Grundeinstellungen:
Extras / Optionen
Reiter = Bearbeiten/Suchen
Rubrik = Bestätigen

dort einstellen was passieren soll:
KEIN Häkchen bei Datensatzänderungen

ggf. die anderen auch noch löschen…

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Phuhh, danke Wolfgang.
Das kommt davon, wenn man gezwungen wird, im Access 2007 zu arbeiten. Dann denkt man einfach nicht an diese einfachen Sachen. Im 2003 hätte man ganz logischerweise da nachgesehen. Aber im 2007 ist das an einem völlig andern Ort, wo man nicht automatisch nachschaut, weil es in den normalen Pulldowns gar nicht ist.
Einen Effekt hat Office 2007 ja schon: Plötzlich findet man Programme wie Office 2003 von Microsoft richtig gut und lernt sie zu schätzen…und darum zu trauern. Privat auf jeden Fall würde ich DOWNGRADEN!!! (Wie ich das auch mit Vista gemacht habe. XP Pro ist doch soooo gut. Im Vergleich.
Beste Grüsse in den Norden, und nochmals danke für die Hilfe.
Beat