Avatar billede stig3 Mester
25. oktober 2000 - 19:04 Der er 16 kommentarer og
1 løsning

fejl i opkobling til database

http://www.eksperten.dk/spm/3909

Jeg har på baggrund af ovenstående spørgsmål forsøgt at læse i min database.

Private Sub Vælg_Click()
    Dim db As Database
    Dim rs As Recordset
   
    Set db = OpenDatabase(\"C:\\Dokumenter\\SysUdv\\program\\SOFY_0_98.mdb\")
    Set rs = db.OpenRecordset(\"select * from Item\")
   
    If Not rs.EOF Then
        rs.MoveFirst
        Do While rs.EOF
            MsgBox \"Navn fundet : \" & rs!item_id & \" \" & rs!item_name
            rs.MoveNext
        Loop
    End If
End Sub

Problemet opstår ved linien:
    Set rs = db.OpenRecordset(\"select * from Item\")

Den påstår er der er en type mismatch

Jeg har tilføjet referencen DAO 3.6

Hva\' sker der !!!!!!!!

.. den frustrerede
Avatar billede stig3 Mester
25. oktober 2000 - 19:20 #1
nå, der var åbenbart en fejl i databasen.
Avatar billede stig3 Mester
25. oktober 2000 - 19:24 #2
eller......

nu kommer der ingen fejlmeddelelse, men den finder ikke nogen records frem ??

Den går fra \"do while rs.eof\" til \"end if\". Dermed giver select sætningen åbenbart ikke noget resultat.

Men der ER item\'s i databasen.
Avatar billede compilos Nybegynder
25. oktober 2000 - 19:24 #3
så kan der være en fejl i databasen
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 19:26 #4
Do While rs.EOF

hmm..

Prøv

Do Until Rs.Eof Or Rs.Bof

..

Loop
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 19:27 #5
Eller

Do While (Rs.Eof = False)
Avatar billede stig3 Mester
25. oktober 2000 - 19:30 #6
VIRKER!!!!!!!!!

Det var dog besynderligt.

Do While (Rs.Eof = False) virkede, men hvad dævlen er forskellen ?????
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 19:34 #7
Do while rs.eof

Kør imens rs.eof (= true pr. automatik)

Do While (rs.eof = false)

kør imens rs.eof = false \' rs.eof = true når der ikke er flere records

det er en underlig en, men jeg tænkte nok det var den der var synderen..
Avatar billede stig3 Mester
25. oktober 2000 - 19:37 #8
Man skulle jo tro at forskellen var den samme :-)

Men tak for hjælpen!
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 19:41 #9
Ja, sådan set ..

Det var så lidt :)
Avatar billede brian Nybegynder
25. oktober 2000 - 22:43 #10
Den korrekte syntax er :

Do While NOT rs.EOF

Brian
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 22:47 #11
Den tænkte jeg også på, men jeg kunne ikke rigtigt fatte logikken i at

Do While Rs.EOF

ikke ville lave noget .. men det kan jeg godt nu ..(den er jo ikke true når løkken starter .. DOH!)

men egentlig så er min måde ligeså rigtig som din ..

Du kan også sige

Do Until Rs.EOf

det samme som Do While Not Rs.Eof
Avatar billede brian Nybegynder
25. oktober 2000 - 22:50 #12
Beklager, men det er absolut ikke det samme !!! hvilket du jo vel også har fundet ud af
Avatar billede tdaugaard Nybegynder
25. oktober 2000 - 22:55 #13
Som jeg sagde kunne jeg godt fatte det nu :)

1) Do While Not Rs.Eof og
2) Do Until Rs.Eof

1) Kør imens NOT rs.eof (=true pr. default)
2) Kør indtil Rs.Eof (=true pr. default. = imens Not rs.eof)

gør NØJAGTIGT det samme.

While er et keyword supportet for backwards compatability ..
Lige som While..Wend
Avatar billede brian Nybegynder
26. oktober 2000 - 00:41 #14
Enig, men her er vi lidt længere ude. Det er jo heller ikke ligegyldigt hvordan du definerer en SQL-sætning ??!!

Jeg ville ikke rette på nogen, men kun gøre opmærksom på den rette syntax.
Avatar billede tdaugaard Nybegynder
26. oktober 2000 - 00:43 #15
Nej, det er rigtigt (vedr. SQL query strings)

Det er et spørgsmål om præference om man bruger Do..Loop/While..Wend/Until/While .. mener jeg.
Avatar billede stig3 Mester
26. oktober 2000 - 08:34 #16
OK nu kan jeg godt se forskellen.

I min frustration læste jeg while som om det var until.

Det er vist det man kalder at stirre sig blind i koden, som i dette tilfælde enda er sygeligt simpel.

nå...... der er en ny dag idag. Så må vi se om den bliver bedre.
Avatar billede tdaugaard Nybegynder
26. oktober 2000 - 08:36 #17
Ja .. det har jeg prøvet mange gange .. siddet og gloet dumt og virkelig ikke kunnet se fejlen .. og så har det bare været en dum lille ting..
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel