PDA

Vollständige Version anzeigen : Recordset mit parameter erstellen


Christoph
15.02.2001, 20:42
Hallo guten tag !
ich habe folgendes Problem ich möchte ein recordset erstellen das dess basis eine Parameter abfrage ist. der wert des parameters kommt aus einem formular. ich habe schon vieles versucht
wenn ich die abfrage benutz dann sagt access es wurden zu wenig parameter übergeben...
wenn ich eine sql string als basis für den recordset nehme klappt es nicht den wert aus dem formular zu lesen....
letztenendes habe ich auch nocht nicht so richtig verstanden wie man parameter in einem sql string (DAO) unterbringt....

vielen dank im vorraus

christoph
was tun ???

henner
16.02.2001, 08:43
Hallo !

Also, wenn ich das so richtig verstanden habe, bist du ja schon kurz vorm Ziel.

Gesetzt den Fall, Du wolltest eine SELECT-Abfrage mit einem Parameter versehen:

...
Dim db as DAO.Database
Dim RS as Recordset
Dim Parameter as Variant
...
Set db = CurrentDb
...
Parameter = "5"
...
Set RS = db.OpenRecordset("SELECT FROM DeinTabellenName WHERE DasBetreffendeFeld = " & Parameter")
...
'und dann das Recordset auslesen
VarSoundso = RS.Fields![JeweiligerFeldName]

Habe ich Deine Situation so richtig verstanden ?

MfG Henner

henner
16.02.2001, 08:46
Korrektur:
In der Abfrage muss das Anfuehrungszeichen hinter Parameter weg.
:-)

..und noch ein Tipp:
Wenn Parametr ein Zeichen ist, muss es im String in Apostrogh eingeschlossen sein.

Nockenwelle
16.02.2001, 12:56
Hallo,

Es führen immer mehrere Wege nach Rom

das Beispiel führt eine Anfügeabfrage jeweils mit dem Parameter aus.


Public Function atrp_laden()
Dim db As Database, rst As Recordset,
Dim para_bgs As Parameter, qdf As QueryDef
Set db = CurrentDb
'Steuerung der Abfrage mittels recordset
Set rst = db.OpenRecordset("Bearbeitung_bgs_uns", dbOpenSnapshot)

'Parameterabfrage öffnen
Set qdf = db.QueryDefs("Lade_atrp_bet")


DoCmd.SetWarnings False
Do While Not rst.EOF

Debug.Print rst!bgs_uns_nummer

qdf.Parameters!bgs_uns_id = rst!bgs_uns_id
qdf.Execute

rst.MoveNext

Loop
rst.Close

Set db = Nothing
DoCmd.SetWarnings True
End Function

Zur SQL Syntax: In meinem Beispiel ist der Parameter ein autowert(Long)

PARAMETERS bgs_uns_id Long;
Insert into ....

WHERE (((asys_atrp_bet.bgs_uns_id)=[bgs_uns_id]));


[bgs_uns_id] ist der Parameter.
Schau dir mal im Abfrageeditor an, wie man Parameter einträgt.

Cu