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

Run Time Error '91'


frata

Pergunta

Estou com um pequeno problema; quando clico para acessar meu programa ele me retorna a seguinte mensagem:

1 - Primeiro: Data Access Error

Então como eu clico no OK, me retorna:

2- Run Time Error '91'

Object variable or with block variable not set

__________________________________________

Acho importante informa que:

a -Este programa se conecta a um banco de dados do Access, usando o Data Control

b - Este programa foi desenvolvido numa máquina e estou tentando abrí-lo em outra, porém

ambas possuem a mesma versão do Office.

Não sei como resolver o problema.

Obrigado. Frata

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Oi desculpe...segue o código abaixo. Obrigado!! Frata.

Private Sub Command1_Click()

Dim resposta, excluir As String

On Error GoTo falha
excluir = "Informação do Sistema"
resposta = MsgBox("Você tem certeza que deseja excluir este registro ?", vbOKCancel, "Informação do Sistema")
If resposta = vbOK Then
Data1.Recordset.Delete
Data1.Recordset.MoveFirst
MsgBox "Registro excluído com sucesso", vbOKOnly, "Informação do stema"

End If

falha:
If Err.Number = 3021 Then
MsgBox "Não existe registro para ser excluído", , "Informação do sitema"
Data1.Recordset.AddNew

End If
End Sub

Private Sub Command2_Click()
Data1.Recordset.AddNew

If Save Then
Select Case MsgBox("Salvar Alterações?", vbQuestion + vbYesNo, "Informações do Sistema")
Case vbYes '6
If txtNome.Text = Empty Then

MsgBox "Informe o nome do cliente!", , "Informação do Sistema"
txtNome.SetFocus

Save = False

Action = vbDataActionCancel
txtNome.SetFocus
Exit Sub

ElseIf txtEndereço.Text = Empty Then

MsgBox "Informe Endereço do Cliente!", , "Infomação do Sistema"
txtEndereço.SetFocus

Save = False


txtEndereço.SetFocus
Action = vbDataActionCancel
txtEndereço.SetFocus

Exit Sub

End If

Case vbNo '7

Save = False


End Select

' foi colocado este código no final, para que o txtnome receba foco ao fim de cada cadastro'

txtNome.SetFocus

End If
End Sub





Private Sub Command3_Click()

Dim resposta, excluir As String


excluir = "Você tem certeza que deseja sair do Sistema?"
resposta = MsgBox("Você Tem Certeza que deseja Sair do Sistema ?", vbOKCancel, "Informação do Sistema")
If resposta = vbOK Then
End



End If



End Sub

Private Sub Command4_Click()

Busca = "Digite o nome do Cliente para consulta"
Procura = InputBox(Busca, "Pesquisa de Cliente")
Data1.Recordset.Index = "idxClientes"
Data1.Recordset.Seek ">=", Procura
If Data1.Recordset.NoMatch Then
Data1.Recordset.MoveFirst


End If
























End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer)

If Save Then
Select Case MsgBox("Salvar Alterações?", vbQuestion + vbYesNo, "Informações do Sistema")
Case vbYes '6
If txtNome.Text = Empty Then

MsgBox "Informe o nome do cliente!", , "Informação do Sistema"
txtNome.SetFocus

Save = False

Action = vbDataActionCancel
txtNome.SetFocus
Exit Sub

ElseIf txtEndereço.Text = Empty Then

MsgBox "Informe Endereço do Cliente!", , "Infomação do Sistema"
txtEndereço.SetFocus

Save = False


txtEndereço.SetFocus
Action = vbDataActionCancel
txtEndereço.SetFocus

Exit Sub

End If

Case vbNo '7

Save = False


End Select

' foi colocado este código no final, para que o txtnome receba foco ao fim de cada cadastro'

txtNome.SetFocus

End If
End Sub

Private Sub Text10_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub Text12_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub Text2_Change()
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub Text8_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub Text9_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub txtBairro_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtCidade_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtComplemento_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEndereço_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub txtNome_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))


End Sub

Private Sub txtOBS_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtUF_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Frata !

Quando ocorre erro desse tipo, é porque há alguma váriavel não configurada ( Set variavel = blablabla...)

No caso de se tratar com Bancos de dados, deve ser "RecordSet" ou a "ConnectionString"...tou chutando cara ;)

Agora uma dica para facilitar a compreensão de todos do fórum:

Quando ocorre erros, o VB-6 abre uma caixa de diálogo, escolha a opção "Debug" e o VB destaca a "linha do erro", geralmente em amarelo:

erro0.png

erroa.png

Então, basta colocar a "Sub" ou "Function" que apresentou o erro que assim fica mais fácil de ser detectado o erro... :D

No exemplo, eu propositalmente deixei sem "setar" o RecordSet (Rs.Open), e apresentou o mesmo erro que você citou...então, acho que tem algum RecordSet sem estar "setado"...

:rolleyes: :rolleyes: :rolleyes:

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

OI, será que é a isso que você se refere..?? Onde diz no código :Data1.Recordset.AddNew , fica sublinhado de amarelo,

mas eu não sei exatamente como resolver isso...ah, e antes aparece uma caixa de diálogo com a seguinte mensagem:

Compile error - Error in Loading DLL. Obrigado.

Private Sub Command2_Click()
Data1.Recordset.AddNew

If Save Then
Select Case MsgBox("Salvar Alterações?", vbQuestion + vbYesNo, "Informações do Sistema")
Case vbYes '6
If txtNome.Text = Empty Then

MsgBox "Informe o nome do cliente!", , "Informação do Sistema"
txtNome.SetFocus

Save = False

Action = vbDataActionCancel
txtNome.SetFocus
Exit Sub

ElseIf txtEndereço.Text = Empty Then

MsgBox "Informe Endereço do Cliente!", , "Infomação do Sistema"
txtEndereço.SetFocus

Save = False


txtEndereço.SetFocus
Action = vbDataActionCancel
txtEndereço.SetFocus

Exit Sub

End If

Case vbNo '7

Save = False


End Select

' foi colocado este código no final, para que o txtnome receba foco ao fim de cada cadastro'

txtNome.SetFocus

End If
End Sub

Editado por kuroi
Adicionar tag CODE
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,5k
×
×
  • Criar Novo...