Numerare progressivamente i valori uguali contenuti in in un campo.

Anonimo
2013-02-23T22:16:20+00:00

Ciao a tutti.

Recentemente mi è stata data questa soluzione per numerare progressivamente i contatti dello stesso cliente.

Espr2: DCount("*";"T_CONTATTI CLIENTI";"[IDCliente]=" & [T_CONTATTI CLIENTI]![IDCliente] & " AND [Cognome Nome]<='" & [T_CONTATTI CLIENTI]![Cognome Nome] & "'").

L'espressione funzionerebbe salvo quando un cliente ha due contatti con lo stesso nome, in questo caso il nr progressivo è uguale e si ripete.

esempio

cliente 1 contatto1 nr_prog 1

cliente 1 contatto2 nr_prog 2

cliente 1 contatto1 nr_prog 1 invece dovrebbe essere 3

Un'altro problema che se al posto del campo [Cognome Nome] valuto un numero l'espressione mi da errore.

Qualcuno mi può aiutare.

Dovrei inserire l'espressione in una query e mi servirebbe la riga di espressione non di codice.

grazie

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

Risposta accettata dall'autore della domanda

Anonimo
2013-02-24T18:48:22+00:00

Ti ringrazio tantissimo.L'errore non conpare piu'.

 

Come avevi previsto ci sono nr progressivi doppi.

Ho un ID contatore ma purtroppo e un ID REPLICA e quindi ha numeri negativi e positivi.

Non penso si possa riuscire.

Vorrei suggerire come valore univoco l'insieme del campo "ID"(numerico) e il campo "Cognome Nome" (testo) Il campo Cognome Nome è unico per ogni cliente .

Purtroppo non so come comporre l' espressione per ottenere esempio " 4 Forni Luca"

In questo modo se ci sono tanti ID 4 ma con Cognome Nome diversi li ordina come mio esempio.

Ciao,

puoi fare brutalmente così:

Espr1: DCount("*";"Q_4_Contatti";"[IDCliente]=" & [Q_4_Contatti]![IDCliente] & " AND [ID]<=" & Str([Q_4_Contatti]![ID]) & " AND [Cognome Nome]&[IdReplica]<='" & [Q_4_Contatti]![Cognome Nome] & [Q_4_Contatti]![IdReplica] & "'")

Cambia IdReplica con l'effettivo nome del campo usato per l'Id replica.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-02-24T17:48:21+00:00

Ciao,

come detto sopra l'errore sta nell'uso del delimitatore di stringa, così dovrebbe funzionare

Espr1: DCount("*";"Q_4_Contatti";"[IDCliente]=" & [Q_4_Contatti]![IDCliente] & " AND [ID]<=" & Str([Q_4_Contatti]![ID]) & " AND [Cognome Nome]<='" & [Q_4_Contatti]![Cognome Nome] & "'")

rimane sempre il fatto che manca un Id che identifica in modo univoco le righe, perchè potresti avere la seguente condizione.

IDCliente  Cognome Nome   ID Ruolo contatto nr progressivo

cliente 1   Forni Luca             4 Dirigente.           3

cliente 1   Pippo                    2 R.U.T.                  2

cliente 1   Rossi Maria           1 R.U.A.                  1

cliente 2   PIPPO                    2 R.U.T.                  1

cliente 2   PLUTO                   4 Dirigente.           2

cliente 2   PLUTO                   4 Dirigente.           ????

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-02-24T14:20:01+00:00

    Ciao,

    l'espressione che hai mostrato è errata perchè non chiude la stringa [Cognome Nome] con il delimitatore di testo, a parte questo aspetto hai cambiato la domanda iniziale e sinceramente non ho capito molto.

    Puoi mostrare un esempio di dati a disposizione e il risultato che vuoi ottenere ?

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-02-24T13:51:23+00:00

    Ti ringrazio Giorgio per la risposta , ma non riesco ,mi continua a dare errore.

    Mi spiego meglio:

    Ho una query "Q_4_Contatti" dove sono presenti 2 tabelle collegate (Tabella contatti e tabella ruolo contatti). Ho creato la "Q_4_Contatti" perchè ho necessità di prendere il campo "ID" della tabella ruolo

    numero che da l'ordine al Ruolo secondo un mio criterio. Perchè altrimenti il nr progressivo mi numera

    in ordine alfabetico del campo [Cognome Nome]. Io voglio che il nr progressivo piu' basso sia attribuito al ruolo piu' importante del cliente.

    ES.

    ID 1 RUOLO R.U.A. (responsabile ufficio acquisti)

    ID 2 RUOLO R.U.T. (responsabile ufficio tecnico)

    ID 3 RUOLO SEG.U.A. (segretaria ufficio acquisti) ruolo poco importante rispetto al ruolo R.U.A.

    ho creato una query di aggiornamento chiamata q5 dove sono presenti i campi della  "Q_4_Contatti"

    IDCliente = cliente (campo della tabella contatti) dentro la query "Q_4_Contatti"

    ID= Id del ruolo vedi tabella sopra (campo della tabella ruolo) dentro query"Q_4_Contatti"

    Cognome Nome= (campo della tabella contatti) dentro la query "Q_4_Contatti"

    Ho inserito l'espressione ma non funziona

    Nr_prog: DCount("*";"Q_4_Contatti";"[IDCliente]=" & [Q_4_Contatti]![IDCliente] & " AND  [ID]<=" & Str([Q_4_Contatti]![ID]) & "' AND [Cognome Nome]<='" & [Q_4_Contatti]![Cognome Nome])

    Vorrei ottenere un numerare progressivamente tutti i contatti di ogni cliente e questo numero sia in ordine di ruolo cioè il nr 1 sarà R.U.A. il nr. 2 sarà R.U.T il numero piu' alto il ruolo meno importante mantenendo l'ordine della tabella ruolo contatti.

    Spero tanto di essermi spiegato bene.

    grazie 1000

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-02-24T09:08:13+00:00

    Ciao Christian,

    a parità di nome bisogna avere un altro campo che identifica il record, ad esempio un Id contatore, se non c'è aggiungilo alla tabella.

    In questo caso l'espressione diventa:

    DCount("*";"T_CONTATTI CLIENTI";"[IDCliente]=" & [T_CONTATTI CLIENTI]![IDCliente] & " AND [Cognome Nome]<='" & [T_CONTATTI CLIENTI]![Cognome Nome] & "' AND ID<=" & Id).

    Per il secondo problema basta che togli il delimitatore di testo come già fatto per IDCliente

    DCount("*";"T_CONTATTI CLIENTI";"[IDCliente]=" & [T_CONTATTI CLIENTI]![IDCliente] & " AND [CampoNumerico]<= " & Str([T_CONTATTI CLIENTI]![CampoNumerico]) & "  AND ID<=" & Id)

    la Funzione Str() serve solo se CampoNumerico può contenere numeri con decimali.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento