Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: rson333 am Juni 14, 2014, 12:57:29

Titel: Hilfe - Werte in Tabelle eintragen - Fehler 3061
Beitrag von: rson333 am Juni 14, 2014, 12:57:29
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.
Titel: Re: Hilfe - Werte in Tabelle eintragen - Fehler 3061
Beitrag von: DF6GL am Juni 14, 2014, 17:18:14
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\#")
Titel: Re: Hilfe - Werte in Tabelle eintragen - Fehler 3061
Beitrag von: ebs17 am Juni 15, 2014, 08:50:23
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.
Titel: Re: Hilfe - Werte in Tabelle eintragen - Fehler 3061
Beitrag von: rson333 am Juni 15, 2014, 11:07:05
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.