Probleem Dcount en aanhalingstekens

Status
Niet open voor verdere reacties.

Noel Prove

Gebruiker
Lid geworden
16 jul 2006
Berichten
98
Hallo,

Ik probeer de Dcount functie toe te passen om in geval er geen records zijn
voor de huidige criteria er een messagebox wordt weergegeven.
Maar ik heb problemen met de " en ' tekens.
Kunnen jullie me hierbij helpen aub ?

Alvast bedankt.


Code:
Private Sub btnA_Click()
    Dim myBeginletter As String
    If DCount("AdresID", "qryControleData", "[Achternaam] Like ""A*") > 0 Then
    myBeginletter = "SELECT * FROM tbl_Customer WHERE [Achternaam] LIKE 'A*'"
    Me.tbl_Customer_subform1.Form.RecordSource = myBeginletter
    Me.tbl_Customer_subform1.Form.Requery
Else
       MsgBox "There are no records to view."
End If
Dim myAlles As String
myAlles = "Select * from tbl_Customer"
Me.tbl_Customer_subform1.Form.RecordSource = myAlles
Me.tbl_Customer_subform1.Form.Requery
Me.cboCustomerType = Null
Me.cboGeslacht = Null
Me.cboGemeente = Null
End Sub
 
Bij mij werkt
Code:
"Achternaam like 'A*'"

Reageert ook goed op bijvoorbeeld 't Hoen.

Ik ken natuurlijk niet het hele verhaal en de reden waarom je het zo doet. Maar begrijp ik het goed dat je voor elke letter een knop hebt en dus de code (vrijwel) moet dupliceren? Lijkt me nogal omslachtig. Waarom niet "gewoon" de gratis meegeleverde filterknop of zoekknop gebruiken?
 
Laatst bewerkt:
Hallo Peter,

Bedankt voor de reply en de goede support.
Jouw oplossing werkt prima.
Wat bedoeld u met de gratis filterknop of zoekknop ?

Noël.
 
Nog betere support is natuurlijk als Peter uitlegt waarom je veel beter wél de dubbele quoot kan gebruiken. En dat is toch omdat je in de problemen kan komen met het voorkomen van ' in namen, zoals 't Hoen en 's Hertogenbosch. Dus als het even kan: altijd de dubbele quoot gebruiken. De 'wetenschap' daar achter is vrij simpel: omdat de dubbele quoot ook gebruikt wordt om strings te bepalen, moet je aan Access 'doorgeven' dat je de dubbele quoot in de string wilt gebruiken. En dat is simpel: gewoon twee keer intypen. Je string ziet er dan dus zo uit:
Code:
If DCount("AdresID", "qryControleData", "[Achternaam] Like ""A*""") > 0 Then
Daarbij is de eerste quoot dus het 'definieringsteken', en de tweede het eigenlijke gewenste teken. Je beginstring was dus goed (twee dubbele quoots), maar de afsluiting niet: die bevatte slechts één quoot (de afsluiting van de string) maar niet de afsluiting van de tekststring (nog twee dubbele quoots).

Zelf zou ik oplossingen met enkele quoots negeren, want die deugen in essentie gewoon niet. (niet altijd althans)
 
Wat bedoelt u met de gratis filterknop of zoekknop?
Ik bedoel daarmee dat er standaard een filterfunctie beschikbaar is door op de knop met het filterlogo te klikken. Je hoeft daarvoor niets te programmeren.
 

Bijlagen

  • filter.jpg
    filter.jpg
    132,5 KB · Weergaven: 13
Laatst bewerkt:
Hallo,

bedankt voor de deskundige uitleg. Weeral iets bijgeleerd. Ik zal hier in de toekomst
zeker rekening mee houden !
 
Ik vind de constructie overigens nogal omslachtig; filteren op een subformulier kan prima zonder dat je de variabele Beginletter gebruikt, en als er geen records in de subset zitten, dan blijft het formulier leeg. Dat zie je echt wel, daar heb ik althans geen Msgbox voor nodig, dus de IF constructie kan ook weg :). Bovendien kun je dat voor zijn door ervoor te zorgen dat de knoppen uitgeschakeld zijn als er geen records zijn voor een letter. Kun je er niet op klikken, en hoeft er ook niks gedaan te worden op het subformulier. Logisch programmeren, noem ik dat :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan