USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dificuldade em movimentação de registros
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 06/09/2007 21:48 hs            
Deixei o controle ADODC de lado e estou com grande dificuldade em me movimentar entre os registros, meu MoveNext só funciona do primeiro para o segundo registro, quando uso o MovePrevious dá erro, o MoveMin funciona.
exemplo de como estrou usando:

Dim cnncomando As New ADODB.Command
Dim rs_Pronaf As New ADODB.Recordset
 
para preencher os controles com os dados da tabela:
 
Private Sub Form_Load()

With cnncomando
    .ActiveConnection = cnnProjetos
    .CommandType = adCmdText
    .CommandText = " select * from projetos "
    Set rs_Pronaf = .Execute
End With
With rs_Pronaf

    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
   
End Sub
Para me movimentar para o seguinte registro:
 
Private Sub Cmd_proximo_Click()
With cnncomando
    .ActiveConnection = cnnProjetos
    .CommandType = adCmdText
    .CommandText = " select * from projetos "
    Set rs_Pronaf = .Execute
End With
With rs_Pronaf
rs_Pronaf.movenext
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
 
Alguem pode me dizer qual a rotina mais comum usada para isto, ou porque este meu código só passa para o segundo registro?
 
     
João Carlos jr.
RIBEIRÃO PRETO
SP - BRASIL
Postada em 08/09/2007 09:31 hs            
Jom para vc se movimentar entre os registros vc tem que estar com o recorset sempre aberto em uma unica pesquisa, o seu código está errado no botão de pesquisar mesmo, pq toda vez que vc clica em próximo ele sempre está dando uma nova string para o recordset, reiniciando sempre o recordset e indo sempre para o segundo registro.
 
Não sei se vc vai entender, mas para arrumar isso faça assim somente:
Private Sub Cmd_proximo_Click()
With rs_Pronaf
rs_Pronaf.movenext
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
 
assim vc vai conseguir se movimentar entre os registros.
 
Flw
 
Espero ter lhe ajudado
 

João Carlos Junior

Administrador de Redes - Windows 2003 Srv, Linux

    Desenvolvedor Visual Basic 6.0 com Access, SQL Server, VB .Net e Crystal Reports X

Iniciante em C# e ASP .NET

     
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 08/09/2007 10:49 hs            
Muito obrigado João, ajudou sim, agora veja o problema que estou passando...
 
Já consigo passar registro por registro com o MoveNext OK!

Consigo também mover para o primeiro registro com o MoveMin OK!

O MovePrevious não funciona e dá o seguinte erro:

Run Time Error '3219' Operação não permitida neste contexto

O MoveMax não funciona e dá o seguinte erro:

Run time error '2147217884(80040e24)
o conjunto de linhas não oferece suporte para busca regressiva

abaixo todo o codigo:

general declarations

Dim cnncomando As New ADODB.Command
Dim rs_Pronaf As New ADODB.Recordset
Private Sub Command1_Click()
With rs_Pronaf
 
rs_Pronaf.MoveNext
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
Private Sub Command2_Click()
With rs_Pronaf
 
rs_Pronaf.MoveMin
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
Private Sub Command3_Click()
With rs_Pronaf
 
rs_Pronaf.MoveMax
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
Private Sub Command4_Click()
With rs_Pronaf
 
rs_Pronaf.MovePrevious
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
Private Sub Form_Load()
With cnncomando
    .ActiveConnection = cnnProjetos
    .CommandType = adCmdText
    .CommandText = " select * from projetos "
    Set rs_Pronaf = .Execute
End With
With rs_Pronaf
    Text1 = !cod
    Text2 = !nome
    Text3 = !municipio
End With
End Sub
     
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 08/09/2007 10:53 hs            
Onde tiver MoveMin leia-se Move_F_I_R_S_T
 
onde tiver MoveMax leia-se Move_L_A_S_T
 
É erro aqui do forum, sempre acontece com estes nomes
     
João Carlos jr.
RIBEIRÃO PRETO
SP - BRASIL
Postada em 08/09/2007 11:02 hs            
O problema seu é como vc abrindo esse BD, vc tem que mudar o tipo de conexão ao invéz de adcmdtext vc pode usar adOpenStatic, vc pode colocar a sua pesquisa assim:
RS.Open "select * from projetos", cnnProjetos, adOpenStatic, adLockOptimistic
 
 

João Carlos Junior

Administrador de Redes - Windows 2003 Srv, Linux

    Desenvolvedor Visual Basic 6.0 com Access, SQL Server, VB .Net e Crystal Reports X

Iniciante em C# e ASP .NET

     
JOM
BOM JESUS DA LAPA
BA - BRASIL
ENUNCIADA !
Postada em 08/09/2007 14:22 hs            
Perfeito!
 
Além de ter resolvido estes problemas resume-se o codigo a apenas uma linha, será que posso fazer deste mesmo jeito nos outros pontos do projeto onde utilizo a mesma forma de fazer a conexão?
   
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página