Newsgroup: it.comp.appl.access
Titolo: Controllo duplicati su chiave multicampo

Un caro saluto a tutto il NG!!
Eccomi di nuovo qui a chiedere un vostro aiuto.
Ho la necessitą di effettuare un controllo dei duplicati di record in base
ad una chiave composta da tre campi: Nome, Cognome e data di nascita.
Sinceramente non so come fare, ho cercato anche nel sito comune, ma mi pare
che non vi sia nulla se non il controllo effettuabile su un solo campo del
record.
Grazie mille
Rita

 Rita
Metti in AND le condizioni ed effettua una QRY di estrazione....!!!
    "SELECT * FORM TuaTabella " & _
    "WHERE " & _
    "[Nome]=" & chr(34) & Forms!NomeForm!txtNome & chr(34) & " AND " & _
    "[Cognome]=" & chr(34) & Forms!NomeForm!txtCognome & chr(34) & " AND " &
_
    "[DataNascita]=#" & Forms!NomeForm!txtDataNascita & "#"
    In questo caso usi un Recordset e verifichi RecordCount(dopo aver
testato EOF)
Questo è il predicato per una QRY, ma puoi anche usarlo per un Dlookup:
    DCount("[Nome]", _
    "NomeTabella", _
    "[Nome]=" & chr(34) & Forms!NomeForm!txtNome & chr(34) & " AND " & _
    "[Cognome]=" & chr(34) & Forms!NomeForm!txtCognome & chr(34) & " AND " &
_
    "[DataNascita]=#" & Forms!NomeForm!txtDataNascita & "#"
    In questo caso è forse più semplice.......!
Ciao.
@Alex.

 ha scritto nel messaggio
news:c3ii98$21n$1...@lacerta.tiscalinet.it...

Grazie mille Alessandro, lo faccio subito.
Ciao Rita


Se ti può servire, ti posto una routine che ho trovato su un manuale di A2K
(modificata poi per le mie esigenze):
Private Sub Nascita_AfterUpdate()
' controlla se il record è duplicato analizzando i campi cognome, nome e
data di nascita
On Error GoTo Err_Nascita_AfterUpdate
    Dim rs As Object
    Set rs = Me.RecordsetClone
    If Me.NewRecord = True Then
        Dim strCognome As String, strMessage As String
        strCognome = "Cognome='" & Me!Cognome & "'"
        rs.MoveFirst
        rs.FindFirst strCognome
        Do Until rs.NoMatch
            If UCase(rs!Nome) = UCase(Me!Nome) Then
                If rs!Nascita = Me!Nascita Then
                    strMessage = bla... bla...
                    Cancel = True
                    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo
                    Me.Bookmark = rs.Bookmark
                    GoTo Exit_Nascita_AfterUpdate
                End If
            End If
            rs.FindNext strCognome
        Loop
    End If
Exit_Nascita_AfterUpdate:
    Set rs = Nothing
    Exit Sub
Err_Nascita_AfterUpdate:
    MsgBox Err.Number & " " & Err.Description
    Resume Exit_Nascita_AfterUpdate
End Sub
Ciao.
kaloma

 ha scritto nel messaggio
news:1Ob7c.80236$z23.3...@news3.tin.it...

Hai letto bene il BUG presente nell'UTILIZZO dei BooKmark.....??
La routine postata è corretta, ma rischiosa, e decisamente più
lenta.
Ciao.
@Alex.

 Rita
Ciao Rita
Roberto

 ha scritto nel messaggio
news:1Ob7c.80236$z23.3...@news3.tin.it...

Grazie Kaloma, mi fa molto piacere conoscere le diverse alternative alla
soluzione del mio problema.
In questo modo si impara molto prima.
     Ciao Rita

 ha scritto nel messaggio
news:c3jpfp$orf$1...@lacerta.tiscalinet.it...

Ciao Alex, francamente non sono a conoscenza del BUG di cui parli, cmq
grazie per la precisazione, ne terrò conto.
Ciao Rita

 ha scritto nel messaggio
news:7gi7c.84496$FJ6.3...@twister1.libero.it...

Ciaoooooo Roberto, che piacere ritrovarti!
Ciao Rita

 ha scritto nel messaggio
news:7gi7c.84496$FJ6.3...@twister1.libero.it...

Ciaoooooo Roberto, che piacere risentirti!!
A presto Rita