RUN TIME ERROR 91
Galera, já vi alguns tópicos a respeito deste erro, mas as respostas não foram muito esclarecedoras, por isso estou postando novamente.
No meu projeto tenho um combobox que permite alterar a classificação da tabela (por código ou por nome). Acontece que antes mesmo de entrar no cadastro já ocorre o erro e aponta para a linha onde ajusto o Ãndice de acordo com a opção selecionada no combo (em negrito). Segue abaixo o código do sistema:
Dim RsData As Recordset
Dim TbCidade As Recordset
Private Sub Form_Load()
Me.Left = (((TelaPrincipal.ScaleWidth - Me.Width) \ 2) + TelaPrincipal.Left)
Me.Top = (((TelaPrincipal.ScaleHeight - Me.Height) \ 2) + TelaPrincipal.Top)
Este o é combo para classificação
CmbClassifica.Clear
CmbClassifica.AddItem ("Código")
CmbClassifica.AddItem ("Nome")
CmbClassifica.ListIndex = 0
MontaGrid ' Monta grid vazio
Set TbCidade = DB.OpenRecordset("Cidades", dbOpenTable)
TbCidade.Index = "CODIGO"
PreencheGrid
'configura propriedades do Data Control
DtaCidade.DatabaseName = App.Path & "\Dados\Cadastro.mdb"
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY codigo"
DtaCidade.Refresh
Set RsData = DtaCidade.Recordset
TxtCodigo.DataField = "codigo" & ""
TxtNome.DataField = "nome" & ""
CmbUf.DataField = "uf" & ""
'posiciona o ponteiro no primeiro registro
RsData.MoveFirst
End Sub
Private Sub CmbClassifica_Click()
'Set TbCidade = DB.OpenRecordset("Cidades", dbOpenTable) -> se esta linha estiver sem comentário, então funciona, senão, ocorre o erro 91.
If CmbClassifica.ListIndex = 0 Then
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY codigo"
TbCidade.Index = "codigo"
Else
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY nome"
TbCidade.Index = "nome"
End If
DtaCidade.Refresh
Set RsData = DtaCidade.Recordset
TxtCodigo.DataField = "codigo" & ""
TxtNome.DataField = "nome" & ""
CmbUf.DataField = "uf" & ""
'posiciona o ponteiro no primeiro registro
'RsData.MoveFirst
MontaGrid
PreencheGrid
End Sub
Por que tenho abrir novamente a tabela para funcionar, onde está o erro ?
Valeu,
Mark
No meu projeto tenho um combobox que permite alterar a classificação da tabela (por código ou por nome). Acontece que antes mesmo de entrar no cadastro já ocorre o erro e aponta para a linha onde ajusto o Ãndice de acordo com a opção selecionada no combo (em negrito). Segue abaixo o código do sistema:
Dim RsData As Recordset
Dim TbCidade As Recordset
Private Sub Form_Load()
Me.Left = (((TelaPrincipal.ScaleWidth - Me.Width) \ 2) + TelaPrincipal.Left)
Me.Top = (((TelaPrincipal.ScaleHeight - Me.Height) \ 2) + TelaPrincipal.Top)
Este o é combo para classificação
CmbClassifica.Clear
CmbClassifica.AddItem ("Código")
CmbClassifica.AddItem ("Nome")
CmbClassifica.ListIndex = 0
MontaGrid ' Monta grid vazio
Set TbCidade = DB.OpenRecordset("Cidades", dbOpenTable)
TbCidade.Index = "CODIGO"
PreencheGrid
'configura propriedades do Data Control
DtaCidade.DatabaseName = App.Path & "\Dados\Cadastro.mdb"
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY codigo"
DtaCidade.Refresh
Set RsData = DtaCidade.Recordset
TxtCodigo.DataField = "codigo" & ""
TxtNome.DataField = "nome" & ""
CmbUf.DataField = "uf" & ""
'posiciona o ponteiro no primeiro registro
RsData.MoveFirst
End Sub
Private Sub CmbClassifica_Click()
'Set TbCidade = DB.OpenRecordset("Cidades", dbOpenTable) -> se esta linha estiver sem comentário, então funciona, senão, ocorre o erro 91.
If CmbClassifica.ListIndex = 0 Then
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY codigo"
TbCidade.Index = "codigo"
Else
DtaCidade.RecordSource = "SELECT codigo,nome,uf FROM Cidades ORDER BY nome"
TbCidade.Index = "nome"
End If
DtaCidade.Refresh
Set RsData = DtaCidade.Recordset
TxtCodigo.DataField = "codigo" & ""
TxtNome.DataField = "nome" & ""
CmbUf.DataField = "uf" & ""
'posiciona o ponteiro no primeiro registro
'RsData.MoveFirst
MontaGrid
PreencheGrid
End Sub
Por que tenho abrir novamente a tabela para funcionar, onde está o erro ?
Valeu,
Mark
Bom erro diz que Variável objeto ou bloco With não definida
O erro deve estar ai
O erro deve estar ai
Amigo, o significado do erro eu sei, quero saber onde está o erro !
Valeu pela tentativa !
Valeu pela tentativa !
Tópico encerrado , respostas não são mais permitidas