MOVENEXT

GUTOTEC 30/09/2011 15:37:18
#385604
Pessoal, estou fazendo umas Setas .... e a Seta Primeiro e Ultimo , deu certo
só que as Setas Proximo e Anterior tão meio enjuadas de funcionar

Do jeito que esta abaixo , nao vai pro proximo registro aparece a mensagem
You are already at the Last Record! No Moving On

tentei varias formas.... alguem ???

Obg Abs


Citação:


Private Sub cmdProximo_Click()

Conectar

Dim Rst As ADODB.Recordset
Set Rst = New ADODB.Recordset

Dim sSelect As String
sSelect = [Ô]EXECUTE SP_CADTIPPROD_BUSCACOD 1, [ô][Ô] & txttipo_cod.Text & [Ô][ô] [Ô]
conexao.CursorLocation = adUseClient
Rst.Open sSelect, conexao, adOpenStatic
Rst.MoveNext

If Rst.EOF Then
MsgBox [Ô]You are already at the Last Record! No Moving On![Ô], vbCritical
Rst.MovePrevious
End If

Call LoadFields(Rst!TIPO_COD, Rst!TIPO_EMPR, Rst!TIPO_DESC)

Rst.Close

conexao.Close
Set Rst = Nothing
Set conexao = Nothing

End Sub

JCARLOS 30/09/2011 15:59:01
#385609
Resposta escolhida
Abra a sua conexão em uma outra rotina. Ex:
Private sub Consulta ( )
aqui vc abre a conexão... rst.open.......
end sub
Private Sub cmdProximo_Click()
Rst.MoveNext
If Rst.EOF Then
MsgBox [Ô]You are already at the Last Record! No Moving On![Ô], vbCritical
Rst.MovePrevious
else
Call LoadFields(Rst!TIPO_COD, Rst!TIPO_EMPR, Rst!TIPO_DESC)
End If
End sub
Private Sub cmdAnterior_Click()
Rst.MovePrevious
If Rst.BOF Then
MsgBox [Ô]You are already at the Top of Record! No Moving On![Ô], vbCritical
Rst.MoveFirst
else
Call LoadFields(Rst!TIPO_COD, Rst!TIPO_EMPR, Rst!TIPO_DESC)
End If
End sub
[ô]Obs neste caso, as variável rst precisa ser declarada na seção de Declarações pra valer pra todas as rotinas.
end sub
GUTOTEC 30/09/2011 23:37:38
#385629
O Problema é assim o Recordset esta vindo vazio por isso o Erro

Tentei criar um outro Recordset com outro nome mais nao deu certo

Necessariamente nao posso Ficar refazendo os selects nos botoes pra funcionar

?
GUTOTEC 01/10/2011 15:33:38
#385643
Pensei que iria ficar de 1 forma.
mais resolvi de outra para nao dar Erro


Citação:


Private Sub cmdProximo_Click()
conectar

Dim Rst As New ADODB.Recordset
Dim Rst2 As New ADODB.Recordset
Dim sSelect As String
sSelect = [Ô]EXECUTE SP_CADTIPPROD_SELECT 1[Ô]
conexao.CursorLocation = adUseClient
Rst2.Open sSelect, conexao, adOpenStatic

SQL = [Ô]SELECT TOP 1 * FROM cadtipprod [Ô] _
& [Ô]WHERE tipo_cod > [Ô] & Val(txttipo_cod.Text) & [Ô] ORDER BY tipo_cod[Ô]
Rst.Open SQL, conexao

If Rst.EOF Then
MsgBox [Ô]Fim do Arquivo [Ô]
Exit Sub
Else
Call LoadFields(Rst!TIPO_COD, Rst!TIPO_EMPR, Rst!TIPO_DESC)
End If

Rst2.Close
Set Rst2 = Nothing

Desconectar
End Sub

MARCELO.TREZE 01/10/2011 16:20:09
#385645
Guto sinceramente, talvez aqui alguém até posso descordar de mim, mas...

Eu aboli esta maneira de navegar a muito tempo, imagine se vc possui 2000 registro no banco e ter de ir clicando até encontrar o desejado, seria um negócio meio demorado e massante num acha.

minha dica é um unico textbox para pesquisar e listar em um grid, no grid vc selecionaria o item desejado, acredito ser a melhor forma existente.
GUTOTEC 01/10/2011 20:42:50
#385655
Olá Treze, é esse SQL tirei do fundo do bau .....
infelismente o codigo nao aceitou movenext
Tópico encerrado , respostas não são mais permitidas