MS Access não é possível definir a chave primária na consulta de criação de tabela

0

Estou usando o MS Access 2016, tenho uma tabela no meu banco de dados vinculada a uma fonte externa por meio de uma conexão ODBC. Os dados são provenientes do MS Excel. Eu criei o Query e liguei a macro. Ele é executado corretamente, mas exclui a tabela anterior e remove a chave primária que eu configurei. Aqui está minha consulta 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));

Então, eu quero definir NAMEID como uma chave primária que permanecerá como chave primária depois de adicionar valores. Agradecemos antecipadamente

    
por Zubair Sultan 23.01.2018 / 13:26

1 resposta

0

Você precisa de INSERT INTO ... SELECT , não SELECT ... INTO

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

Tente:

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));

Isso não excluirá a tabela e deverá manter sua chave primária. Aviso do link MS acima:

If your destination table contains a primary key, make sure you append unique, non-Null values to the primary key field or fields; if you do not, the Microsoft Access database engine will not append the records.

    
por 23.01.2018 / 14:42