Notifications
Clear all

Evitar Cadastro de duplicidade no Banco Acess com Formulário

Página 1 / 3

jeffsj
Posts: 12
Registered
Topic starter
(@jeffsj)
Active Member
Entrou: 6 anos atrás

Boa noite Expertises,
Estou criando um formulário para cadastrar as notas fiscais de devolução num Bd access.
Para isso funcione não pode ter nota fiscal repetidas na tabela.
Até o momento não consegui fazer ao clicar no botão gravar que ele faça essa verificação.
Quando clico no botão salvar ele dá erro
"erro em tempo de execução '424':
Objeto é obrigatório"
Quando clico em Depurar
o campo
"Set consulta = banco.OpenRecordset(ComandoSQL)" está marcado e quando passamos o mouse ele aparece"consulta=vazio"

Private Sub Btn_Salvar_Click()
    Dim TipoD As String
    
    TipoD = Cmb_Tipo
    rs.AddNew

    rs.Fields("Mes") = Me.Txt_Mes_Ocorrencia.Text
    rs.Fields("Ano") = Me.Txt_Ano_Ocorrencia.Text
    rs.Fields("Nota_Fiscal") = Me.Txt_Nota_Fiscal.Text
    
      If TipoD = "D" Then
       rs.Fields("Tipo_D") = Me.Cmb_Tipo.Text
    Else
       rs.Fields("Tipo_R") = Me.Cmb_Tipo.Text
    End If
    
    
    'Rs.Fields("Tipo") = Me.Cmb_Tipo.Text
    rs.Fields("Data_Ocorrencia") = Me.Txt_Data_Ocorrencia
    rs.Fields("Data_Faturamento") = Me.Txt_Data_Faturamento.Text
    rs.Fields("Prazo_Entrega") = Me.Txt_N_Dias.Text
    rs.Fields("Entregador") = Me.Cmb_Entregador.Text
    rs.Fields("Codigo_Cliente") = Me.Txt_Codigo_Clie.Text
    rs.Fields("Razao_Social") = Me.Txt_Razao_Social.Text
    rs.Fields("Cidade") = Me.Txt_Cidade.Text
    rs.Fields("Condicao_Pgto") = Me.Txt_Condicao_Pgto.Text
    rs.Fields("Valor_NF") = Me.Txt_Valor_NF.Text
    rs.Fields("Peso_NF") = Me.Txt_Peso.Text
    rs.Fields("Mesa") = Me.Txt_Mesa.Text
    rs.Fields("Supervisor") = Me.Txt_Supervisor.Text
    rs.Fields("Vdd") = Me.Txt_Vdd.Value
    rs.Fields("Vendedor") = Me.Txt_Vendedor.Text
    rs.Fields("Setor_Responsavel") = Me.Cmb_Setor_Responsavel.Text
    rs.Fields("Motivo_Devolucao") = Me.Cmb_Motivo.Text
    rs.Fields("Observacoes_Finan") = Me.Txt_Observacao.Text
    
Dim ComandoSQL As String

ComandoSQL = "select * from Cadastro_Devolucao where nota_Fiscal = '" & Txt_Nota_Fiscal.Text & "'"

Call conecta
Set consulta = banco.OpenRecordset(ComandoSQL)

While Not consulta.EOF

If consulta = Txt_Nota_Fiscal.Text Then
MsgBox "Nota já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
End If

Call desconecta: Exit Sub

consulta.MoveNext
Wend

    MsgBox "Cadastro da Devolução Realizado com Sucesso", vbInformation, "Sistema Devolução"
    Call LimparDados    

End Sub

Minha conexão está assim

Public MiConexao As New ADODB.Connection
Public rs As New ADODB.Recordset

Sub conecta()

    Set MiConexao = New ADODB.Connection
        With MiConexao
            .Provider = "microsoft.ACE.OLEDB.15.0"
            .ConnectionString = "Data Source=" & ThisWorkbook.Path & "BD_DEVOLUCAO.accdb"
            .Open
        End With
            
End Sub

Sub desconecta()

    Set rs = Nothing
    Set MiConexao = Nothing

End Sub
Responder
10 Respostas
Wagner Morel
Posts: 4044
Registered Registered
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 9 anos atrás

jeffsj,

Boa noite!

Sem ver seu arquivo para poder rodar e depurar fica complicado falar alguma coisa. Até porque nem sempre o depurador para exatamente na linha que tem problema.

No pequeno exemplo que fiz há bastante tempo atrás, você tem como estudar todo o tipo de conexão com um Banco de Dados em Acces, inclusive com as operações básicas (consulta, alteração, inserção e exclusão de dados).

Veja se isso pode te ajudar.

Responder
jeffsj
Posts: 12
Registered
Topic starter
(@jeffsj)
Active Member
Entrou: 6 anos atrás

Boa noite Wagner,

Não consigo anexar o meu arquivo ele diz que é muito grande, sendo que o arquivo está com 77kb.

Posso colocar um link do google drive aqui?

Abs,

Responder
Wagner Morel
Posts: 4044
Registered Registered
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 9 anos atrás

jeffsj,

Bom dia!

Você estudou o arquivo que lhe enviei? Não adiantou de nada?

Quanto a anexar seus arquivos, deixe-o apenas com umas cinco linhas (tanto Excel quanto o Access), compacte com .ZIP e anexe-os aqui. Se não for possível, pode colocar num site de compartilhamento de arquivos sim. Todavia, só posso abrir nesses site, aqui em casa. No trabalho é bloqueado.

Responder
jeffsj
Posts: 12
Registered
Topic starter
(@jeffsj)
Active Member
Entrou: 6 anos atrás

Bom dia Wagner,
Estudei sim, tanto que estava com problemas em carregar meu listview e foi vendo seu arquivo que consegui descobri o meu erro.
Estou usando o conexão com ADO, e estava tentando fazer a carregar o listview de outra forma.
Mas tentei de tudo para impedir o cadastro duplicado e não consegui.
Se puder me ajudar, neste momento só falta esse ponto. Neste momento.

https://drive.google.com/open?id=1PT_1o0yMHehbN_zf2ytjUd7-hN_YsyPp

Abraços

Responder
Página 1 / 3