VB 6 - RUN TIME ERROR 91

LUISLPC 19/05/2012 22:41:00
#402331
Boa noite amigos

De vez em quando quando executo o codigo abaixo, recebo run time error 91 Object variable or with block variable not set

  Cn.Execute ([Ô]insert into consumo(equipamento,data_on, data_off, hora_on, hora_off, consumo, tempo_ligado)[Ô] _
& [Ô]values([ô][Ô] & strequipamento & [Ô][ô],[ô][Ô] & strdataon & [Ô][ô],[ô][Ô] & strdataoff & [Ô][ô],[ô][Ô] & strhoraon & [Ô][ô],[ô][Ô] & strhoraoff & [Ô][ô],[ô][Ô] & strconsumo & [Ô][ô],[ô][Ô] & strtempoligado & [Ô][ô])[Ô])


so que nao eh sempre que ocorre, o que poderia ser?

ja andei pesquisando, mas nao encontrei nada porque o estranho é que nao eh sempre...

obrigado
ROBIU 20/05/2012 07:16:02
#402336
Coloca isso antes de abrir a conexão:
Set Cn = New ADODB.Connection
LUISLPC 20/05/2012 09:54:26
#402338
bom dia amigo.

na verdade ja tem esta linha no inicio....

  Option Explicit

Global Cn As ADODB.Connection
Global rs As ADODB.Recordset


Private Sub Main()
Dim strArquivo As String
Dim strLocal As String
Dim ConectaAccess As String

Load frmautomacao
frmautomacao.Show
DoEvents
Set Cn = New ADODB.Connection
Set rs = New ADODB.Recordset

strArquivo = [Ô]c:\autocasa\automacaocasa.mdb[Ô]
strLocal = App.Path
Set Cn = CreateObject([Ô]ADODB.Connection[Ô])
ConectaAccess = [Ô]Driver={Microsoft Access Driver (*.mdb)};[Ô] & _
[Ô]Dbq=[Ô] & strArquivo & [Ô];[Ô] & _
[Ô]DefaultDir=[Ô] & strLocal & [Ô];[Ô] & _
[Ô]Uid=Administrador;Pwd=xxxxx;[Ô]

Cn.Open ConectaAccess
End Sub


depois vem as rotinas de inserir, consultar, excluir, etc....

pelo que pesquisei em um forum dizia que era pq estava sendo inseridas datas em algumas variaveis, ai fiz o seguinte:
um exemplo:

Public Function gravarconsumo2(ByVal strequipamento As String, _
strdataon As String, _
strdataoff As String, _
strhoraon As String, _
strhoraoff As String, _
strconsumo As String, _
strtempoligado As String) As Variant

Cn.Execute ([Ô]insert into consumo(equipamento,data_on, data_off, hora_on, hora_off, consumo, tempo_ligado)[Ô] _
& [Ô]values([ô][Ô] & strequipamento & [Ô][ô],#[Ô] & strdataon & [Ô]#,#[Ô] & strdataoff & [Ô]#,#[Ô] & strhoraon & [Ô]#,#[Ô] & strhoraoff & [Ô]#,[ô][Ô] & strconsumo & [Ô][ô],[ô][Ô] & strtempoligado & [Ô][ô])[Ô])

gravarconsumo2 = True

End Function

coloquei # antes e depois das variaveis que continham datas e horas. estou fazendo alguns testes agora, sera que ira resolver?
LUISLPC 20/05/2012 10:00:47
#402339
Opa

testei agora e ainda esta dando erro

o estranho é como comentei, nao eh sempre, e ja testei em outro pc e da mesma coisa....

sera que é porque tenho uma outra rotina de consulta rodando ao mesmo tempo em outro form?

FILMAN 20/05/2012 21:12:33
#402353
Verifique se isso acontece quando você deixa de passar algum valor para ser gravado

se for verifique na tabela se o campo tem permissão para receber valores nulos ou em branco
LUISLPC 20/05/2012 22:39:41
#402354
Boa noite amigo

Pois é, quando deu o erro dei um debug, e verifiquei que todas as variaveis estao com valores preenchidos....isso que é muito estranho...

abraços
MARCELO.TREZE 21/05/2012 11:00:16
#402387
tenta tirar o DoEvents da sub main




LUISLPC 21/05/2012 15:47:18
#402403
opa, vou testar, monitorar por um tempo e postar o resultado...

muito obrigado...
LUISLPC 21/05/2012 16:05:56
#402405
OPA, retirei e mesmo assim o erro persiste, e como sempre [Ô]de vez em quando[Ô]

MARCELO.TREZE 21/05/2012 19:04:04
#402412
Bom eu penso que a sub main está sendo executada de vez em quando então o que você poderia tentar era definir cn ( set cn) na hora de consultar ou inserir para ver qual o resultado.

se não funcionar vamos tentar outra maneira de se fazer a conexão.

LUISLPC 24/05/2012 14:18:42
#402681
boa tarde amigos

pois eh, estou usando o cn agora cada vez e preciso fazer uma consulta ou gravaçao, até entao esta dando certo, vou monitorar mais uns 2 dias, se estiver ok encerro o topico...

obrigado marcelo e a todos pela ajuda
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas