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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Método FIND
¨Hennyere¨
Pontos: 2843
SALVADOR
BA - BRASIL
Postada em 27/01/2006 08:28 hs         
Dá pra mostrar um exemplo de como utilizar o método FIND de um recordset ADO?
     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
Postada em 27/01/2006 10:31 hs         
  Dim vgRegAtual As Variant 'registro atual
  Dim vgRegFind As Variant  'registro localizado
 
  vgRegAtual = mdiPrincipal.ActiveForm.adoTb.Recordset.Bookmark 'guarda registro atual
 
  'verifica em que sentido deve efetuar a procura
  If txtValor.Text > mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Value Then
    'vefirica o tipo de dado do campo seleciona
    If mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adVarChar Then
      'verifica se o operador for o LIKE, colocar o asterisco *
      If cboOperador.Text = "LIKE" Then
        mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "'*" + LTrim(RTrim(txtValor.Text)) + "*'", , adSearchForward
      Else
        mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "'" + LTrim(RTrim(txtValor.Text)) + "'", , adSearchForward
      End If
    ElseIf mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adDate Then
      mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "#" + LTrim(RTrim(Str(txtValor.Text))) + "#", , adSearchForward
    ElseIf mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adNumeric Then
      mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + LTrim(RTrim(Str(txtValor.Text))), , adSearchForward
    End If
  Else
    'vefirica o tipo de dado do campo seleciona
    If mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adVarChar Then
      'verifica se o operador for o LIKE, colocar o asterisco *
      If cboOperador.Text = "LIKE" Then
        mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "*'" + LTrim(RTrim(txtValor.Text)) + "*'", , adSearchBackward
      Else
        mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "'" + LTrim(RTrim(txtValor.Text)) + "'", , adSearchBackward
      End If
    ElseIf mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adDate Then
      mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + "#" + LTrim(RTrim(Str(txtValor.Text))) + "#", , adSearchBackward
    ElseIf mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(lstCampos.ListIndex).Type = adNumeric Then
      mdiPrincipal.ActiveForm.adoTb.Recordset.Find lstCampos.Text + " " + cboOperador.Text + " " + LTrim(RTrim(Str(txtValor.Text))), , adSearchBackward
    End If
  End If
 
  mdiPrincipal.ActiveForm.intSituacao = INTACAO_NAVEGANDO         'ajusta situação do form
 
  'verifica se encontrou algum registro
  If (Not mdiPrincipal.ActiveForm.adoTb.Recordset.EOF) And (Not mdiPrincipal.ActiveForm.adoTb.Recordset.BOF) Then
    mdiPrincipal.ActiveForm.Reposition                            'atualiza controles com dados do registro
    vgRegFind = mdiPrincipal.ActiveForm.adoTb.Recordset.Bookmark  'carrega registro encontrado
    mdiPrincipal.ActiveForm.adoTb.Recordset.CancelUpdate          'cancela a atualização
    mdiPrincipal.ActiveForm.adoTb.Refresh                         'executar o refresh da tabela
    mdiPrincipal.ActiveForm.adoTb.Recordset.Bookmark = vgRegFind  'volta para o registro encontrado
 
    'ajusta valores das outras tabelas
    subListaColunas mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
    subListaFiltrosRel mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
    subListaSQLRel mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
 
    mdiPrincipal.ActiveForm.Refresh
 
    subPrepBotoes mdiPrincipal.ActiveForm, INTACAO_NAVEGANDO      'acerta icones dos botoes
    'mdiPrincipal.ActiveForm.SetFocus                             'volta o foco para o form
   
  Else 'se não encontrou, fica no registro atual
    mdiPrincipal.ActiveForm.Reposition                            'atualiza controles com dados do registro
    mdiPrincipal.ActiveForm.adoTb.Refresh                         'executar o refresh da tabela
    mdiPrincipal.ActiveForm.adoTb.Recordset.Bookmark = vgRegAtual 'volta para o registro atual
 
    'ajusta valores das outras tabelas
    subListaColunas mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
    subListaFiltrosRel mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
    subListaSQLRel mdiPrincipal.ActiveForm, mdiPrincipal.ActiveForm.adoTb.Recordset.Fields(0).Value
 
    mdiPrincipal.ActiveForm.Refresh
 
    subPrepBotoes mdiPrincipal.ActiveForm, INTACAO_NAVEGANDO      'acerta icones dos botoes
    'mdiPrincipal.ActiveForm.SetFocus                             'volta o foco para o form
 
  End If
  Unload Me
  mdiPrincipal.ActiveForm.SetFocus                                'volta o foco para o form
     
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 27/01/2006 20:50 hs            
    rsPrincipalLocalConsulta.Find CampoDoBancoDeDados & " like '" & atxtConsultas.Text & "%'"
    'ou
    'rsPrincipalLocalConsulta.Find CampoDoBancoDeDados & " = '" & atxtConsultas.Text & "'"
    If rsPrincipalLocalConsulta.EOF Then
        MsgBox "Registro não encontrado."
    Else
        MsgBox "Registro encontrado"
    End If
 
 
Para mais informações leia este arquivo.
     
Página(s): 1/1    

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