Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Hilfe - Werte in Tabelle eintragen - Fehler 3061

Begonnen von rson333, Juni 14, 2014, 12:57:29

⏪ vorheriges - nächstes ⏩

rson333

Servus Leute

Ich arbeite gerade an einem kleinen Hilfsprogramm und stosse gerade an meine Grenzen.

Im Prinzip versuche ich Werte in eine zuvor erstellte Tabelle einzufügen, sodass die Variablen wieder zurückgesetzt werden, die Werte aber in der Tabelle verweilen.
Nun erscheint allerdings immer der Fehler: "Laufzeitfehler 3061: 3 Parameter erwartet, aber zuwenige übergeben".
Ich habe schon sehr viel Zeit in die Internet-Recherche investiert, doch wurde ich nicht fündig und schildere deshalb hier mein Problem.

Hier noch der Code:

Dim db As Database
Dim rs As Recordset
Dim sql_code
Set db = CurrentDb

sql_code = "SELECT Results_detected_pattern.Ticker_, Results_detected_pattern.Datum_, Results_detected_pattern.Max_Length_ FROM Results_detected_pattern WHERE (Results_detected_pattern.Ticker_)='MSFT' ORDER BY Results_detected_pattern.Datum_ DESC;"

Set rs = db.OpenRecordset(sql_code)
rs!Ticker = "MSFT"
rs!Datum = start_date
...


Doch bevor überhaupt etwas in die Tabelle geschrieben werden kann gibt es die genannte Fehlermeldung.
Anzumerken ist vielleicht noch, dass die auszuwählende Tabelle am Anfang noch leer ist und erst im Verlaufe des Algorithmuses gefüllt werden soll.
Ich habe einfach mal Werte in die Tabelle eingetragen, um diese dann zu überschreiben versuchen. Doch weder das eine, noch das andere hat funktioniert, jeweils mit demselben Fehler.

Ich hoffe ihr könnt mir helfen. Danke schonmal.

DF6GL

Hallo,


was auch immer der Sinn dieses Unterfangens sein mag, folgende Hinweise (mit der Annahme, dass die Tabellenfelder auch so heißen, bzw. existieren):


Dim db As Database
Dim rs As Dao.Recordset
Dim sql_code As String, start_date as Date
Set db = CurrentDb

sql_code = "SELECT Results_detected_pattern.Ticker_, Results_detected_pattern.Datum_, Results_detected_pattern.Max_Length_ FROM Results_detected_pattern WHERE (Results_detected_pattern.Ticker_)='MSFT' ORDER BY Results_detected_pattern.Datum_ DESC;"


'einfacher:
'sql-code = " Select * from  Results_detected_pattern"


Set rs = db.OpenRecordset(sql_code,dbOpenDynaset)
rs.AddNew 'falls eingefügt werden soll
rs![Ticker_]= "MSFT"
rs![Datum_] = start_date
...
rs.Update
.
.


oder gleich mit einer Anfüge (Insert) -SQL:
Dim sql_code As String, start_date as Date
start_date =#06/14/2014#
db.Execute " Insert into Results_detected_pattern Set [Ticker_]= 'MSFT', [Datum_] = " & Format( start_date, "\#yyyy-mm-dd\#")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

ebs17

ZitatNun erscheint allerdings immer der Fehler: "Laufzeitfehler 3061: 3 Parameter erwartet, aber zuwenige übergeben".
Mit der Recordseterzeugung würde die SQL-Anweisung ausgeführt werden. Hier entdeckt der SQL-Parser aber Fehler in der Anweisung, vermutlich falsche Feldbezeichnungen.
Mit freundlichem Glück Auf!

Eberhard

rson333

Zitat von: DF6GL am Juni 14, 2014, 17:18:14
'einfacher:
'sql-code = " Select * from  Results_detected_pattern"


Set rs = db.OpenRecordset(sql_code,dbOpenDynaset)
rs.AddNew 'falls eingefügt werden soll
rs![Ticker_]= "MSFT"
rs![Datum_] = start_date
...
rs.Update
.
.

Vielen Dank. Hat bestens geklappt.