Vb en Data in DBGRID

Status
Niet open voor verdere reacties.

fredjen

Gebruiker
Lid geworden
16 sep 2006
Berichten
7
Wat ik wil bekomen: een lijst met gefilterde gegevens (DBGRID), gebaseerd op klantnummer (TxtTEST123.text). Dit probeer ik als volgt:
sQlTekst = "Select BEZOEKEN.DATUM, BEZOEKEN.UUR, BEZOEKEN.CONTACT, BEZOEKEN.INFO, BEZOEKEN.INFORMATIE From BEZOEKEN WHERE BEZOEKEN.KLANTNUMMER = " & Val(TxtTEST123.Text)

Helaas krijg ik geen data in de DBGRID. Als ik de WHERE functie weglaat of een vaste waarde geef, dan lukt het wel.

Wie kan me helpen om een einde te maken aan een zoektocht van reeds 6 dagen...
 
Wat ik wil bekomen: een lijst met gefilterde gegevens (DBGRID), gebaseerd op klantnummer (TxtTEST123.text). Dit probeer ik als volgt:
sQlTekst = "Select BEZOEKEN.DATUM, BEZOEKEN.UUR, BEZOEKEN.CONTACT, BEZOEKEN.INFO, BEZOEKEN.INFORMATIE From BEZOEKEN WHERE BEZOEKEN.KLANTNUMMER = " & Val(TxtTEST123.Text)

Helaas krijg ik geen data in de DBGRID. Als ik de WHERE functie weglaat of een vaste waarde geef, dan lukt het wel.

Wie kan me helpen om een einde te maken aan een zoektocht van reeds 6 dagen...

Probeer eens het project te debuggen op de query. Als je de query in de watchlist
zet. en de volledige query kopieerd naar je klembord kan je deze gebruiken in een
query analyser naar keuze.

Geeft hij in de analyser eveneens geen resultaten, klooi dan wat met je query
totdat hij goed is. Pas het dan weer toe in je programma.
 
Probeer eens zonder de Val() functie. Als er een ongeldig teken in de textbox staat wordt de waarde van de Val-functie nul. De Val-functie verwijdert ook voorloopnullen...
Je kan eventueel een breakpoint plaatsen op de regel na die waarin je de SQL samenstelt.
Dan kan je zien wat er in TxtTEST123.Text staat. Meestal kan je dan wel een idee vormen over de juistheid van de querywaarde.
Als het programma het breakpoint bereikt pauseert het en kan je de waarden opvragen. Je kan op dat ogenblik ook in het immediate command venster de waarden die je wil controleren tevoorschijn halen met de print (?) opdracht.
vb: print "#" & TxtTEST123.Text & "#"
Je krijgt dan de inhoud van de textbox tussen twee hekjes geplaatst. In dit geval zal dat vermoedelijk niet nodig zijn, maar als je een aantal spaties wil controleren is dit wel handig. Je weet dan waar de inhoud begint en eindigt.
In dit geval kan je dus ook gebruik maken van
print TxtTEST123.Text of ? TxtTEST123.Text

Normaal hoef je ook niet telkens de tabelnaam voor het veld te plaatsen, tenzij je meerdere tabellen tegelijk aanspreekt met dezelfde veldnamen (wat uiteraard niet aan te raden is).
Je SQL wordt dan:
Code:
sQlTekst = "Select DATUM, UUR, CONTACT, INFO, INFORMATIE From BEZOEKEN WHERE KLANTNUMMER = " & TxtTEST123.Text
 
Laatst bewerkt:
Bedankt voor de hulp.
Als ik het op deze manier probeer krijg ik telkens de volgende melding:
Syntax error (missing operator) in query expression 'KLANTNUMMER='.

Enig idee?
 
Misschien een stomme vraag, maar is klantnummer wel degelijk numeriek gedefiniëerd in de databank? Als klantnummer namelijk als text, varchar, blob, of iets dergelijks gedefiniëerd is moet je er enkelvoudige aanhalingstekens rond zetten zoals:
sQlTekst = "Select DATUM, UUR, CONTACT, INFO, INFORMATIE From BEZOEKEN WHERE KLANTNUMMER = '" & TxtTEST123.Text & "'"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan