Jump to content
Fórum Script Brasil
  • 0

Erro Ao Gravar No Bd


alepe

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...