MS Access non è in grado di impostare la chiave primaria durante la creazione della query della tabella


0

Sto usando MS Access 2016, ho una tabella nel mio database che è collegata a una fonte esterna tramite una connessione ODBC. I dati provengono da MS Excel. Ho creato query e collegato alla macro. Funziona correttamente ma elimina la tabella precedente e rimuove la chiave primaria che ho impostato. Ecco la mia query Sql:

SELECT AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN,
    AllStaff.Lastname, AllStaff.Firstname, AllStaff.RFCARDNUMB, 
    AllStaff.[PERSONAL R], AllStaff.VENDOR INTO AllStaff1
FROM AllStaff
WHERE (((AllStaff.NAMEID) Is Not Null));

Quindi voglio impostare NAMEID come chiave primaria che rimarrà chiave primaria dopo l'aggiunta di valori. Grazie in anticipo

Risposte:


0

È necessario INSERT INTO ... SELECT, nonSELECT ... INTO

Sintassi ufficiale : INSERT INTO target [(field1[, field2[, …]])] [IN externaldatabase] SELECT [source.]field1[, field2[, …] FROM tableexpression

Provare:

INSERT INTO AllStaff1 (AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN, 
    AllStaff.Lastname, AllStaff.Firstname, AllStaff.RFCARDNUMB, AllStaff.[PERSONAL R], 
    AllStaff.VENDOR)
select AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN, AllStaff.Lastname, 
    AllStaff.Firstname, AllStaff.RFCARDNUMB, AllStaff.[PERSONAL R], AllStaff.VENDOR
FROM AllStaff
WHERE (((AllStaff.NAMEID) Is Not Null));

Ciò non eliminerà la tabella e dovrebbe conservare la chiave primaria. Avviso dal collegamento MS sopra:

Se la tabella di destinazione contiene una chiave primaria, assicurarsi di aggiungere valori univoci e non Null al campo o ai campi della chiave primaria; in caso contrario, il motore di database di Microsoft Access non aggiungerà i record.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.