Condividi tramite

Impostazione DCount

Anonimo
2016-06-25T22:58:06+00:00

Ciao

Prima di aggiornare il record di una maschera, ho bisogno di sapere se i dati inseriti risultano doppioni.

La casella di testo della maschera raggruppa tre campi della tabella Carico concatenati con una lineetta:

Marca & " - " & Misura & " - " & Modello.

Come posso servirmi della funzione DCount aggiungendo le lineete alla tabella o escludendole dalla casella di testo Descrizione?

Esempio (sbagliato):

If DCount("Marca + Misura + Modello", "Carico", "Marca + Misura + Modello='" & Replace(Split(Me!Descrizione, " - "), "'", "''") & "'") > 0 Then

Vladimiro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

6 risposte

Ordina per: Più utili
  1. Anonimo
    2016-06-27T19:01:07+00:00

    ciao Vladimiro,

    se il controllo descrizione non è associato, la funzione dcount non può trovare duplicati, in quanto conta la ricorrenza del campo nel dominio.

    La textBox descrizione concatenata non esiste come campo all'interno del dominio, se non associata quindi direi proprio che così non si può applicare.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-06-27T18:24:52+00:00

    ciao Vladimiro,

    rivedendo il suggerimento precedente, inserendo al posto del dominio carico quello relativo al campo descrizione, qualora non fosse lo stesso Marca, Misura, Modello, non ottieni il messaggio di duplicato con l'impossibilità di salvare il record?

    ciao, Sandro

    Ciao Sandro,

    probabilmente non mi sono spiegato bene o forse non mi è chiaro il tuo suggerimento.

    Il mio problema non è crearmi come da tuo esempio il campo Concatenato e successivamente, tramite la funzione DCount riuscire a trovare i duplicati:

    If DCount("Concatenato", "Concatenato_Query", "Concatenato='" & Replace(Me!Descrizione, "'", "''") & "'") > 0 Then

    Quello che mi serve conoscere è la possibilità di applicazione della funzione DCount avendo soltanto la tabella Carico con i tre campi Marca, Misura e Modello e la casella di testo Descrizione.

    In poche parole, vorrei capire se c'è possibilità di modificare il codice del primo post, possibilmente, senza scostarmi molto da esso.

    If DCount("Marca + Misura + Modello", "Carico", "Marca + Misura + Modello='" & Replace(Split(Me!Descrizione, " - "), "'", "''") & "'") > 0 Then

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-06-27T03:38:25+00:00

    ciao Vladimiro,

    rivedendo il suggerimento precedente, inserendo al posto del dominio carico quello relativo al campo descrizione, qualora non fosse lo stesso Marca, Misura, Modello, non ottieni il messaggio di duplicato con l'impossibilità di salvare il record?

    ciao, Sandro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-06-26T18:29:57+00:00

    ciao Vladimiro,

    se ho capito, ma per certo non ho capito la faccenda della textBox Descrizione :-)

    Ciao Sandro,

    Questa è la tabella Carico:

    questa è la casella di testo Descrizione:

    La descrizione viene fuori dall'aggiornamento della combo Cbo_Gomme con origine riga:

    SELECT Carico.Marca, Carico.Misura, Carico.Modello

    FROM Carico;

    Me!Descrizione = Me!Cbo_Gomme.Column(0) & " - " & Me!Cbo_Gomme.Column(1) & " - " & _

    Me!Cbo_Gomme.Column(2)

    Il Dcount lo vorrei mettere prima di aggiornare la maschera.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2016-06-26T07:20:23+00:00

    ciao Vladimiro,

    se ho capito, ma per certo non ho capito la faccenda della textBox Descrizione :-)

    data la tabella  :

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    Me.concatenato = Me.marca & " - " & Me.misura & " - " & Me.modello

    If DCount("concatenato", "carico", "concatenato = '" & Me.marca & " - " & Me.misura & " - " & Me.modello & "'") > 0 Then

        Cancel = True

        VBA.MsgBox "Duplicato", vbCritical, "Avviso"

    End If

    End Sub

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento