[ACCESS] Aggiungere un progressivo ad una tabella già esistente!

martedì 18 settembre 2007 - 11.32

iltexano Profilo | Newbie

Buongiorno a tutti. Sono capitato su questo forum mentre cercavo info e aiuto su di una problematica che devo risolvere a breve.

La questione è quella oggetto del topic, ossia se è possibile, e come, aggiungere un numero progressivo ad una tabella gia esistente con diverse centinaia di record.

grazie, Manuel

alx_81 Profilo | Guru

>Buongiorno a tutti.
Ciao!

>La questione è quella oggetto del topic, ossia se è possibile,
>e come, aggiungere un numero progressivo ad una tabella gia esistente
>con diverse centinaia di record.
basta andare nel Design View (Visualizzazione struttura) della tabella in questione ed aggiungere la colonna, definendola di tipo AutoNumber (Contatore).

>
>grazie, Manuel
di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

iltexano Profilo | Newbie

ci avevo pensato anche io, ma questo non è valido per un solo archivio statico? cioè se poi viene cancellato qualcosa, la numerazione resta progressiva?

alx_81 Profilo | Guru

>ci avevo pensato anche io, ma questo non è valido per un solo
>archivio statico? cioè se poi viene cancellato qualcosa, la numerazione
>resta progressiva?
no, rimangono i buchi..
se ti serve una numerazione che crea un progressivo sempre seguente, te lo devi fare applicativamente, andando a ricavare i buchi della numerazione per riutilizzare gli "slot liberi"..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

iltexano Profilo | Newbie

una cosa cosi?

CREATE TABLE #tmp
(
Codice varchar(6) NOT NULL,
Descrizione varchar(25) NOT NULL,
NumRiga int NOT NULL IDENTITY (1, 1),
) ON [PRIMARY]
GO

lbenaglia Profilo | Guru

>una cosa cosi?
>
>CREATE TABLE #tmp
> (
> Codice varchar(6) NOT NULL,
> Descrizione varchar(25) NOT NULL,
> NumRiga int NOT NULL IDENTITY (1, 1),
> ) ON [PRIMARY]
>GO

No, quello è comando T-SQL per SQL Server che definisce una nuova tabella temporanea locale che ha una colonna IDENTITY (paragonabile come funzionalità al data type Autonumber di Access).

Applicativamente significa che devi scrivere delle query che implementano la logica che ti serve...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>Applicativamente significa che devi scrivere delle query che
>implementano la logica che ti serve...
Quoto, e a tal scopo ti passo un post.
Si basa su SQL Server, ma puoi facilmente capire la logica per reimplementarlo anche su access..

http://blogs.dotnethell.it/suxstellino/Non-Equi-Join.-Ricavare-il-primo-buco-di-un-campo-contatore__10003.aspx

Alx81 =)

http://blogs.dotnethell.it/suxstellino

iltexano Profilo | Newbie

ok ragazzi ora mi hanno dato delle informazioni piu chiare, sarebbe di grande aiuto nonchè molto apprezzato se mi deste delle indicazioni, visto che devo lavorare su access e l'ultimo lavoro l'ho fatto 10 anni fa..

allora la questione è questa:

ho una tabella con dentro dei campi che mi serviranno per generare un codice che andrà su di un tesserino.
tra i campi presenti quelli che mi interessano sono

tra parentesi la lunghezza del campo

-codiceprovincia(3) --> che sarà il primo numero del tesserino
-codiceprogressivo(6) --> un numero che va da 000001 a 999999 per ogni provincia (ovviamente può essere minore)
-con(3) ---> un numero identificativo dell'attività economica
-numfut(3) ---> per ora deve essere 000
-controllo(1) ---> che sarà un carattere di controllo che dovrò inventare io
-codtessera(16) --> che conterrà il codice finale che racchiude i campi sopracitati in uno unico

Ora cosa devo ottenere?

1)devo aggiornare la tabella e dare ad ogni provincia un numero progressivo come specificato SE il codiceprogressivo NON FOSSE gia presente, ed in quel caso sarebbe completo su tutta la provincia

2)aggiornare il con (codice dell'attività economica) in questo modo:
----2a) se presente lasciare cosi
----2b) se mancante in quel record ma presente su un altro record della stessa provincia copiarlo
----2c) se completamente mancante porre degli 000

3) inventarmi un codice di controllo, di UNA sola cifra, con la più ampia libertà!

Infine, il tutto deve andare a riempire la tabella codtessera, che sarà di 16 caratteri!

Grazie per la collaborazione ed estrema disponibilità!

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5