AJUDA MOVER REGISTROS DESCONETADOS
Bom dia a Todos.
Meu problema é o seguinte, tive que fazer um cadastro onde todos os botões de Incluir, alterar, localizar, etc , são feitos com o recordset fechado,ou seja, toda vez que o usuário Clicar em um desses botões é feita uma nova conexão abrindo o recordset fazendo a ação e depois fechando ele, pois nesse mesmo form, não existe só o cadastro, tem outras rotinas que chamam outros objetos e outros forms conforme determinação da empresa.
Até aà tudo bem, tudo está funcionando, consegui resolver esses problema, com exceção dos comandos para mover o registros para o próximo e anterior, até consegui resolver parcialmente conforme o código abaixo movendo um registro para frente:
a dúvida é:
Como dar mensagem de erro, e travar o andamento do cursor quando chegar no último registro, já tentei como abaixo :
Até dá o Beep, mas não termina a rotina e cai o sistema, na mensagem: Bof e Oef são verdadeiros, ou o registro atual foi excluÃdo....
Alguém pode me dar uma Luz ?
Meu problema é o seguinte, tive que fazer um cadastro onde todos os botões de Incluir, alterar, localizar, etc , são feitos com o recordset fechado,ou seja, toda vez que o usuário Clicar em um desses botões é feita uma nova conexão abrindo o recordset fazendo a ação e depois fechando ele, pois nesse mesmo form, não existe só o cadastro, tem outras rotinas que chamam outros objetos e outros forms conforme determinação da empresa.
Até aà tudo bem, tudo está funcionando, consegui resolver esses problema, com exceção dos comandos para mover o registros para o próximo e anterior, até consegui resolver parcialmente conforme o código abaixo movendo um registro para frente:
Private Sub cmdNext_Click()
Call MinhaConexao
Set cursor = New ADODB.Recordset
cursor.Open "Select * From Tabela Where Codigo = " & txtCod.Text & "", Conexao, adOpenKeyset, adLockOptimistic
txtCod.Text = cursor("Codigo") + 1
cursor.Close
cursor.Open "Select * From Tabela Where Codigo = " & txtCod.Text & "", Conexao, adOpenKeyset, adLockOptimistic
Call ListaRegistro
Set Conexao = Nothing
End Sub
a dúvida é:
Como dar mensagem de erro, e travar o andamento do cursor quando chegar no último registro, já tentei como abaixo :
Private Sub cmdNext_Click()
Call MinhaConexao
Set cursor = New ADODB.Recordset
cursor.Open "Select * From Tabela Where Codigo = " & txtCod.Text & "", Conexao, adOpenKeyset, adLockOptimistic
txtCod.Text = cursor("Codigo") + 1
cursor.Close
cursor.Open "Select * From Tabela Where Codigo = " & txtCod.Text & "", Conexao, adOpenKeyset, adLockOptimistic
If cursor.EOF = True Then
Beep
Exit Sub
Else
Call ListaRegistro
End If
Set Conexao = Nothing
End Sub
Até dá o Beep, mas não termina a rotina e cai o sistema, na mensagem: Bof e Oef são verdadeiros, ou o registro atual foi excluÃdo....
Alguém pode me dar uma Luz ?
olá...
por favor alguém pode me orientar em algo ?
Abraço,
Val
por favor alguém pode me orientar em algo ?
Abraço,
Val
SC[S22]RR[S38]
Carinha, acho que ninguém usa assim... normalmente abre-se o form e já mantém o banco conectado. Somente ao encerrar (form_queryunload) é que encerra a conexão... Deste modo que está tentando só vai dar trabalho e não há vantagem alguma!
pois é André, eu até sei disso, o problema é que foi uma exigência do cliente, e tive que adaptar, mas a criatividade deve fazer parte de nosso curriculum de programador, de tanto tentar acabei conseguindo, vou postar como deu certo,s e acaso alguém precise um dia..
Private Sub cmdNext_Click()
Dim Ultimo As Integer
Call MinhaConexao
Set rs = New ADODB.Recordset
rs.Open "Select Codigo From tabela", Conexao, 3, 4
rs.MoveLast
Ultimo = rs("Codigo").Value
Set Conexao = Nothing
Call MinhaConexao
Set cursor = New ADODB.Recordset
cursor.Open "Select * From tabela Where Codigo = " & TxtFields(0).Text & "", Conexao, 3, 2
If cursor("Codigo") = Ultimo Then
Beep
Exit Sub
Else
TxtFields(0).Text = cursor("Codigo") + 1
cursor.Close
cursor.Open "Select * From tabela Where Codigo = " & TxtFields(0).Text & "", Conexao, 3, 2
Call ListaRegistro
End If
Set Conexao = Nothing
End Sub
Teoricamente está ótimo, mas se excluir um registro intermediário, essa rotina pára de funcionar...
Putz, pior que é mesmo André...
vc tem idéia como faço prá resolver esse problema agora ?
Abraço,
vc tem idéia como faço prá resolver esse problema agora ?
Abraço,
Tópico encerrado , respostas não são mais permitidas