Jump to content
set#1

Adicionar dados na tabela usando .AddNew

Recommended Posts

set#1

Bom voltar aqui de novo depois de tanto tempo.

Senhores, tenho um formulario em Access que recebe dados e deve guarda-los numa tabela tbDadosGerais.

Os campos estao unbound e tenho la um botao Gravar onde tem o seguinte codigo:

Private Sub btGravar_Click()
    Dim Resp As Integer
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set conn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    rs.Open "tbDadosGerais", conn, adOpenDynamic, adLockOptimistic, adCmdTable
    
    If IsNull(Me.txtAutor) Or IsNull(Me.cbxTipoDoc) Or IsNull(Me.cbxTipoFich) Or IsNull(Me.txtAssunto) Or IsNull(Me.txtDatadeMovimento) Or IsNull(Me.txtDistribuicao) Or IsNull(Me.txtLink) Or IsNull(Me.txtMatricula) Or IsNull(Me.txtTitulo) Or IsNull(Me.txtVersao) Then
        MsgBox "Verifique se todos campos estao preenchidos", vbInformation, "Campos invalidos"
        Cancel = True
    Else
        With rs
                .AddNew
                .Fields("Autor") = Me.txtAutor
                .Fields("Matricula") = Me.txtMatricula
                .Fields("DatadeMovimento") = Me.txtDatadeMovimento
                .Fields("TipoDoc") = Me.cbxTipoDoc
                .Fields("TipoFich") = Me.cbxTipoFich
                .Fields("Titulo") = Me.txtTitulo
                .Fields("Versao") = Me.txtVersao
                .Fields("PalavraChave") = Me.txtPalavraChave
                .Fields("Assunto") = Me.txtAssunto
                .Fields("Distribuicao") = Me.txtDistribuicao
                .Fields("Link") = Me.txtLink
                .Fields("Observacao") = Me.txtObservacao
                .Update
                  
            End With
                
                MsgBox "Documento e sua localizacao gravados com Sucesso!", vbInformation, "Dados Gravados"
                   LimparDadosGerais
                Resp = MsgBox("Deseja adicionar mais algum documento?", vbExclamation + vbYesNo, "Confirme")
                    If Resp = vbYes Then
                    Else
                        DoCmd.Close
                        DoCmd.OpenForm "frmMenu"
                    End If
    End If
End Sub

O metodo: LimparDadosGerais devera limpar os campos deppois de gravar na tabela.

Tenho erro no ponto .update que diz:

Index or primary key cannot contain a null value.

O formulario quando abre ja carrega o nome do Autor como sendo o usuario actual e a matricula 'e filtrada segundo o Autor.

A chave primaria e' apenas o ID(na tabela) = Matricula(no formulario)

O que pode estar a acontecer?

Obrigado

Share this post


Link to post
Share on other sites
set#1

Nao, ele ainda nao 'e AutoNumber, mas pretendo que seja.

Mas olhando agora ao codigo, vejo que faltou colocar a linha do ID, que seria me.txtID ai penso que ia gravar certo?

Se desta maneira pode gravar, como seria sendo o ID automatico?

E tenho o mesmo erro para o OnLoad do formulario vazio:

Private Sub Form_Load()
    DoCmd.GoToRecord , , acNewRec
    Me.txtMatricula.SetFocus
    Me.txtAutor = Forms![Login].[txtUsuario]
End Sub

A ideia 'e abrir um novo formulario para nova introducao de dados.

Os dados sao mesmos citados nos fields onde a chave primaria 'e o ID.

Share this post


Link to post
Share on other sites
jpaulino

Não faz sentido seres tu a definir o ID mas sim fazer isso automáticamente.

Na tabela de Access defines o campo ID como AutoNumber e deve resolver o problema.

Share this post


Link to post
Share on other sites
set#1

Sim, na verdade nao faz sentido e o final 'e ser automatico. Como ainda tou em desenvolvimento, e para nao ter que depois zerar o autonumber por isso deixei manual.

Vou mudar e verificar como se comporta.

Share this post


Link to post
Share on other sites
set#1

Bom, depois de colocar o ID como Autonumber ja nao tenho nenhum erro.

Valeu

(((Peace&Love)))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.