Avatar billede enlize Nybegynder
03. november 2000 - 09:58 Der er 17 kommentarer og
1 løsning

Do while...

Hej jeg får en fejlmeddelsen når jeg eksekverer denne do while sætning:

dagCount = retur_SqlQ(\"TidFra\")-1 \'retur_SqlQ(\"tidFra\") er eksemplevis = 5
        do while dagCount < retur_SqlQ(\"TidTil\")\'retur_SqlQ(\"tidTil\") er eksemplevis = 18
            dagCount = dagCount+1
            if len(dagCount) = 1 then
                dagCount = \"0\" & dagCount
            end if
        loop

Fejlmeddelsen er som følger:

ADODB.Recordset error \'800a0cc1\'
Item cannot be found in the collection corresponding to the requested name or ordinal.

--------------
Håber at der er nogen der kan hjælpe :)
Avatar billede kasseper Nybegynder
03. november 2000 - 10:08 #1
det er fordi at TidTil ikke findes i dit recordset... Eller TidFra
Avatar billede enlize Nybegynder
03. november 2000 - 10:12 #2
Jo - de eksisterer begge to, jeg har ovenikøbet skrevet dem ud :)
Avatar billede kasseper Nybegynder
03. november 2000 - 10:26 #3
Er der iøvrigt ikke nogle problemmer med din sammenligning af en streng og TidTil ?
er TidTil et tal eller en streng ???
Avatar billede kasseper Nybegynder
03. november 2000 - 10:28 #4
Men hvorfor lægger du ikke din værdi fra TidTil i en variabel og bruger den til sammenligning...
Ligger TidFra i øvrigt før eller efter TidTil.
Jeg har nemli haft problemmer med at tilgå data i et recordset, hvis jeg tager dem bagfra.....
Avatar billede enlize Nybegynder
03. november 2000 - 10:29 #5
TidTil er et Tal og jeg kan ikke se nogle problemer med den sammenliging jeg laver.... eller er det mig :)
Avatar billede kasseper Nybegynder
03. november 2000 - 10:30 #6
og hvilken linie er det der fejler ?
er det
dagCount = retur_SqlQ(\"TidFra\")-1

eller er det

do while dagCount < retur_SqlQ(\"TidTil\")

????


Avatar billede enlize Nybegynder
03. november 2000 - 10:31 #7
TidFra Ligger før TidTil.
Jeg har forsøgt at lægge TidTil og TidFra i en variabel, men lige lidt hjælper det.
Avatar billede enlize Nybegynder
03. november 2000 - 10:32 #8
Det er do while dagCount < retur_SqlQ(\"TidTil\") der fejler.
Avatar billede kasseper Nybegynder
03. november 2000 - 10:38 #9
Jeg kan sige at det er svært at vide hvad der kommer ud af en streng - tal sammenligning,
VB dok, siger bare :
If : One expression is numeric and the other is a string

Then : The numeric expression is less than the string expression.

Desuden ved jeg da at fejl medl. :

ADODB.Recordset error \'800a0cc1\'
Item cannot be found in the collection corresponding to the requested name or ordinal.

Betyder at den ikke kunne finde navnet i den bunke data som( i dette tilfælde ) dit recordset indeholder. Er du helt sikker på at du har skrevet rigtigt. ?

Fejler denne kode ikke :

dagCount = retur_SqlQ(\"TidFra\")-1 \'retur_SqlQ(\"tidFra\") er eksemplevis = 5
response.write retur_sqlQ(\"TidTil\")
        do while dagCount < retur_SqlQ(\"TidTil\")\'retur_SqlQ(\"tidTil\") er eksemplevis = 18
            dagCount = dagCount+1
            if len(dagCount) = 1 then
                dagCount = \"0\" & dagCount
            end if
        loop

ikke i linien :

response.write retur_sqlQ(\"TidTil\")

?????????????????????????++


Avatar billede enlize Nybegynder
03. november 2000 - 10:44 #10
Jo Koden fejl der, men den fejler også hvis jeg for sjov skyld sætter retur_SqlQ(\"TidFra\") ind.

Og som før nævnt kan jeg godt udskrive begge værdier.

I tabellen er de begge to sat til tal type.
Avatar billede kasseper Nybegynder
03. november 2000 - 10:49 #11
Hvordan kan du udskrive dem, når de fejler ???!!!
I dine kommentare skrive du Tid med småt, altså tidFra gør det en forskel...?
Avatar billede joni@vordb Nybegynder
03. november 2000 - 10:50 #12
Hvordan afgrænser du din tabel ?
med
sql=\"SELECT * FROM tabelnavn...\"
eller med
sql =\"SELECT feltnavn, feltnavn FROM tabelnavn..\"

Hvis det er det sidste, så check lige for stavefejl der også

//john
Avatar billede enlize Nybegynder
03. november 2000 - 10:54 #13
Det er en taste fejl fra min side.... Men oplysningerne er altså gode nok. De ligger hvor de skal.

Kan det ikke have noget at gøre med at do while ikke er glad for at man angiver en variabel istedet for et tal

F.eks hvis jeg skriver do while dagCount < 18
er der ingen probemer. Men hvis jeg skriver
TidTil = 18
do while dagCount < TidTil

Så går det også galt.

Der kommer dog ingen fejl ved dette eksempel, men den udskriver kun en linie istedet for måske 10 linier....
Avatar billede kasseper Nybegynder
03. november 2000 - 10:59 #14
Måske skulle du lige prøve at forklare hvad det er du gerne vil have der skal ske.
Og nej det er ikke fordi det ikke er et tal, hvis det var sådan ville man aldrig kunne
lave dynamsike do while løkker og det kan man godt.
Men som sagt prov lige at ridse problemet op engang.....

Avatar billede enlize Nybegynder
03. november 2000 - 11:05 #15
Løkken skal skrive X antal linier ud.
De X antal er baseret ud fra to værdier (TidFra) og (TidTil)

Dvs. Hvis TidFra = 10, Starter den fra tallet 10
    Hvis TidTil = 18, Slutter den ved tallet 18
... og skriver hermed 8 linier ud.

Dette kan gøre meget nemmere - men det er i forbindelse med en tidsoversigt for en hel dag.
Dvs, at man kan få vist en tidshorisont der strækker sig fra Kl. 10.00 til Kl. 18.00.

Håber at det kunne hjælpe lidt. Jeg har også listet hele koden.

----------------------------------
<%
        \'Connection sker i en Include fil
        response.write \"<table width=\'540\' cellspacing=\'2\' cellpadding=\'2\' bordercolor=\'\" & greyLight & \"\' border=\'1\'>\"
        response.write \"<tr>\"
        response.write \"<td colspan=\'2\' align=\'center\' bordercolor=\'#000000\' bgcolor=\'\" & greyDark & \"\'>\" & font10pt_black & Ucase(Left(uniDayOfWeek, 1)) & Right(uniDayOfWeek, Len(uniDayOfWeek)-1) & \" \" & Left(FormatDateTime(RQ_strdate, vbLongDate), 4) & Ucase(Mid(FormatDateTime(RQ_strdate, vbLongDate), 5, 1)) & Right(FormatDateTime(RQ_strdate, vbLongDate), Len(FormatDateTime(RQ_strdate, vbLongDate))-5) &\"</td>\"
        response.write \"</tr>\"
       
        SqlQ = \"Select * From Data_Bruger Where BrugerID =\" & session(\"BrugerID\")
        Set retur_SqlQ = Connection.execute(SqlQ)
       
        if retur_SqlQ
        \'Count Default Hours
        dagCount = retur_SqlQ(\"TidFra\")-1
        do while dagCount < retur_SqlQ(\"TidFra\")
            dagCount = dagCount+1
            if len(dagCount) = 1 then
                dagCount = \"0\" & dagCount
            end if
            response.write \"<tr>\"
            response.write \"<td valign=\'top\' height=\'30\' width=\'40\' bordercolor=\'#000000\'>\" & font10pt_black & dagCount & \":00</td>\"
            \'Getting Sql Results
            SqlQ = \"Select * From Data_Kalender Where (KalenderTidFra Like \'%\" & left(dagCount, 2) & \":%\') AND (KalenderDatoFra = \'\" & RQ_strdate & \"\')\"
            Set retur_SqlQ = Connection.execute(SqlQ)
            response.write \"<td valign=\'top\' height=\'30\' width=\'100%\' bordercolor=\'#000000\'>\"
            if not retur_SqlQ.eof then
                response.write \"<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\'>\"
                response.write \"<tr>\"
                do while not retur_SqlQ.eof
                    SqlQ2 = \"Select * From Data_Kunde Where KundeVirksomhed = \'\" & retur_SqlQ(\"KundeVirksomhed\") & \"\'\"
                    Set retur_SqlQ2 = Connection.execute(SqlQ2)
                    response.write \"<td><a href=\'frame_entry.asp?action=edit&KalenderID=\" & retur_SqlQ(\"KalenderID\") & \"\'>\" & font10pt_black  & retur_SqlQ2(\"KundeVirksomhed\") & \"<br>\" & retur_SqlQ2(\"KundeAdresse\") & \"<br>\" & retur_SqlQ2(\"KundePost\") & \" \" & retur_SqlQ2(\"Kundeby\") & \"</a></td><td width=\'20\'>&nbsp;</td>\"
                retur_SqlQ.movenext
                loop
                response.write \"</tr>\"
                response.write \"</table>\"
            else
                response.write \"&nbsp;\"
            end if
            response.write \"</td>\"
           
            response.write \"</tr>\"
            nullStr = \"\"
        loop
        response.write \"<tr>\"
        response.write \"<td colspan=\'2\' align=\'right\'>\" & font10pt_black & \"[<a href=\'\'> Udskriv </a>]</td>\"
        response.write \"</tr>\"
        response.write \"</table>\"
%>
Avatar billede kasseper Nybegynder
03. november 2000 - 11:13 #16
Okay Det er fordi at du genbruger dit retur_SqlQ, inden du er kommet ud af loopet.

HER :
-------------------
SqlQ = \"Select * From Data_Kalender Where (KalenderTidFra Like \'%\" & left(dagCount, 2) & \":%\') AND (KalenderDatoFra = \'\" & RQ_strdate & \"\')\"
            Set retur_SqlQ = Connection.execute(SqlQ)
-------------------
Skal du bruge et andet recordset
Avatar billede enlize Nybegynder
03. november 2000 - 11:22 #17
Fandme så du - mange tak.... du får 100 point for din hjælp :)
Avatar billede kasseper Nybegynder
03. november 2000 - 11:27 #18
Jamen takker så ydmygt
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