VB 6 - RUN TIME ERROR 91
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
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
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
Coloca isso antes de abrir a conexão:
Set Cn = New ADODB.Connection
bom dia amigo.
na verdade ja tem esta linha no inicio....
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:
coloquei # antes e depois das variaveis que continham datas e horas. estou fazendo alguns testes agora, sera que ira resolver?
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?
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?
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?
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
se for verifique na tabela se o campo tem permissão para receber valores nulos ou em branco
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
Pois é, quando deu o erro dei um debug, e verifiquei que todas as variaveis estao com valores preenchidos....isso que é muito estranho...
abraços
tenta tirar o DoEvents da sub main
opa, vou testar, monitorar por um tempo e postar o resultado...
muito obrigado...
muito obrigado...
OPA, retirei e mesmo assim o erro persiste, e como sempre [Ô]de vez em quando[Ô]
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.
se não funcionar vamos tentar outra maneira de se fazer a conexão.
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
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
Tópico encerrado , respostas não são mais permitidas