Non mi è chiara la ragione per la quale inserisci 01/01/1900 per gli utenti di cui non conosci la data di nascita anzichè lasciarla nulla.
Anche il fatto di usare un unico campo denominazione nel quale inserisci nome e cognome va contro le regole di normalizzazione.
L'unica soluzione che mi viene in mente è quella di assegnare a tutti i nominativi un anno di nascita fittizio, concatenandolo al giorno e al mese (nel mio script ho messo l'anno 2000). In fase di filtro, ai criteri selezionati tramite la maschera, accoderò anche qui lo stesso anno e così potrò trovare le persone nate in quell'intervallo di tempo.
codice:
Private Sub AnteprimaCOM_Click()
On Error GoTo Err_AnteprimaCOM_Click
Dim stDocName As String
Dim stLinkCriteria As String
Dim inizio As Date, fine As Date
inizio = CDate(Mid(Me.DataInizioCOM, 3, 2) & "/" & Mid(Me.DataInizioCOM, 1, 2) & "/2000")
fine = CDate(Mid(Me.DataFineCOM, 3, 2) & "/" & Mid(Me.DataFineCOM, 1, 2) & "/2000")
stLinkCriteria = "cdate(day(data_nascita) & ""/"" & month(data_nascita) & ""/2000"") between #" & inizio & "# and #" & fine & "#"
'accodo al mio criterio di filtro dei record anche la tipologia cliente
If Me.TiCliCOM <> 0 Or Not IsNull(Me.TiCliCOM) Then
stLinkCriteria = stLinkCriteria & " and Codice_TiCli =" & Me.TiCliCOM
End If
stDocName = "Elenco Compleanni Clienti"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_AnteprimaCOM_Click:
Exit Sub
Err_AnteprimaCOM_Click:
MsgBox Err.Description
Resume Exit_AnteprimaCOM_Click
End Sub
Nella maschera "Elenco compleanni clienti" rimuovi dall'origine record la query "Anteprima SELECT_COM" e metti invece "Clienti", cioè il nome della tabella.
P.S. Nel caso l'mdb che hai caricato contenga nominativi reali fai più attenzione in futuro. Per la legge sulla privacy rischi di incorrere in guai.