Får ett felmedellande som lyder " körfel 3061 För få parametrar angavs . 1 förväntades Använder du VB eller Access? Finns ett litet trick du kan göra för att lista ut vilken parrameter det är som saknas. Namnet på parametern bör dyka upp i debugfönstert: får fel mess Inkompatibla typer på denna rad Kör med Access 2000 Hmmmm...felet var som du var inne på ... Svar:Combo och sql problem
vba ser ut så här....
Dim db As Database
Dim rs As Recordset
Dim rstemp As Recordset
Set db = CurrentDb
Dim strSQl As String
strSQl = "SELECT skyttar.Id_num" & vbCrLf
strSQl = strSQl & " , skyttar.Förnamn" & vbCrLf
strSQl = strSQl & " , skyttar.Efternamn" & vbCrLf
strSQl = strSQl & " , skyttar.Klass" & vbCrLf
strSQl = strSQl & " , skyttar.Skf" & vbCrLf
strSQl = strSQl & " , skyttar.Länskod" & vbCrLf
strSQl = strSQl & " , skyttar.Lagskytt" & vbCrLf
strSQl = strSQl & " , skyttar.Förbundsskytt" & vbCrLf
strSQl = strSQl & " FROM skyttar" & vbCrLf
strSQl = strSQl & " WHERE (((skyttar.Id_num)=[Forms]![frm_TaBortSkytt]![aktiva]));"
Set rs = db.OpenRecordset(strSQl, DB_OPEN_DYNASET)
Vad för fel gör jag...?
Tackar på förhand..Sv: Combo och sql problem
Om du använder vb, Testa med det här:
Dim db As Database
Dim rs As Recordset
Dim rstemp As Recordset
Set db = CurrentDb
Dim strSQl As String
strSQl = "SELECT skyttar.Id_num" & vbCrLf
strSQl = strSQl & " , skyttar.Förnamn" & vbCrLf
strSQl = strSQl & " , skyttar.Efternamn" & vbCrLf
strSQl = strSQl & " , skyttar.Klass" & vbCrLf
strSQl = strSQl & " , skyttar.Skf" & vbCrLf
strSQl = strSQl & " , skyttar.Länskod" & vbCrLf
strSQl = strSQl & " , skyttar.Lagskytt" & vbCrLf
strSQl = strSQl & " , skyttar.Förbundsskytt" & vbCrLf
strSQl = strSQl & " FROM skyttar" & vbCrLf
strSQl = strSQl & " WHERE (((skyttar.Id_num)=" & Forms("frm_TaBortSkytt").aktiva & "));"
Set rs = db.OpenRecordset(strSQl, dbOpenForwardOnly)
'Recordset typen dbOpenForwardOnly tar mindre resurser än ett dynaset.
'Lämplig för att ladda en ComboBox.Sv: Combo och sql problem
Dim db As Database
Dim QDef As QueryDef
Dim strSQl As String
Dim P As parameter
Set db = CurrentDb
strSQl = "SELECT skyttar.Id_num" & vbCrLf
strSQl = strSQl & " , skyttar.Förnamn" & vbCrLf
strSQl = strSQl & " , skyttar.Efternamn" & vbCrLf
strSQl = strSQl & " , skyttar.Klass" & vbCrLf
strSQl = strSQl & " , skyttar.Skf" & vbCrLf
strSQl = strSQl & " , skyttar.Länskod" & vbCrLf
strSQl = strSQl & " , skyttar.Lagskytt" & vbCrLf
strSQl = strSQl & " , skyttar.Förbundsskytt" & vbCrLf
strSQl = strSQl & " FROM skyttar" & vbCrLf
strSQl = strSQl & " WHERE (((skyttar.Id_num)=[Forms]![frm_TaBortSkytt]![aktiva]));"
Set QDef = db.CreateQuerydef("", strSQl)
For each P In QDef.Parameters
Debug.print P.Name
NextSv: Combo och sql problem
For Each P In QDef.Parameters
Hmmm...känner mig helt loost ...
Tackar ödmjukast för ditt intresse för mitt problemSv: Combo och sql problem
Ändrade till DAO
Fick följande i dbugg
[Forms]![frm_TaBortSkytt]![aktiva]Sv: Combo och sql problem
ändrade till
WHERE (((skyttar.Id_num)= " & [Forms]![frm_TaBortSkytt]![aktiva] & "));"
Så vart allt frid och fröjd..
Än en gång...tack för all hjälpSv: Combo och sql problem
DAO vill att du anger parametern [Forms]![frm_TaBortSkytt]![aktiva].
Frågerna som Access i t.ex RowSource och RecordSource egenskperna utvärderar parametrarna.
Eftersom du direkt anropar DAO måste du själv ange parametern. Antingen genom att koda den som en konstant i SQL satsen eller att använda dig av Parametrar.
Dim db As Database
Dim QDef As QueryDef
Dim rsTemp As Recordset
Dim strSQl As String
strSQl = "PARAMETERS FilterID Long;" & vbCrLf & _
"SELECT skyttar.Id_num, skyttar.Förnamn, skyttar.Efternamn, skyttar.Klass, skyttar.Skf, skyttar.Länskod, skyttar.Lagskytt, skyttar.Förbundsskytt" & vbCrLf & _
"FROM skyttar" & vbCrLf & _
"WHERE (((skyttar.Id_num)=[FilterID]));"
Set db = CurrentDb
Set QDef = db.CreateQueryDef("", strSQl)
QDef.Parameters("FilterID") = Forms("frm_TaBortSkytt").aktiva
Set rsTemp = QDef.OpenRecordset(dbOpenForwardOnly)
Do Until rsTemp.EOF
rsTemp.MoveNext
Loop
Det är nog lättare om du använder du dig av RowSource egenskapen om du ska ladda ComboBox'en.