namen met afkappingsteken

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.680
Ik had:
If IsNull(DLookup("[ID]", "dokter", "naam= '" & Me.[verwijzer] & "'")) = True Then
Als de "verwijzer" bvb D'Hollander noemt krijg ik met deze code problemen, dus pas ik het aan naar
If IsNull(DLookup("[ID]", "dokter", "naam= "" & Me.[verwijzend_arts] & """)) = True Then
maar nu vind het systeem blijkbaar geenenkele verwijzer meer in de database
Wat doe ik fout?
Met dank
 
Post eens een voorbeeldje, dan kijken we er naar. DLookup is wellicht niet de handigste manier omdat je relatief weinig controle hebt over de uitkomst.
 
Er is niet veel voorbeeld te gene en normaliter werkt alles wel, behalve bij namen met een "afkappingsteken"

Code:
Private Sub verwijzer_AfterUpdate()
    If IsNull(DLookup("[ID]", "dokter", "naam= '" & Me.[verwijzer] & "'")) = True Then
'    If IsNull(DLookup("[ID]", "dokter", "naam= "" & Me.[verwijzer] & """)) = True Then
        If MsgBox("Deze verwijzer is nieuw.. aanmaken? ", vbExclamation + vbYesNo, " ") = vbYes Then
            Me.nieuwe_verwijzer = "Ja"
            DoCmd.OpenForm "Weergave verwijzer", , , , acFormAdd, WindowMode:=acDialog, OpenArgs:=Me.verwijzer
        End If
    End If
End Sub
 
Laatst bewerkt door een moderator:
@ JEPEDEWE Als nieuwkomer op ons forum. Code dient tussen codetags geplaatst te worden. Hierdoor is het beter leesbaar voor de helpers.
 
En ik zou het dus zo doen, zonder DLookup.
Code:
Private Sub verwijzer_AfterUpdate()
Dim strSQL As String
Dim rs As DAO.Recordset
    strSQL = "SELECT ID FROM dokter WHERE naam = """ & Me.[verwijzer] & """"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.RecordCount = 1 Then
        If MsgBox("Deze verwijzer is nieuw.. aanmaken? ", vbExclamation + vbYesNo, " ") = vbYes Then
            Me.nieuwe_verwijzer = "Ja"
            DoCmd.OpenForm "Weergave verwijzer", , , , acFormAdd, WindowMode:=acDialog, OpenArgs:=Me.verwijzer
        End If
        rs.Close
    End If
End Sub
 
Dat werkt, mist aanpassing van
if rs.recordcount=1
in
if rs.recordcount=0

Maar ik heb me laten vertellen dat het "overkill" is om een recordset van 1 record aan te maken en dat dat het programma onnodig "overbelast" met allerhande recordsets die dan open blijven en de boel uiteindelijk in de war sturen

Zal dan wel niet veronderstel ik... :(

Bedankt
JP
 
... ik heb me laten vertellen dat het "overkill" is om een recordset van 1 record aan te maken en dat dat het programma onnodig "overbelast" met allerhande recordsets die dan open blijven en de boel uiteindelijk in de war sturen
Je laat je informeren door verkeerde personen :). Werken met Recordsets gaat prima, en een recordset die één record ophaalt is alleen maar efficiënt. Overkill is om met 6 politieauto's, 3 ambulances en 4 brandweerauto's een kat uit een boom te halen :D. rs.RecordCount = 0 is natuurlijk onlogisch; dan zit er niks in. Maar er moest inderdaad nog een kleine aanpassing in. Zoals je ziet, wordt de recordset keurig afgesloten in de code, dus dat argument gaat óók al niet op.
Code:
Private Sub verwijzer_AfterUpdate()
Dim strSQL As String
Dim rs As DAO.Recordset
    strSQL = "SELECT ID FROM dokter WHERE naam = """ & Me.[verwijzer] & """"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    rs.MoveLast
    rs.MoveFirst
    If rs.RecordCount = 1 Then
        If MsgBox("Deze verwijzer is nieuw.. aanmaken? ", vbExclamation + vbYesNo, " ") = vbYes Then
            Me.nieuwe_verwijzer = "Ja"
            DoCmd.OpenForm "Weergave verwijzer", , , , acFormAdd, WindowMode:=acDialog, OpenArgs:=Me.verwijzer
        End If
        rs.Close
    End If
End Sub
 
Michel
bedankt voor je uitleg
maar... ivm de code:

als je de recordset aanmaakt, en dis blijkt leeg te zijn (..Count=0) pas DAN moet je een nieuwe record aanmaken want dan komt de verwijzer niet in het bestand voor
Als de recordset 1 is dan werd er al een record gevonden in de tabel en moet er dus niets aangemaakt worden

of zie ik het verkeerd
JP
 
Als je de syntax van je oorspronkelijke code :
Code:
If IsNull(DLookup("[ID]", "dokter", "naam= "" & Me.[verwijzend_arts] & """)) = True Then

corrigeert met een extra " teken zal die waarschijnlijk ook werken
Code:
If IsNull(DLookup("[ID]", "dokter", "naam= ""[B]"[/B] & Me.[verwijzend_arts] & """[B]"[/B])) = True Then
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan