Pagina 1 di 1
[Risolto] Chiave primaria
Inviato: sabato 18 novembre 2017, 13:37
da salrandazzo
Provo ad importare una tabella da altre applicazioni, tipicamente da Access.
Copio i dati in un foglio di calcolo e poi incollo per creare una nuova tabella.
Inizialmente i campi sono tutti automaticamente varchar.
Il primo campo per me deve essere ID, che poi servirà come link in altre tabelle, es: ordini linka ID_Cliente al campo ID della tabella clienti.
Quindi lo cambio in Integer (o long integer) e imposto il valore automatico.
Il genio capisce che deve essere una chiave primaria, e ci mette l'icona della chiavetta.
Ma quando cerco di salvare mi dice "Impossibile cambiare la colonna ID. Preferite eliminare la colonna e applicare un nuovo formato?".
No, non voglio eliminare la colonna. Ma se rispondo "no" il genio toglie il valore automatico e salva. Quindi non ho la chiave primaria.
Che fare?
Fra l'altro, se non c'è la chiave primaria la tabella non si può modificare.
La domanda è: come faccio ad importare una tabella senza perdere la chiave primaria? Senza doverne definire un'altra, mandando a pallino tutte le relazioni con le altre tabelle?
Re: Chiave primaria
Inviato: sabato 18 novembre 2017, 19:22
da charlie
Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui:
viewforum.php?f=16
Per una panoramica delle regole consulta il Manuale di sopravvivenza.
Buon proseguimento.
Re: Chiave primaria
Inviato: domenica 19 novembre 2017, 7:34
da charlie
Ciao, mi sono trovato talvolta davanti al problema da te descritto risolvendolo soltanto con l'aggiunta di un nuovo campo chiave primaria.
Ma nel tuo caso hai la possibilità, continuando a lavorare in ambiente Windows, di importare direttamente le tabelle di Access senza passare da un foglio di calcolo.
E' sufficiente scegliere Collega ad un database esitente e selezionare Access nel menu a discesa nella procedura guidata di creazione di un nuovo database.
Avrai le tue tabelle con le stesse chiavi primarie che avevi.
Re: Chiave primaria
Inviato: domenica 19 novembre 2017, 9:08
da salrandazzo
Grazie ancora Charlie!
SI, ci avevo provato ad importare direttamente da msAccess. Con pessimi risultati, visto che mi dice che gli manca qualcosa. Probabilmente devo installare qualcosa, ma non so cosa.
Me la caverò facendogli aggiungere un campo ID al momento dell'importazione. Vuol dire che perderò le connessioni con altre tabelle, ma al momento posso rimediare, non è un disastro.
D'altra parte le migrazioni non sono quasi mai un processo facile.
Adesso, se non hai altre idee, mi metto a studiare come gestire MySQL.
Eppure mi pare strano, che almeno via ODBC, non si possa separare una applicazione su file odb dai dati su un altro file odb. Mah.....
Grazie ancora.
Salvatore
Re: Chiave primaria
Inviato: domenica 19 novembre 2017, 11:08
da charlie
No, deve funzionare senza aggiunte.
Il mio ambiente operativo non è Windows, ma ho fatto una capatina in W7 per controllare e mi collego ad un file .mdb creato appositamente con Access 2003 senza problemi.
Re: Chiave primaria
Inviato: domenica 19 novembre 2017, 18:26
da salrandazzo
E così pensavo che fosse.
Le differenze che vedo sono:
- Il mio è un file accdb per Access 2007, il tuo è mdb per versioni precedenti
- Il mio è windows 10, il tuo è windows 7.
Uno di questi due elementi, o entrambi, crea un disturbo. Vedremo di chiarire.
Grazie!
Salvo
Re: Chiave primaria
Inviato: domenica 19 novembre 2017, 18:37
da unlucky83
mmm...puoi allegare il foglio di calcolo che ti genera il problema del settaggio della chiave primaria in INTEGER?
Non vorrei che Calc assegni per caso a qualche campo il formato testo,così da rendere eterogenea la colonna ID, numeri e testi, che poi importando in Base ti impedisce di ridefinire integer il campo.
E' un'ipotesi remota
Re: Chiave primaria
Inviato: venerdì 29 dicembre 2023, 18:21
da AleMur
Buonasera, sembra che questo post non sia risolto, o almeno io mi trovo nello stesso problema..
@charlie ho controllato che la colonna ID in CALC sia tipo numerico.. mi puoi aiutare? (rif. progetto Veterinario)
Grazie
Re: Chiave primaria
Inviato: sabato 30 dicembre 2023, 12:01
da charlie
Buongiorno, vediamo di chiudere l'argomento, se possibile.
- Sul foglio elettronico (Calc, Excel, ...) selezioniamo e copiamo l'intera zona dati (compresa la prima riga che contiene l'intestazione colonna che diventerà il nome campo) ma escludendo l'eventuale colonna ID.
- Clic destro e incollare nell'area delle tabelle di Base.
- Nella finestra di dialogo che si apre scegliere le opzioni:
.
- Screenshot 2023-12-30 alle 11.48.59.png (34.21 KiB) Visto 1357 volte
.
e confermare con Crea.
- Troveremo una tabella con aggiunto un campo chiave primaria ID che comincia con 1 (ma non è un problema).
- Modifichiamo la tabella impostando il campo ID come Valore automatico.
Se al punto 3 si procede con Avanti, anzichè con Crea, si ha la possibilità di impostare il tipo campo, uno per uno, nel caso in cui il copia/incolla inserisca un tipo diverso da quello in origine.
Re: Chiave primaria
Inviato: sabato 30 dicembre 2023, 12:49
da AleMur
Ok, prezioso come sempre..
Ho un problemino però.. l'incollaggio dati me lo permette solo su un database appena creato e non su quello che vorrei (tasto destro e non mi dà possibilità di incolla / incolla speciale). Appena possibile ti mando screenshot se serve. Per il file calc, posso metterlo però modificando dati per una questione privacy
Re: Chiave primaria
Inviato: sabato 30 dicembre 2023, 13:30
da charlie
Appena verificato, funziona su qualsiasi database. Accertati che sia aperta la pagina delle tabelle e non quella dei formulari che si apre di default per i database esistenti.
Re: Chiave primaria
Inviato: domenica 31 dicembre 2023, 16:05
da AleMur
Perdonami Charlie la niubbiaggine.. non mi ero accorto che ero il formulari.
Per me risolto almeno questo! .
Grazie infinite e cari Auguri di Buon Anno!
Re: Chiave primaria
Inviato: domenica 31 dicembre 2023, 16:07
da AleMur
Perdonami Charlie la niubbiaggine.. non mi ero accorto che ero il formulari
Per me risolto almeno questo!
Grazie infinite e cari Auguri di Buon Anno!