Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Numerazione progressiva query access 2019

974 views
Skip to first unread message

#LEO72

unread,
Dec 28, 2021, 12:19:30 PM12/28/21
to
Buonasera,
ho bisogno di numerare progressivamente un campo di query
(a partire però da 1 a seguire);
ho provato con la funzione DCOUNT (usata su un campo ID di numerazione automatica), ma il risultato è che mi dà sempre il numero del campo ID..
L'ho impostata così:
NUM_RIGA: DCount("tblRigheDDT.NUMERO";"tblRigheDDT";"tblRigheDDT.NUMERO<" & [tblRigheDDT.NUMERO]).
Mi indicate la funzione esatta che devo utilizzare nella query?

Vi ringrazio davvero molto per il tempo e l'aiuto.
Leo

Karl Donaubauer

unread,
Dec 28, 2021, 1:10:54 PM12/28/21
to
Salve,

#LEO72:
> ho bisogno di numerare progressivamente un campo di query
> (a partire però da 1 a seguire);
> ho provato con la funzione DCOUNT (usata su un campo ID di numerazione automatica), ma il risultato è che mi dà sempre il numero del campo ID..
> L'ho impostata così:
> NUM_RIGA: DCount("tblRigheDDT.NUMERO";"tblRigheDDT";"tblRigheDDT.NUMERO<" & [tblRigheDDT.NUMERO]).
> Mi indicate la funzione esatta che devo utilizzare nella query?

Forse intendi:

DCount("*";"tblRigheDDT";"NUMERO<=" & [NUMERO])

Ciao
Karl
*********
Access News: https://youtu.be/wpPYu6G_xcY
Access DevCon: http://AccessDevCon.com
Access FAQ: https://www.donkarl.com/it

#LEO72

unread,
Dec 29, 2021, 5:57:14 AM12/29/21
to
Ciao Karl, innanzitutto grazie per la risposta.
Ho impostato il campo nella query come mi hai indicato tu, ma mi continua a dare come risultato il campo NUMERO senza invece conteggiarlo da 1.
Si tratta di un query di accodamento dati, ed ho bisogno di numerare progressivamente le righe che accodo ogni volta, partendo sempre da 1 a salire.
E' come se la funzione DCount venisse ignorata..
Grazie mille!!

Karl Donaubauer

unread,
Dec 29, 2021, 7:12:01 AM12/29/21
to
Salve,

#LEO72:
> Karl Donaubauer ha scritto:
>>> ho bisogno di numerare progressivamente un campo di query
>>> (a partire però da 1 a seguire);
>>> ho provato con la funzione DCOUNT (usata su un campo ID di numerazione automatica), ma il risultato è che mi dà sempre il numero del campo ID..
>>> L'ho impostata così:
>>> NUM_RIGA: DCount("tblRigheDDT.NUMERO";"tblRigheDDT";"tblRigheDDT.NUMERO<" & [tblRigheDDT.NUMERO]).
>>> Mi indicate la funzione esatta che devo utilizzare nella query?
>> Forse intendi:
>>
>> DCount("*";"tblRigheDDT";"NUMERO<=" & [NUMERO])
> ...
> Ho impostato il campo nella query come mi hai indicato tu, ma mi continua a dare come risultato il campo NUMERO senza invece conteggiarlo da 1.
> Si tratta di un query di accodamento dati, ed ho bisogno di numerare progressivamente le righe che accodo ogni volta, partendo sempre da 1 a salire.
> E' come se la funzione DCount venisse ignorata..

Quali dati so trovano nel campo "NUMERO"? Mostra anche qualche esempio qui.

Forse se posti il testo SQL della query si può vedere meglio cosa succede.

#LEO72

unread,
Dec 29, 2021, 7:20:18 AM12/29/21
to
il campo Numero ha i dati generati con la numerazione automatica di access; la mia query di accodamento ha un insieme di più tabelle.
Ti posto di seguito il testo SQL (è piuttosto lungo perchè ci sono molti campi presi da varie tabelle:
INSERT INTO dbo_MOV_RIGA_PROD ( CODICE_AZIENDA, ANNO_CONT, TIPO_MOV, CODICE_ANAGR, TIPO_DOC, CODICE_NUMERAZ, NUM_DOC, DATA_DOC, NUM_RIGA, CODICE_CESSIONE, CODICE_PROD, CODICE_UM, QTA_MOV, QTA_RIL, IMPORTO_UNIT, IMPORTO_COMPL, ALIQUOTA_IVA, CODICE_ANAGR )
SELECT tblANAG_CLIENTI.CODICE_AZIENDA, Year(Now()) AS ANNO_CONT, "T" AS TIPO_MOV, tblDestinatari.CODICE_FISCALE, "D" AS TIPO_DOC, tblANAG_CLIENTI.CODICE_PROCESSO, tblDDTLombardi.NUMERO, tblDDTLombardi.Data AS DATA_DOC, DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<=" & [tblRIGHEDDTLOMBARDI.NUMERO])-104540 AS NUM_RIGA, "TR" AS CODICE_CESSIONE, tblRigheDDTLombardi.Veloce AS CODICE_PROD, tblAs400.UM AS CODICE_UM, [COLLI]*[tblRIGHEDDTLOMBARDI.MPL] AS QTA_MOV, "0" AS QTA_RIL, tblAs400.COSTO AS IMPORTO_UNIT, [COSTO]*[COLLI]*[tblRIGHEDDTLOMBARDI.MPL] AS IMPORTO_COMPL, tblAs400.IVA AS ALIQUOTA_IVA, tblCAUSALI.CODICE_ANAGR
FROM tblDestinatari RIGHT JOIN (tblCAUSALI RIGHT JOIN (tblANAG_CLIENTI RIGHT JOIN (tblDDTLombardi INNER JOIN (tblAs400 RIGHT JOIN tblRigheDDTLombardi ON tblAs400.VELOCE = tblRigheDDTLombardi.VELOCE) ON tblDDTLombardi.codDDT = tblRigheDDTLombardi.CodRigheDDT) ON tblANAG_CLIENTI.CODICEMULTICEDI = tblDDTLombardi.MITTENTE) ON tblCAUSALI.Causale = tblDDTLombardi.CAUSALE) ON tblDestinatari.DESTINATARIO = tblDDTLombardi.DESTINATARIO
GROUP BY tblANAG_CLIENTI.CODICE_AZIENDA, Year(Now()), "T", tblDestinatari.CODICE_FISCALE, "D", tblANAG_CLIENTI.CODICE_PROCESSO, tblDDTLombardi.NUMERO, tblDDTLombardi.Data, DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<=" & [tblRIGHEDDTLOMBARDI.NUMERO])-104540, "TR", tblRigheDDTLombardi.Veloce, tblAs400.UM, [COLLI]*[tblRIGHEDDTLOMBARDI.MPL], "0", tblAs400.COSTO, [COSTO]*[COLLI]*[tblRIGHEDDTLOMBARDI.MPL], tblAs400.IVA, tblCAUSALI.CODICE_ANAGR, tblDDTLombardi.AccodamentoDati
HAVING (((tblDDTLombardi.Data)<>Date()) AND ((tblCAUSALI.CODICE_ANAGR)=88883) AND ((tblDDTLombardi.AccodamentoDati)=False))
ORDER BY tblDDTLombardi.NUMERO, DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<=" & [tblRIGHEDDTLOMBARDI.NUMERO]).

Karl Donaubauer

unread,
Dec 29, 2021, 7:39:40 AM12/29/21
to
Salve,

#LEO72:
> Karl Donaubauer ha scritto:
>>>>> ho bisogno di numerare progressivamente un campo di query
>>>>> (a partire però da 1 a seguire);
>>>>> ho provato con la funzione DCOUNT (usata su un campo ID di numerazione automatica), ma il risultato è che mi dà sempre il numero del campo ID..
>>>>> L'ho impostata così:
>>>>> NUM_RIGA: DCount("tblRigheDDT.NUMERO";"tblRigheDDT";"tblRigheDDT.NUMERO<" & [tblRigheDDT.NUMERO]).
>>>>> Mi indicate la funzione esatta che devo utilizzare nella query?
>>>> Forse intendi:
>>>>
>>>> DCount("*";"tblRigheDDT";"NUMERO<=" & [NUMERO])
>>> ...
>>> Ho impostato il campo nella query come mi hai indicato tu, ma mi continua a dare come risultato il campo NUMERO senza invece conteggiarlo da 1.
>>> Si tratta di un query di accodamento dati, ed ho bisogno di numerare progressivamente le righe che accodo ogni volta, partendo sempre da 1 a salire.
>>> E' come se la funzione DCount venisse ignorata..
>> Quali dati so trovano nel campo "NUMERO"? Mostra anche qualche esempio qui.
>>
>> Forse se posti il testo SQL della query si può vedere meglio cosa succede.
> ...
> il campo Numero ha i dati generati con la numerazione automatica di access; la mia query di accodamento ha un insieme di più tabelle.
> Ti posto di seguito il testo SQL (è piuttosto lungo perchè ci sono molti campi presi da varie tabelle:
> INSERT INTO ...

Non credo davvero che tu veda la stessa cosa in "NUM_RIGA" e in
"NUMERO". Ma in ogni caso, ti consiglierei di eliminare le colonne e le
tabelle passo dopo passo in una copia della query finché i due campi non
mostrano qualcosa di diverso. Forse troverai la ragione per cui non
mostra quello che ti aspettavi.

#LEO72

unread,
Dec 29, 2021, 11:19:55 AM12/29/21
to
Ciao Karl,
infatti vedo due numeri diversi, ovvero per farti un esempio,
in NUM_RIGA 104617 mentre in NUMERO 185268,
in NUM_RIGA 104618 mentre in NUMERO 185269
in NUM_RIGA 104641 mentre in NUMERO 185292.
Non dovrebbe partire da 1 il campo NUM_RIGA? Non capisco perchè parte invece da un numero così alto..
Grazie!

Karl Donaubauer

unread,
Dec 29, 2021, 1:44:15 PM12/29/21
to
Salve,

LEO72:
> ...
> infatti vedo due numeri diversi, ovvero per farti un esempio,
> in NUM_RIGA 104617 mentre in NUMERO 185268,
> in NUM_RIGA 104618 mentre in NUMERO 185269
> in NUM_RIGA 104641 mentre in NUMERO 185292.
> Non dovrebbe partire da 1 il campo NUM_RIGA? Non capisco perchè parte invece da un numero così alto..

Non conosco i tuoi dati. Peró le parentesi quadre non sembrano impostate
correttamente e la sottrazione è utile solo se buoi "saltare" molti
record. Cosa ricevi se invece di

DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<="
& [tblRIGHEDDTLOMBARDI.NUMERO])-104540 AS NUM_RIG

usi

DCount("*","tblRIGHEDDTLOMBARDI","NUMERO<=" &
[tblRIGHEDDTLOMBARDI].[NUMERO]) AS NUM_RIG

?

#LEO72

unread,
Dec 29, 2021, 2:02:39 PM12/29/21
to
Mi da:
Errore di sintassi nell'espressione. Operando o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra virgolette.

Karl Donaubauer

unread,
Dec 29, 2021, 2:31:19 PM12/29/21
to
Salve,

#LEO72:
> Karl Donaubauer ha scritto:
>>> ...
>>> infatti vedo due numeri diversi, ovvero per farti un esempio,
>>> in NUM_RIGA 104617 mentre in NUMERO 185268,
>>> in NUM_RIGA 104618 mentre in NUMERO 185269
>>> in NUM_RIGA 104641 mentre in NUMERO 185292.
>>> Non dovrebbe partire da 1 il campo NUM_RIGA? Non capisco perchè parte invece da un numero così alto..
>> Non conosco i tuoi dati. Peró le parentesi quadre non sembrano impostate
>> correttamente e la sottrazione è utile solo se buoi "saltare" molti
>> record. Cosa ricevi se invece di
>> DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<="
>> & [tblRIGHEDDTLOMBARDI.NUMERO])-104540 AS NUM_RIG
>> usi
>>
>> DCount("*","tblRIGHEDDTLOMBARDI","NUMERO<=" &
>> [tblRIGHEDDTLOMBARDI].[NUMERO]) AS NUM_RIG
>> ...
> Mi da:
> Errore di sintassi nell'espressione. Operando o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra virgolette.

È la sintassi per il testo SQL. Nell'editore della query devi usare:

NUM_RIG: DCount("*";"tblRIGHEDDTLOMBARDI";"NUMERO<=" &
[tblRIGHEDDTLOMBARDI].[NUMERO])

#LEO72

unread,
Dec 30, 2021, 3:39:30 AM12/30/21
to
Buongiorno Karl,
ho inserito la funzione che mi hai indicato, mi da sempre il risultato che ti ho indicato in precedenza,
cioè NUM_RIGA 104617 mentre in NUMERO 185268, ecc.

Karl Donaubauer

unread,
Dec 30, 2021, 6:18:06 AM12/30/21
to
Salve,

#LEO72:
> Karl Donaubauer ha scritto:
>>>>> ...
>>>>> infatti vedo due numeri diversi, ovvero per farti un esempio,
>>>>> in NUM_RIGA 104617 mentre in NUMERO 185268,
>>>>> in NUM_RIGA 104618 mentre in NUMERO 185269
>>>>> in NUM_RIGA 104641 mentre in NUMERO 185292.
>>>>> Non dovrebbe partire da 1 il campo NUM_RIGA? Non capisco perchè parte invece da un numero così alto..
>>>> Non conosco i tuoi dati. Peró le parentesi quadre non sembrano impostate
>>>> correttamente e la sottrazione è utile solo se buoi "saltare" molti
>>>> record. Cosa ricevi se invece di
>>>> DCount("tblRIGHEDDTLOMBARDI.NUMERO","tblRIGHEDDTLOMBARDI","tblRIGHEDDTLOMBARDI.NUMERO<="
>>>> & [tblRIGHEDDTLOMBARDI.NUMERO])-104540 AS NUM_RIG
>>>> usi
>> ...
>> NUM_RIG: DCount("*";"tblRIGHEDDTLOMBARDI";"NUMERO<=" &
>> [tblRIGHEDDTLOMBARDI].[NUMERO])
> ...
> ho inserito la funzione che mi hai indicato, mi da sempre il risultato che ti ho indicato in precedenza,
> cioè NUM_RIGA 104617 mentre in NUMERO 185268, ecc.

Come detto, non conosco la tua applicazione e i tuoi dati. Potrebbe
essere che il risultato sia semplicemente corretto?

Stai praticamente confrontando i record della query con la tabella. Se
la tua query esclude molti record che esistono nella tabella, allora il
risultato potrebbe essere potenzialmente corretto.

In questo caso per ottenere un numero consecutivo che inizia con 1,
invece di usare la tabella nella funzione DCount, dovresti usare
un'altra query che esclude gli stessi record.

#LEO72

unread,
Dec 30, 2021, 6:36:09 AM12/30/21
to
D'accordo Karl, provo ad usare una nuova query.
Ti ringrazio molto per l'aiuto.
Ciao
Leo
0 new messages