RUN-TIME ERROR 91
Olá pessoal,
Estou tendo uma certa dificuldade em encontrar a solução deste problema. Estou criando uma tela no vb6 de cadastro de produto, e quando clico para gravar produto dá o erro Run-time error [ô]91[ô] alguém pode me dar um help?
tem um pedaço do código onde esta dando o erro, o erro esta dando na linha: Temp.Recordset.AddNew
Dim Preco As Currency
Preco = MskPrCompra.Text
Temp.Recordset.AddNew
Temp.Recordset.Fields([Ô]codigo[Ô]) = MskCodigoProduto.Text
Temp.Recordset.Fields([Ô]descrição[Ô]) = LblDescrição.Text
Temp.Recordset.Fields([Ô]precounit[Ô]) = MskPrCompra.Text
Temp.Recordset.Fields([Ô]precovenda[Ô]) = MskPrVenda.Text
Temp.Recordset.Fields([Ô]quantidade[Ô]) = MskQtde.Text
Temp.Recordset.Fields([Ô]precototal[Ô]) = Format(Preco * Val(MskQtde.Text), [Ô]currency[Ô])
Temp.Recordset.Update
Estou tendo uma certa dificuldade em encontrar a solução deste problema. Estou criando uma tela no vb6 de cadastro de produto, e quando clico para gravar produto dá o erro Run-time error [ô]91[ô] alguém pode me dar um help?
tem um pedaço do código onde esta dando o erro, o erro esta dando na linha: Temp.Recordset.AddNew
Dim Preco As Currency
Preco = MskPrCompra.Text
Temp.Recordset.AddNew
Temp.Recordset.Fields([Ô]codigo[Ô]) = MskCodigoProduto.Text
Temp.Recordset.Fields([Ô]descrição[Ô]) = LblDescrição.Text
Temp.Recordset.Fields([Ô]precounit[Ô]) = MskPrCompra.Text
Temp.Recordset.Fields([Ô]precovenda[Ô]) = MskPrVenda.Text
Temp.Recordset.Fields([Ô]quantidade[Ô]) = MskQtde.Text
Temp.Recordset.Fields([Ô]precototal[Ô]) = Format(Preco * Val(MskQtde.Text), [Ô]currency[Ô])
Temp.Recordset.Update
Este erro é porque seu objeto recordset não foi instanciado:
algo assim:
Para mais detalhes, poste o código que carrega o objeto Temp
algo assim:
Set Temp=New Adodb.Recordset
Para mais detalhes, poste o código que carrega o objeto Temp
Roberto vou mandar em seu email pode ser?, estou meio perdido
ainda não consegui
Voce esta usando ADO ou DAO? qual seu banco?, voce declarou o TEMP como recordset e definiu uma database?
Depois dessa eu encerava o tópico !
Meu não é assim aumentando as letras que você vai ter mais credibilidade no fórum !
Meu não é assim aumentando as letras que você vai ter mais credibilidade no fórum !
Adilso estou usando objeto DAO; Banco de dados Access;
Declarei o Temp assim:
Public BancoDeDados As Database
Public TBClientes As Recordset
Public TBFornecedores As Recordset
Public TBProdutos As Recordset
Public TBFuncionários As Recordset
Public BuscaFornecedor As String
Public BuscaProduto As String
Public Temp As Recordset
Public BuscaCliente As String
A database esta assim:
Public Sub AbreArquivo()
Set BancoDeDados = OpenDatabase(App.Path & [Ô]\Dados.mdb[Ô])
Set TBClientes = BancoDeDados.OpenRecordset([Ô]clientes[Ô], dbOpenTable)
Set TBFornecedores = BancoDeDados.OpenRecordset([Ô]fornecedores[Ô], dbOpenTable)
Set TBProdutos = BancoDeDados.OpenRecordset([Ô]produtos[Ô], dbOpenTable)
Set TBFuncionários = BancoDeDados.OpenRecordset([Ô]Funcionário[Ô], dbOpenTable)
end sub
Declarei o Temp assim:
Public BancoDeDados As Database
Public TBClientes As Recordset
Public TBFornecedores As Recordset
Public TBProdutos As Recordset
Public TBFuncionários As Recordset
Public BuscaFornecedor As String
Public BuscaProduto As String
Public Temp As Recordset
Public BuscaCliente As String
A database esta assim:
Public Sub AbreArquivo()
Set BancoDeDados = OpenDatabase(App.Path & [Ô]\Dados.mdb[Ô])
Set TBClientes = BancoDeDados.OpenRecordset([Ô]clientes[Ô], dbOpenTable)
Set TBFornecedores = BancoDeDados.OpenRecordset([Ô]fornecedores[Ô], dbOpenTable)
Set TBProdutos = BancoDeDados.OpenRecordset([Ô]produtos[Ô], dbOpenTable)
Set TBFuncionários = BancoDeDados.OpenRecordset([Ô]Funcionário[Ô], dbOpenTable)
end sub
Tenta gravar dessa maneira...
Tabela.AddNew
Tabela([Ô]Campo[Ô]).Value = TextBox.Text
Tabela.Update
Não sei, eu faço dessa forma e funciona perfeitamente...
Tabela.AddNew
Tabela([Ô]Campo[Ô]).Value = TextBox.Text
Tabela.Update
Não sei, eu faço dessa forma e funciona perfeitamente...
vou tentar isso
Bom primeiro sugiro que mude sua conexão para ADO na minha opinião é bem melhor que DAO, mas tenho projetos desenvolvido em DAO também
Vamos Lá
Criando a Conexão com o Banco e setando as Tabelas
Em um modulo coloque
No LOAD do FORM coloque
No Clique do Botão coloque
Vamos Lá
Criando a Conexão com o Banco e setando as Tabelas
Em um modulo coloque
Public BancoDeDados As Database
Public Temp As Recordset
Public Sub AbreArquivo()
Set BancoDeDados = OpenDatabase(App.Path & [Ô]\Dados.mdb[Ô])
Set Temp = BancoDeDados.OpenRecordset([Ô]Produtos[Ô], dbOpenTable)
end sub
No LOAD do FORM coloque
Call AbreArquivo
No Clique do Botão coloque
IF Temp.BOF then
Temp.AddNew
Temp([Ô]codigo[Ô]) = MskCodigoProduto.Text
Temp([Ô]descrição[Ô]) = LblDescrição.Text
Temp([Ô]precounit[Ô]) = MskPrCompra.Text
Temp([Ô]precovenda[Ô]) = MskPrVenda.Text
Temp([Ô]quantidade[Ô]) = MskQtde.Text
Temp([Ô]precototal[Ô]) = FormatCurrency(Preco * Val(MskQtde.Text),2)
Temp.Update
Temp.Close
Else
Temp.MoveLast
Temp.AddNew
Temp([Ô]codigo[Ô]) = MskCodigoProduto.Text
Temp([Ô]descrição[Ô]) = LblDescrição.Text
Temp([Ô]precounit[Ô]) = MskPrCompra.Text
Temp([Ô]precovenda[Ô]) = MskPrVenda.Text
Temp([Ô]quantidade[Ô]) = MskQtde.Text
Temp([Ô]precototal[Ô]) = FormatCurrency(Preco * Val(MskQtde.Text),2)
Temp.Update
Temp.Close
End If
Estou tentando fazer o que nosso amigo filman postou mas a opção BOF não aparece. por exemplo if Temp.BOF.. o BOF não aparece
precisa acrescentar algum componente?
precisa acrescentar algum componente?
Tópico encerrado , respostas não são mais permitidas