Newsgroup: it.comp.appl.access
Titolo: sintassi di dlookup

ciao a tutti e scusate la domanda che sto per farvi
ho una tabella con un indice (pippo) che interessa 2 campi
NomeCognome e NatoIl, l'indice è di tipo univoco.
al momento dell'inserimento, dopo aver inserito cognome e nome e la data di
nascita vorrei che mi apparisse un messaggio che mi indica la già esistenza
dei dati in archivio e mi annulli l'inserimento.
mi è stato detto di usare la funzione DlookUp ma sulla guida non è che sia
tanto chiaro.
chi me la illustra in modo sintetico con magari un esempio?
Nico


DLookUp
=DLookUp("[RagSoc]","T_Clienti","[cod]='" & [Forms]![S_1]![codcli] & "'")
'Scrive la ragione sociale della tabella T_Clienti , paragonando
T_Clienti![Cod] con il numero che c'è nel campo codcli della scheda S1 .
es. 1 = Barilla , scrivento 1 nel campo [Forms]![S_1]![codcli] restituisce
automaticamente nel campo dove come Origine Controllo c'è il comando sopra
descritto la scritta Barilla .
Me!RagSoc1 = DLookup("[RagSoc]", "T_Clienti", "[cod]='" &
[Forms]![S_1]![codcli] & "'") 'Come l'esempio sopra ma con l'utilizzo del
codice al posto della Propietà -Origine Controllo- ; il codice in questo
esempio è sulla propietà della scheda Su Corrente .
Me!RagSoc1 è il campo della scheda dove mette il risultato del comando
Dlookup es. Barilla
Me.OrdCodCli = DLookup("affCdCli", "T_Com_Affare", "affCdAff='" &
Me.OrdNrAff & "'") 'Esempio uguale ma semplificato come sintassi
Me!DCliente = DLookup("[CLIENTE]", "T_elettrici", "[ID ORDINE] = " & NOrd)
'La variabile NOrd è di tipo numerico
Esempi di funzione DLookup
Nell'esempio riportato di seguito si restituiscono informazioni relative ai
nomi contenuti nel campo NomeSocietà del record che soddisfa criteri. Il
dominio è la tabella Corrieri. L'argomento criteri limita il set di record
risultante ai record in cui IDCorriere equivale a 1.
Dim strX As String
strX = DLookup("[NomeSocietà]", "Corrieri", "[IDCorriere] = 1")
Nell'esempio riportato di seguito, relativo alla tabella Corrieri, si
utilizza la maschera IDCorriere per fornire criteri alla funzione DLookup.
Si noti che il riferimento al controllo non è racchiuso tra le virgolette
che denotano le stringhe. In tale modo si assicura che ogni volta che la
funzione DLookup viene richiamata, il controllo fornisca il valore corrente.
Dim strX As String
strX = DLookup("[NomeSocietà]", "Corrieri", "[IDCorriere] =" _
& Forms!Corrieri!IDCorriere])
Nell'esempio riportato di seguito si utilizza una variabile intRicerca per
eseguire la ricerca.
Dim intRicerca As Integer, strX As String
intRicerca = 1
X = DLookup("[NomeSocietà]", "Corrieri", _
"[IDCorriere] = " & intRicerca)
--
ciao MarcoS
www.marcosanti.it
---------------------------------------------------
Non smetteremo di esplorare
E alla fine di tutto il nostro andare
Ritorneremo al punto di partenza
Per conoscerlo per la prima volta
T.S.Eliot
---------------------------------------------------

 ha scritto nel messaggio
news:Yjlba.39175$pG1.9...@news1.tin.it...

Se la tabella che contiene i dati si chiama Tabella1.
Se il campo NomeCognome è di tipo testo.
Se il campo NatoIl è di tipo Data/ora.
Se le due caselle di testo associate ai campi NomeCognome e NatoIl hanno lo
stesso nome dei campi cui sono associati.
A fronte dell'evento "Su attivato" del controllo NatoIl genera il seguente
codice VBA:
If IsNull(Me!NomeCognome) Then
    MsgBox "Digita il nome ed il cognome"
    Me!NomeCognome.SetFocus
End If
A fronte dell'evento "Prima di aggiornare" del controllo NatoIl genera il
seguente codice VBA:
If Not IsNull(DLookup("NatoIl", "Tabella1", "NomeCognome =" & _
Chr$(34) & Me!NomeCognome & Chr$(34) & " And NatoIl = #" & _
Format(Me!NatoIl, "mm/dd/yyyy") & "#")) Then
    MsgBox "Il record " & Me!NomeCognome & " " _
    & MeNatoIl & " già esiste"
    Cancel = True
End If
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:x3nba.2631$7y3....@twister1.libero.it...

grazie Roberto funziona alla perfezione,
dopo le seconda routine però volevo che in caso di duplicato mi venisse
visualizzato l'ultimo record dell'archivio, quindi dopo
l'istruzione END IF ci ho messo la riga
    DoCmd.GoToRecord , , acLast
ma mi compare l'errore IMPOSSIBILE PASSARE AL RECORD SPECIFICO
che devo fare?
grazie infinite ancora per il grande aiuto
Nicola

 Nicola
--
