Probleem bij selectie op basis van gekozen datum (listbox)

Status
Niet open voor verdere reacties.

mani1988

Gebruiker
Lid geworden
11 jan 2011
Berichten
15
Ik heb een probleem met het ophalen van records in een Oracle database via VBA code. De records die moeten worden opgehaald, zijn afhankelijk van de datum die door de gebruiker van het programma wordt gekozen. De lijst (listbox) met mogelijke data die de gebruiker kan kiezen, wordt samengesteld op basis van een tabel in Oracle (SELECT DISTINCT date FROM tbl003). Deze listbox heeft volgende naam: keuzeDatum.

Wanneer de gebruiker een datum selecteert in de listbox en op de knop “ENTER” klikt, wordt er een SQL-query uitgevoerd die er als volgt uitziet:

SQL = "SELECT waarde1, waarde2, waarde3 " & _
"FROM tbl001, tbl002, tbl003 " & _
"WHERE tbl001.contractID = tbl002.contractID " & _
"AND tbl001.date = #" & Format(Me.keuzeDatum.value, "MM/DD/YYYY") & "#"

Dit lijkt echter niet te werken. Er worden namelijk ook records geselecteerd waar de datum verschillend is van de gekozen datum (keuzeDatum). Kan iemand mij verder helpen aub?
 
Laatst bewerkt:
Je datumfiltering is waarschijnlijk niet goed; probeer het eens met deze:
Code:
    Const strcJetDate = "\#mm\/dd\/yyyy\#"  
    AND tbl001.date = Format(Me.keuzeDatum.value, strcJetDate)
 
Bedankt maar dan krijg ik ondertaande error

Run-time error '-2147467259 (80004005)':
ODBC --call failed.
 
Andere aanpak:
Code:
"AND CDbl(tbl001.date) = " & CDbl(Format(Me.keuzeDatum.value)
 
Volgende variant:
Code:
AND CDbl([tbl001].[date]) = " & CDbl(CDate(Me.keuzeDatum.value))
Overigens ontbrak er in het vorige voorbeeld een haakje; zal je vermoedelijk zelf ook wel gezien hebben ;)
Code:
"AND CDbl(tbl001.date) = " & CDbl(Format(Me.keuzeDatum.value[B])[/B])
 
Opnieuw dezelfde error als in het begin:

Run-time error '-2147467259 (80004005)':
ODBC --call failed.

(PS: Ja, ik had het haakje gezien)
 
Wat geeft-ie terug als je met een msgbox de keuzelijst uitleest?
 
Mijn vorige variant was eigenlijk ook helemaal niet goed: ik bedoelde namelijk
Code:
"AND CDbl(tbl001.date) = " & CDbl(Me.keuzeDatum.value)
Dus (toch) met één haakje :)
 
Bedankt voor je hulp maar ook dan krijg ik de "Type mismatch" error...
 
Ik raak langzaamaan door mijn opties heen... ik krijg het vermoeden dat het probleem in het veld [tbl001.date] zou kunnen zitten. Is de instelling van dat veld wel correct?
 
Gebruik je het veld ook in andere queries? En hoe doet-ie het dan?
 
Ja en in andere queries zijn de gegevens nochtans wel volledig correct.
Dat is wat ik zo raar vind, want er lijkt mij niets verkeerd aan deze query..
 
Heb je 'm al geprobeerd zonder Format op de keuzelijst?
 
Als je deze code gebruikt
Code:
"AND tbl001.date = #" & Format(Me.keuzeDatum.value, "MM/DD/YYYY") & "#"
werkt hij wel, zei je, maar krijg je verkeerde datums. Zit daar nog een logica in? bijvoorbeeld dat de maanden en dagen uit de keuzelijst worden omgedraaid? En doet hij dat ook als je deze gebruikt?
Code:
"AND tbl001.date = " & CDate(Me.keuzeDatum.value)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan