Não Inserindo novos registros, ele atualiza o último registro em Ms access vba

2

Eu tenho um formulário feito em acesso ms e vba. Eu tenho este código em uma inserção com o padrão dado ao criar o botão DoCmd.GoToRecord , , acNewRec Meu formulário está vinculado a uma tabela e tabelas vinculadas a um banco de dados SQL. É adicionado com sucesso se a tabela não tiver registros ainda, mas se já houver um registro na tabela eo formulário for fechado e aberto novamente e adicionar novos dados novamente, ele não inserirá mais novas linhas de registro, apenas atualizará o último registro.

Depois que o formulário é chamado, clico no novo botão que limpa todo o valor da caixa de texto e, em seguida, insira um novo registro e clique em adicionar. O que aconteceu foi que ele apenas atualizará o último registro. e eu tenho um id de incremento automático. Alguém está experimentando um presente?

o código no meu botão de adição é este

Private Sub btnAdd_Click()
On Error GoTo Err_CustomerNew_Click


    DoCmd.GoToRecord , , acNewRec

Exit_CustomerNew_Click:
    Exit Sub

Err_CustomerNew_Click:
    MsgBox Err.Description
    Resume Exit_CustomerNew_Click

End Sub

nenhum script envolve apenas o formulário está vinculado a uma tabela vinculada a sql datbase. e também o recordsource do formulário é que estou usando a consulta não tabela diretamente. como Selecionar * da ordem de nome de tabela por id desc.

    
por Androidz 05.06.2015 / 04:51

2 respostas

0

Se este for um script que você está tentando escrever, poste o código e tentarei ajudá-lo. Se o script foi originalmente no MSAccess, o namespace pode ser um pouco diferente. Por exemplo, se o código dos dados não se assemelhar a um item de postback do formulário para SQL (por qualquer motivo), ou se a ação do campo estiver em algum lugar além do evento click de botão, ele não publicará seus dados no banco de dados e pode, na verdade, remover sua entrada do campo de formulário, dependendo de como seu script foi escrito.   Espero que ajude,                ClaireW

    
por 05.06.2015 / 05:37
0

Oi, eu descobri uma solução e não sei se é uma resposta apropriada, já que não tenho nenhuma experiência em vba. isso fará o truque de inserir novos registros com formulários vinculados em uma tabela vinculada de SQL e terá um valor de incremento automático de IDs. Quando o formulário é Aberto com registros existentes, o ID que foi capturado pelo formulário é o primeiro ID ou o ID mais recente na tabela. isso irá atualizar o registro sempre que você clicar no botão add usando neste comando DoCmd.GoToRecord , , acNewRec Depende se o seu usando ascendente ou descendente na sua consulta qual deles irá atualizar o registro e não inserir. Portanto, para inserir com êxito sem atualizar o registro existente, o formulário deve criar um novo conjunto de ID a ser inserido. tudo que você precisa fazer é ter um evento on_load e, nesse evento, adicionar esse código DoCmd.GoToRecord , , acNewRec para que, quando ele carregar um novo conjunto de registros, o formulário seja inserido e inserido. Espero que isso ajude.

    
por 07.06.2015 / 19:03

Tags