Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Ao Gravar No Bd


alepe

Pergunta

Error " Run Time Error 91

Object Variable or with block variable not set"

O programa trabalha com dois ActiveXDatacombo e fax um calculo de produto qtde * valor unitario e grava em um BD chamado comanda ao clicar no incluir ele da esse erro.

Aguém pode me ajudar

Private Sub cmdincluir_Click()
Dim txtvltotal, txtvalorunitario, txtvalortotal, txtcodigodoproduto, txtquantidade As Integer
Dim txtnomedaloja, txtdescricaodoproduto As String
Dim txtdatadacomanda As Data

dtocomanda.Recordset.Open
txtnomedaloja = dtocomanda("nomedaloja")
txtdatadacomanda = dtocomanda("datadacomanda")
txtquantidade = dtocomanda("quantidade")
txtcodigodoproduto = dtocomanda("codigodoproduto")
txtdescricaodoproduto = dtocomanda("descriçãodoproduto")
txtvalorunitario = dtocomanda("valorunitário")
txtvalortotal = dtocomanda("valortotal")

dtocomanda.Recordset.AddNew 'permite adcionar novo registro
txtnomedaloja = dcoloja.Text
txtdatadacomanda = lbldata.Caption
txtquantidade = txtqtde.Text
txtcodigodoproduto = txtcodprod.Text
txtdescricaodoproduto = txtdescricao.Text
txtvalorunitario = txtvlunitario.Text
txtvalortotal = txtvltotal.Text

dtocomanda.Recordset.Update 'permite adcionar novo registro

End Sub

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Após executar a alteração deu esse erro.

Error Run-time error 3709 - Operação não permitida em um objeto com referencia a uma conexão fechada ou invalida

Private Sub cmdincluir_Click()
Dim txtvltotal, txtvalorunitario, txtvalortotal, txtcodigodoproduto, txtquantidade As Integer
Dim txtnomedaloja, txtdescricaodoproduto As String
Dim txtdatadacomanda As Data
Dim dtcomanda As New ADODB.Recordset


dtcomanda.Open

txtnomedaloja = dtcomanda("nomedaloja")
txtdatadacomanda = dtcomanda("datadacomanda")
txtquantidade = dtcomanda("quantidade")
txtcodigodoproduto = dtcomanda("codigodoproduto")
txtdescricaodoproduto = dtcomanda("descriçãodoproduto")
txtvalorunitario = dtcomanda("valorunitário")
txtvalortotal = dtcomanda("valortotal")

dtcomanda.AddNew  'permite adcionar novo registro
txtnomedaloja = dcoloja.Text
txtdatadacomanda = lbldata.Caption
txtquantidade = txtqtde.Text
txtcodigodoproduto = txtcodprod.Text
txtdescricaodoproduto = txtdescricao.Text
txtvalorunitario = txtvlunitario.Text
txtvalortotal = txtvltotal.Text

dtcomanda.Update 'permite adcionar novo registro

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

No seu primeiro código você estava utilizando DAO, agora no segundo já está utilizando ADO. Afinal, qual dos dois você quer? Em relação ao erro que apareceu, foi porque você não especificou o objeto ADODB.Connection ao abrir a tabela. A linha...

dtcomanda.Open
... deveria ser algo do tipo:
dtcomanda.Open "tabela", cn, adopendynamic, adlockoptimistic

Onde "cn" é um objeto ADODB.Connection que é criado para realizar a conexão com o banco de dados (o arquivo em si). Se quiser um exemplo de como se utiliza ADO, dê uma olhada neste aqui: http://www.graymalkin.globalhosts.com.br/stuff/bd.zip. O código está todo comentado.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...