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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Paginando através de um Recordset
Wesley Oliveira
não registrado
ENUNCIADA !
Postada em 27/01/2009 10:59 hs   
Colegas quero criar uma paginação em um Recordset, ate que consegui fazer a paginação, mas quando fui criar um filtro aparece uma mensagem de erro "OBJECT VARIABLE OR WITH BLOCK VARIABLE NOT SET" só da erro quando uso um filtro. Segue o Código:

PS. SEM O WHERE FUNCIONA.

Private Sub cmdcriapagina_Click()

Set rst = New ADODB.Recordset
sql = "SELECT TEMAS,TIPOS FROM TEMAS WHERE TIPOS LIKE '" & txttipo & "%' ORDER BY TEMAS"
rst.CursorLocation = adUseServer
rst.CursorType = adOpenStatic
rst.LockType = adLockReadOnly
rst.PageSize = 10

Set rst.ActiveConnection = BancoSQL
rst.Open sql

Call exibe_pagina(1)
cmdproxima.Enabled = True
cmdcriapagina.Enabled = False
cmdanterior.Enabled = True

End Sub

Private Sub exibe_pagina(pagina)
rst.AbsolutePage = pagina
tamanhopagina = rst.PageSize
contador = 1
lblnpage.Caption = pagina

lstPagina.Clear
While (Not rst.EOF) And (contador <= tamanhopagina)
    lstPagina.AddItem rst(0)
    rst.MoveNext
    contador = contador + 1
Wend

' exibe os valores
lblreg.Caption = rst.RecordCount
lblpage.Caption = rst.PageSize
lblregpage.Caption = rst.PageCount

End Sub

Private Sub cmdproxima_Click()
If rst.AbsolutePage <> -3 Then
  Call exibe_pagina(rst.AbsolutePage)
  cmdanterior.Enabled = True
Else
  MsgBox " Chegamos a Última pagina "
  Call exibe_pagina(rst.PageCount)
End If
End Sub

AGRADEÇO ATENÇÃO
   
Álvaro
Pontos: 2843
GUARULHOS
SP - BRASIL
ENUNCIADA !
Postada em 27/01/2009 15:27 hs            
Wesley você tentou rodar esse filtro sem o order by e/ou o order by sendo ordenado pelo tipos e não por temas?
   
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 27/01/2009 15:56 hs            
Talvez se você retirar o Order By, como o Álvaro disse, deve resolver o seu problema.
   
Wesley Oliveira
não registrado
ENUNCIADA !
Postada em 27/01/2009 16:23 hs   
Colegas vcs tinham razão, tirei o order by e funcionou.

Aproveitando este topico, Criei um sistema de album digital. Para melhor a agilidade de busca e deixar o minimo de campos possível no sistema. Quero uma ajuda de vcs.
Tem como em apenas um textBox informar todos os tipos de busca. EX: praia2008; carnaval2008; faculdade2008...Tenho todos os album cadastrado em um banco de dados e estas informações seria a descrição do album.

No momento tenho 4 TextBox com os Nomes Descrição A, Descrição B, Descrição C, Descrição D e meu objetivo e ter apenas um TextBox Com O nome Descrição

tem como fasser isso???

   
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 29/01/2009 09:45 hs            
Por que você, ao invés de informar os tipos de busca numa TextBox, prencha uma ListView ou ListBox com os dados que você deseja pesquisar, assim você não precisa criar tantos TextBox e (eu acho) fica melhor para visualizar assim. Foi só uma idéia. Pode ser que alguém sugira outra idéia melhor.
 
Até mais.
 
   
Wesley Oliveira
não registrado
ENUNCIADA !
Postada em 29/01/2009 10:08 hs   
Colegas, brigado pela atenção.

Consegui resolver meu problema com um código bem simples, segue o código para compartilhar com todos os colegas


         Wpalavra = Split(txtdescricao.Text, ";") 'o comando cria uma ARRAY com os ítens separados por ";"
         Wcomando = "SELECT TEMAS,CARACTERÍSTICAS,[ASSIT TEMA],DESCRIÇÃO,TIPOS FROM TEMAS "
         For Wx = 0 To UBound(Wpalavra)
             Wdescricao = "(DESCRIÇÃO like '%" & Wpalavra(Wx) & "%' and "
             Wclassificacao = "[ASSIT TEMA] like '%" & txtclassificacao.Text & "%' and "
             Wtipo = "TIPOS like '%" & txttipo & "%' and "
             Wcaracteristica = "CARACTERÍSTICAS like '%" & txtcaracteristica & "%')"
             Wcomando = Wcomando & IIf(Wx = 0, "where ", " or ") & Wdescricao & Wclassificacao & Wtipo & Wcaracteristica
         Next Wx
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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