Gebruik van datumkiezer geeft een foutboodschap

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
326
Enkel bij de opstart geeft onderstaande code volgende error :

> Microsoft VBScript runtime error '800a000d'
> Type mismatch: 'cdate'
(verwijst naar de 'cdate' op de laatste code-regel hieronder)

Na een druk op de submit-knop verschijnt de bedoelde tabel vanaf 01/01/2021 evenwel zonder haperingen - ook na wijziging van de datum in de datumkiezer.
(request.form via METHOD="POST")

Vraag : (hoe) kan ik die initiële foutboodschap vermijden (bij de start) ?
Dank voor tips.

Code:
<input type="date" name="datumA" placeholder="DD/MM/YYYY" value="2021-01-01">

<tr>
<td><input type="submit" name="Submit" value="Submit">
</td></tr>

<%
		CurrentDay = right(request.form("datumA"),2)
		CurrentMonth = mid(request.form("datumA"),6,2)
		CurrentYear = left(request.form("datumA"),4)
%>		

</table>

<%
Dim Conn, rs, sql
Set Conn ...
...
rs.Open sql, Conn
%>

<%
Do While rs("Datum")>=cdate(CurrentDay&"/"&CurrentMonth&"/"&CurrentYear)
 
Laatst bewerkt:
Is dit iets om te proberen?
Code:
cdate("#" & CurrentDay & "/" & CurrentMonth & "/" & CurrentYear & "#")

Misschien moeten dag en maand worden omgewisseld in de cdate. Dit kan je testen met IsDate
 
Dank bron voor de tips - evenwel zonder resultaat.
Voorheen stond dag nà maand (cfr. Access) - had die al per trial gewisseld ... én dit lukte.
Overigens werkt de codering wél nà de submit - mocht in do while een fout schuilen zou dit nà de submit m.i. ook niet lukken (tenzij ik mij vergis)
Mogelijk nog andere (en betere ;-) tips ?
 
De loop helemaal voluit schrijven en met response.write de voortgang bekijken
Code:
Dim DatumCdate
Dim BlijfInLoop
BlijfInLoop = True
Do While BlijfInLoop
    If IsDate(CurrentDay&"/"&CurrentMonth&"/"&CurrentYear) Then
        DatumCdate = CDate(CurrentDay&"/"&CurrentMonth&"/"&CurrentYear)
        response.write("Groter of gelijk")
        If rs("Datum") >= DatumCdate Then
            response.write("datum valide")
            BlijfInLoop = False
        End If
    Else
        response.write("Geen geldige datum")
        BlijfInLoop = False
    End If
Loop

Ik programmeer nooit hierin dus even checken op foutjes in deze code ;)
Zelf denk ik dat in regel 8 iets niet goed gaat.
 
Geen foutboodschap meer - maar krijg slechts info van 1 (tabel)rij - heb mijn 'tabel'code ingevoegd tussen regel 8 en 9
Dacht eerst dat een ontbrekende MoveNext (in jouw code) het probleem was - toegevoegd maar geen soelaas.

Kom nog eens terug op de foutboodschap : Microsoft VBScript runtime error '800a000d' - Type mismatch: 'cdate' - cfr. sub #3 : fout enkel bij de eerste doorloop.
In mijn code zou dat de foutieve eerste aanname van de datumkiezer kunnen (want na een eerste submit loop alles vlekkeloos)
Do While rs("Datum")>=cdate(CurrentDay&"/"&CurrentMonth&"/"&CurrentYear)
Hoe zou ik dit kunnen achterhalen / uitsluiten ?
 
Laatst bewerkt:
maar krijg slechts info van 1 (tabel)rij
Zet de select query eens direct boven de regel: Do While BlijfInLoop
Dan loopt de Do While loop daarna alle rijen door.

runtime error '800a000d' - Type mismatch
Ik denk dat deze melding wordt gegeven omdat je een rij uit de recordset vergelijkt met type datum, en dat gaat niet.
Dat gebeurt in de regel: Do While rs("Datum")>=cdate(....)
 
De select query verplaatsen verandert niets - zou mij verwonderen gezien nà de eerste submit de (gevraagde) tabel wél correct wordt weergegeven (met mijn oorspronkelijke code).
Daarbij wordt m.i. telkens het veld 'datum' vergeleken met de geconverteerde datum van de datumkiezer.

Cfr. sub #1 en #5 => bijgevolg situeert de cdate-foutboodschap zich m.i. vóór de eerste submit (?).
Met een datumkiezer heb ik nog geen ervaring - bijgevolg moet ik m.i. trachten uit te vlooien waarom deze allereerste vergelijking (=enkel bij de opstart van de toepassing) fout loopt.
Een runtime fout zou zich volgens 'Google' vooral situeren in typefouten etc - maar ik vind er niet onmiddellijk een - misschien codes verplaatsen ...
Ik zoek dus verder - suggesties zijn uiteraard welkom.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan