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

 

  Dicas

  Visual Basic    (Banco de Dados)

Título da Dica:  Filtrar Recordset já aberto - DAO
Postada em 8/10/2000 por Webmaster      Clique aqui para enviar email para o autor  webmaster@vbweb.com.br
Já tentou usar o método FILTER? Ex:

Sub FilterX()
  Dim dbsNorthwind As Database
  Dim rstPedidos As Recordset
  Dim intPedidos As Integer
  Dim strPaís As String
  Dim rstPedidosPaís As Recordset
  Dim strMessage As String

  Set dbsNorthwind = OpenDatabase("Northwind.mdb")
  Set rstPedidos = dbsNorthwind.OpenRecordset("Pedidos", _
                   dbOpenSnapshot)

  'Preenche o Recordset.
  rstPedidos.MoveLast
  intPedidos = rstPedidos.RecordCount

  'Obtém a entrada do usuário.
  strPaís = Trim(InputBox("Digite um " & _
            "país para filtrar em:"))

  If strPaís <> "" Then
    'Abre um objeto Recordset filtrado.
    Set rstPedidosPaís = FilterField(rstPedidos, _
                         "PaísDeDestino", strPaís)
    With rstPedidosPaís
      'Verifica RecordCount antes de preencher o Recordset;
      'caso contrário, um erro pode ser gerado.
      If .RecordCount <> 0 Then .MoveLast

      'Imprime o número de registros do objeto Recordset
      'original e do objeto Recordset filtrado.
      strMessage = "Pedidos no conjunto de registros " & _
                   "original: " & vbCr & intPedidos & vbCr & _
                   "Pedidos no conjunto de registros " & _
                   "filtrado (País = '" & strPaís & "'): " & _
                   vbCr & .RecordCount
      MsgBox strMessage
      .Close
    End With
  End If
  rstPedidos.Close
  dbsNorthwind.Close
End Sub

Function FilterField(rstTemp As Recordset, strField As _
                    String, strFilter As String) As Recordset
  'Define um filtro no objeto Recordset especificado e em
  'seguida abre um novo objeto Recordset.
  rstTemp.Filter = strField & " = '" & strFilter & "'"
  Set FilterField = rstTemp.OpenRecordset
End Function
Observação Para ver os efeitos de filtrar rstPedidos, você deve definir sua propriedade Filter e, em seguida, abrir um segundo objeto Recordset baseado em rstPedidos.
Observação: Quando você conhece os dados que deseja selecionar, em geral é mais eficiente criar um Recordset com uma instrução SQL. Este exemplo mostra como você pode criar apenas um Recordset e obter os registros de um país específico.

Sub FilterX2()
  Dim dbsNorthwind As Database
  Dim rstPedidos As Recordset
  Set dbsNorthwind = OpenDatabase("Northwind.mdb")

  'Abre um objeto Recordset que seleciona registros de
  'uma tabela baseada no país da remessa.
  Set rstPedidos = dbsNorthwind.OpenRecordset("SELECT * " & _
                   "FROM Pedidos WHERE PaísDeDestino = " & _
                   "'USA'", dbOpenSnapshot)
  rstPedidos.Close
  dbsNorthwind.Close
End Function
 


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