Newsgroup: it.comp.appl.access
Titolo: Modifica numerazione ID...

Mi scuso...per quanto fatto... e cmq... ti ringrazio per l'eccezione....
  Creati due nuove tabella che abbiano la stessa struttura dell'attuale
tabelle Anagrafe e dell'attuale tabella Esenzioni che chiamerai
rispettivamente Anagrafe1 ed Esenzioni1.
  e questo l'ho fatto....
  Apriti 4 recordset: due sulle attuali due tabelle e due sulle nuove due
tabelle.
  in sostanza qui ti riferisci a 4 nuovi campi, uno per Tabella giusto ???
  l'ho fatto in modalità Struttura > Inserisci Righe una per ogni tabella
  chiamandolo 1 ed è Testo...
  Leggi tutti i record della tabella Anagrafe e duplicali così come sono
nella tabella Anagrafe1;
  fatto anche questo, ...apro la tabella Anagrafe1 e vedo il campo 1 vuoto,
il campo ID
  che effettivamente cominciava da 25 ora comincia da 1 con progressivo
numerico......
   per ogni record, dopo averlo duplicato in Anagrafe1 memorizza la sua
NUOVA chiave primaria (ID) e ricerca nella tabella Esenzioni tutti i record
che hanno come chiave esterna la VECCHIA chiave primaria del record appena
registrato:
  purtroppo qui non ci ho capito nulla...
   copia detti record nella tabella Esenzione1 avendo cura di sotituire la
loro chiave esterna con la NUOVAchiave primaria usata nella registrazione
del record in Anagrafe1.
  Quando tutti i record di Anagrafe ed Esenzioni risulteranno duplicati in
Anagrafe1 ed Esenzioni1, cancella le tabelle Anagrafe ed Esenzioni e cambia
il nome di Anagrafe1 in Angrafe e di Esenzioni1 in Esenzioni.
  Idem...
  ciao ...

   ciao ...
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ---------------------------------------------
Ok... Roberto... allora...
la tabella Anagrafe ha questa struttura....
Codice_ASL            Testo
ID_assistito               Chiave primaria-contatore
Cognome                  testo
Nome                         testo
Codice_Fiscale         testo
Sesso                         testo
Nascita                        Data/Ora
Comune_Nascita        testo
Comune_Residenza   testo
Distretto                        testo
N_Protocollo                testo
Telefono                       testo
Medico                       testo
Indirizzo                      testo
Codice_regionale     testo
des_Nascita              testo
Des_residenza         testo
trasf                            Numerico
cap                             testo
asl_appartenenza     testo
la tabella Esenzioni ha questa....
ID_Assistito              Numerico
Stato                          testo
Inizio_esenzione       Data/ora
Fine_Esenzione        Data/ora
prossimo_rinnovo     Data/ora
Codice_Esenzione   Testo
trasf                            Numerico
Ciao Roberto... e grazie della pazienza...

"SuperPippo®" <ik0qd...@SPAMlibero.it> ha scritto nel messaggio
news:lLWS9.94836$TC5.3...@twister1.libero.it...
[CUT]> Ok... Roberto... allora...

Creati una tabella Anagrafe1 che abbia la stessa struttura della tabella
Angrafe e una tabella Esenzioni1 che abbia la stessa struttura della tabella
Esenzioni.
Creati una maschera non associata che contenga solamente un pulsante di
comando.
A fronte dell'evento "Su clic" del pulsante di comando genera il seguente
codice VBA:
Dim rstAnagrafe As DAO.Recordset
Dim rstAnagrafe1 As DAO.Recordset
Dim rstEsenzioni As DAO.Recordset
Dim rstEsenzioni1 As DAO.Recordset
Dim VecchioID As Long
Dim NuovoID As Long
Set rstAnagrafe = CurrentDb.OpenRecordset("Anagrafe")
Set rstAnagrafe1 = CurrentDb.OpenRecordset("Anagrafe1")
Set rstEsenzioni = CurrentDb.OpenRecordset("Esenzioni")
Set rstEsenzioni1 = CurrentDb.OpenRecordset("Esenzioni1")
rstAnagrafe.MoveFirst
Do Until rstAnagrafe.EOF
VecchioID = rstAnagrafe!ID_Assistito
rstAnagrafe1.AddNew
rstAnagrafe1!Codice_ASL = rstAnagrafe!Codice_ASL
rstAnagrafe1!Cognome = rstAnagrafe!Cognome
rstAnagrafe1!Nome = rstAnagrafe!Nome
rstAnagrafe1!Codice_Fiscale = rstAnagrafe!Codice_Fiscale
rstAnagrafe1!Sesso = rstAnagrafe!Sesso
rstAnagrafe1!Nascita = rstAnagrafe!Nascita
rstAnagrafe1!Comune_Nascita = rstAnagrafe!Comune_Nascita
rstAnagrafe1!Comune_Residenza = rstAnagrafe!Comune_Residenza
rstAnagrafe1!Distretto = rstAnagrafe!Distretto
rstAnagrafe1!N_Protocollo = rstAnagrafe!N_Protocollo
rstAnagrafe1!Telefono = rstAnagrafe!Telefono
rstAnagrafe1!Medico = rstAnagrafe!Medico
rstAnagrafe1!Indirizzo = rstAnagrafe!Indirizzo
rstAnagrafe1!Codice_regionale = rstAnagrafe!Codice_regionale
rstAnagrafe1!des_Nascita = rstAnagrafe!des_Nascita
rstAnagrafe1!Des_residenza = rstAnagrafe!Des_residenza
rstAnagrafe1!trasf = rstAnagrafe!trasf
rstAnagrafe1!cap = rstAnagrafe!cap
rstAnagrafe1!asl_appartenenza = rstAnagrafe!asl_appartenenza
NuovoID = rstAnagrafe1!ID_Assistito
rstAnagrafe1.Update
rstEsenzioni.MoveFirst
Do Until rstEsenzioni.EOF
If rstEsenzioni!ID_Assistito = VecchioID Then
rstEsenzioni1.AddNew
rstEsenzioni1!ID_Assistito = NuovoID
rstEsenzioni1!Stato = rstEsenzioni!Stato
rstEsenzioni1!Inizio_Esenzione = rstEsenzioni!Inizio_Esenzione
rstEsenzioni1!Fine_Esenzione = rstEsenzioni!Fine_Esenzione
rstEsenzioni1!prossimo_rinnovo = rstEsenzioni!prossimo_rinnovo
rstEsenzioni1!Codice_Esenzione = rstEsenzioni!Codice_Esenzione
rstEsenzioni1!trasf = rstEsenzioni!trasf
rstEsenzioni1.Update
End If
rstEsenzioni.MoveNext
Loop
rstAnagrafe.MoveNext
Loop
Set rstAnagrafe = Nothing
Set rstAnagrafe1 = Nothing
Set rstEsenzioni = Nothing
Set rstEsenzioni1 = Nothing
End Sub
A questo punto apri tale maschera e pigia il pulsante di comando:  i record
della tabella Anagrafe verranno copiati nella tabella Anagrafe1 con
ID_assistito a partire da 1 senza buchi di numerazione; i record di tabella
Esenzioni verranno copiati nella tabella Esenzioni1 con la chiave esterna
ID_Assistito che punta al relativo record copiato in Anagrafe1.
Terminata questa operazione, cancella le tabelle Anagrafe ed Esenzioni e
rinomina la tabella Anagrafe1 in Anagrafe ed Esenzione1 in Esenzione.
Non mi ricordo se tu usi Access 97 o una versione successiva di Access; se
usi Access 2000 o 2002 ricordati di aggiungere ai riferimenti del tuo
database i riferimenti alla libreria Microsoft DAO, altrimenti la routine
VBA che ti ho postato ti darà errore.


 Roberto
-------------------
Ciao Roberto... dire che sei mostruosamente BRAVO è dire poco...
ho fatto quanto dicevi...ed è andato tutto liscio...
anche se ho dovuto aspettare con la clessidra circa un quarto d'ora.
ho usato Access 97 ma uso anche le altre versioni......
ad un certo punto dandomi
errore di riferimento alla libreria ho caricato la libreria Microsoft DAO.
ora dovrei fare la cancellazione di Anagrafe ed Esenzioni...
ma mi dice che è in relazione....e potrei perdere... etc...
che faccio a questo punto ???
cancello le relazioni e poi le devo ricreare ???
infine... vorrei sapere... una operazione del genere è affidabile ???
nel senso che le relazioni tra utenti ed esenzioni sono corrette ??
certo dopo aver fatto le cancellazioni delle 2 tabelle vecchie
vorrei fare un controllo campione su alcuni record...giusto ??
Ciao Roberto... sei eccezzionale... veramente !!!

 Ciao Roberto...


 Roberto
----------------------->
ciao Roberto... scusa spiegami a cosa ti riferisci con eventuali indici...
ti riferisci che creando le relazioni...devo scrivere ..
applica integrità referenziale...
aggiorna ed elimina campi correlati a catena...
poi non mi ricordo il tipo di Join che devo inserire...
il numero 1, 2 oppure 3  ???
infine... non ho capito perchè la tabella Stato...
che prima era in relazione 1 a molti con Esenzione...
non me la fa mettere più uno a molti ma rimane
relazione non definita... come mai ???
ciao...

 ciao...
--


 Per cosa la adoperi?
-------------------------------------------->
la Tabella Stato è composta da 3 campi
ID-Stato - contatore
Codice_Stato -  testo.. con numeri da 1 a 4
Stato_Esenzione - corrispondente ai numeri 1-attiva
2-sospesa 3-in attesa di verifica 4-revocata...
.. la tabella stato in origine non era relazionata...
ma l'ho fatto in seguito pensando che .......
potessero esserci
più stati di esenzione... ma in realta non mi seve a nulla
in quanto gli stati sono sempre 1= Attiva...
quindi anche se non è in relazione fa nulla ... giusto ??
però quello che non mi spiego e come mai non riesco
a mettere in relazione 1 > molti....
inoltre un'altra cosa che non mi spiego è questa....
ho fatto dei controlli campione...e sembra tutto
a posto riguardo i codici esenzioni, data nascita N_Prot.
ma...non capisco con ID...
trovo Pinco che in origine era 3995 ora è 3882 differenza di 113
Pallino era 7555 ora è 7434 differenza 121
ciccio era 9512 ora è 9375 differenza 137
pluto era 438 ora è 407 differenza 31...
ma se il DB cominciava da 25... la differenza non dovrebbe
essere di 24 numeri...
beh... sicuramente li stò dando io i numeri...
Ciao Rob...
Ciao Roberto e buona domenica da Giuseppe...

 Ciao Roberto e buona domenica da Giuseppe...
Buona domenica a te.


 tabella Anagrafe; questo sarà vero sino a quando non cancellerai un
record.
----------------->
ok... mi sento più tranquillo...ora modifico il DB originale...
(mantenendo sempre una copia del vecchio)
e domani parto con questo modificato ...
Ciao...e grazie infinite per l'aiuto...