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 WithWith 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 WithWith rs_Pronaf rs_Pronaf.movenext Text1 = !cod Text2 = !nome Text3 = !municipio End WithEnd 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?
|
|
|
|
|
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 WithEnd 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
|
|
|
|
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?
|
|
|