Avatar billede erehjbe Nybegynder
18. februar 2003 - 09:39 Der er 14 kommentarer og
1 løsning

Openrecordset problem

Kode:
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim lead As String
Dim q As String
q = "SELECT tblStLeadIn.LeadIn FROM tblStCabRo INNER JOIN (tblStLeadIn INNER JOIN tblLeadIns ON tblStLeadIn.StLeadId = tblLeadIns.LeadIn) ON tblStCabRo.StCabRo = tblLeadIns.CablerouteID WHERE (((tblStCabRo.StCabRo)=[Forms]![frmCableRoute]![StCabRo]));"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(q)
lead = rst!LeadIn
Do While Not rst.EOF
Me.StCabRoute = Me.StCabRoute & ", " & lead
rst.MoveNext
Loop
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing

Skal bare indlæse nogle poster i en tabel.
Stopper under kørsel i ->Set rst = dbs.OpenRecordset(q)<-
To few parameters, expected 1.
Virker under Access 97, hvad er der galt ?
DAO 3.6 object Library er available
Avatar billede erehjbe Nybegynder
18. februar 2003 - 09:40 #1
Har også prøvet med en query i stedet for.

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim lead As String

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("qryLeadIns", dbOpenDynaset)
lead = rst!LeadIn
Do While Not rst.EOF
Me.StCabRoute = Me.StCabRoute & ", " & lead
rst.MoveNext
Loop
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing

Samme problem
Avatar billede mugs Novice
18. februar 2003 - 09:43 #2
Kontroller dine referencer > Tools > References og check at der ikke står "Mangler" eller "Missing" ud for nogle.
Avatar billede erehjbe Nybegynder
18. februar 2003 - 09:48 #3
Har chekket det gør der ikke
Avatar billede somaliomar Praktikant
18. februar 2003 - 10:00 #4
Har du prøvet at bruge ADO i stedet for DAO? Eks:


Dim dbs As ADODB.Connection
Dim rst As ADODB.Recordset
Dim lead As String


Set rst = New ADODB.Recordset
Set dbs = New ADODB.Connection

Set dbs = CurrentProject.Connection
rst.Open "qryLeadIns", dbs, adOpenDynamic

lead = rst!LeadIn
Do While Not rst.EOF
    Me.StCabRoute = Me.StCabRoute & ", " & lead
    rst.MoveNext
Loop

rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
Avatar billede sjap Praktikant
18. februar 2003 - 10:05 #5
Prøv lige at kopiere SQL strengen over i en forespørgsel. Der er med (næsten) garanti en fejl i den. Jeg er ikke skrap nok til de der INNER JOINs i SQL til at kunne gennemskue hvor der går galt.

Husk at du lige skal skrive noget i stedet for [Forms]![frmCableRoute]![StCabRo] eller også skal du have den formular åben.
Avatar billede erehjbe Nybegynder
18. februar 2003 - 10:14 #6
Somaliomar: Prøvede din udgave. Brokker sig stadig, "Invalid SQL statement, expected "Insert, Delete etc..."
Men Queryen kører fint. Skal såmænd bare hente poster i en 1 til mange join og putte dem ind i et felt bag efter hinanden, for den post der er markeret på formularen. f. eks aa, bb, cc, etc.

Superjap: Samme svar queryen kører fint. Se ovenstående.
Avatar billede jpalleandersen Nybegynder
18. februar 2003 - 11:07 #7
Jeg har netop været ude for noget lignende. Jeg fandt frem til, at det kun er en del af SQL-sætningerne, der kan bruges i forbindelse med ADO/DAO. Jeg er af den overbevisning, at der ikke kan bruges JOIN's i denne sammenhæng. Jeg delte opgaven op, således at jeg lavede en opdateringsforespørgsel, der først opdaterede et felt på det ene kartotek, så jeg kunne undvære det andet, og dermed ikke havde brug for JOIN'S. Jeg lytter med....
Avatar billede erehjbe Nybegynder
18. februar 2003 - 11:22 #8
Det har noget query'en at gøre, for hvis jeg først laver en tabel og bruger data derfra virker det.
Avatar billede sjap Praktikant
18. februar 2003 - 12:06 #9
Prøv at erstatte

[Forms]![frmCableRoute]![StCabRo]

med en værdi. Så får du faktisk fjernet fejlen.
Avatar billede sjap Praktikant
18. februar 2003 - 12:08 #10
Hvis du kan få ovenstående til at virke, kan du rette SQL-strengen til

q = "SELECT tblStLeadIn.LeadIn FROM tblStCabRo INNER JOIN (tblStLeadIn INNER JOIN tblLeadIns ON tblStLeadIn.StLeadId = tblLeadIns.LeadIn) ON tblStCabRo.StCabRo = tblLeadIns.CablerouteID WHERE (((tblStCabRo.StCabRo)=" & [Forms]![frmCableRoute]![StCabRo] & "));"
Avatar billede erehjbe Nybegynder
18. februar 2003 - 12:41 #11
Nu har jeg fået lavet en værdi ST.

Hvordan sætter jeg den ind i slutningen.
Dim St as Integer
Q = "SELECT tblStLeadIn.LeadInText FROM tblStLeadIn INNER JOIN (tblStCabRo INNER JOIN tblLeadIns ON tblStCabRo.StCabRo = tblLeadIns.CablerouteID) ON tblStLeadIn.StLeadId = tblLeadIns.LeadIn WHERE tblStCabRo.StCabRo = & ST &"
Avatar billede sjap Praktikant
18. februar 2003 - 12:43 #12
Q = "SELECT tblStLeadIn.LeadInText FROM tblStLeadIn INNER JOIN (tblStCabRo INNER JOIN tblLeadIns ON tblStCabRo.StCabRo = tblLeadIns.CablerouteID) ON tblStLeadIn.StLeadId = tblLeadIns.LeadIn WHERE tblStCabRo.StCabRo = " & ST & "));"
Avatar billede sjap Praktikant
18. februar 2003 - 12:44 #13
Ovenstående gælder kun hvis ST er et tal.
Avatar billede erehjbe Nybegynder
18. februar 2003 - 12:48 #14
det er et tal og det funker hvis bare man fjerner de 2 sidste )).
Jeg takker mange gange !:-)
Avatar billede sjap Praktikant
18. februar 2003 - 12:55 #15
Nåh ja jeg blev måske lidt ivrig, men tak for points. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester