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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  MAIS UMA DÚVIDA, AFORA COM O FIND...tá quase 100%
SRick
LAVRAS
MG - BRASIL
Postada em 31/03/2011 17:42 hs            
Gostaria de criar um formulario tipo do word LOCALIZAR.

Fiacaria mais ou menos assim:

------------------------------------------------------
!                                                                  !
!Localiza:<  Pedrão do Morro                    >   !
!                                                                  !
!                                                                  ! <este seria modelo do form localizar.
!    OK        PRÓXIMO      ANTERIOR               !
!                                                                  !
------------------------------------------------------
Ai o formulario de cadastro seria carregado:

CODIGO: 00234

NOME: Pedrão do Morro

.....

Se clicar em próximo apareceria no formulario a proxima ocorrencia:

CODIGO: 00456

NOME: Pedrinho Mão Leve.

Seclicar em anterior apareceria a ocorrência anterior.


E assim sucessivamente, é mais ou menos isso que gostaria de implementar na minha pesquisa.

Valeu


Henrique

     
Juan Carlos R.A
Pontos: 2843
MACEIO
AL - BRASIL
Postada em 31/03/2011 22:29 hs            
Ola Srick, so agora vi o seu duvida referente na pesquisa. Da jeito como Treze fez ta certo, mais se não tiver registros encontrados e dar movefris va dar erro.

If rst.RecordCount > 0 Then rst.MoveFrist
rst.Find "Nome like '*" & Localiza & "*'", adSearchForward  'localiza quaquer parte do nome
If rst.EOF Then ' se for final do arquivo então ...
    
else
 
endif
 
agora referente a pesquisa tipo word, pode ser usando outro formulario, mais poderia ser bem mais facil com um frame, que inicialmente fica visivel=false e quando for chamado o frame fica visivel e faz a pesquisa de proximo e anterior como treze indico
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 01/04/2011 03:19 hs            
Minha dica seria desenvolver algo mais dinamico.

este negocio de setas de navegação pode se tornar algo moroso, tipo suponha que vc possua o cadastro de 5000, 6000, ou mais meliantes, ja pensou ficar pressionando um por um até chegar no que deseja.

eu faço assim, crio uma tela com um campo onde digitará o nome, e um botão de pesquisa.

depois carrego tudo em um flexgrid, ou seja se digitou marcelo aparecerá todos feinhos que possuam o nome marcelo a partir dai navego no grid até o que desejo, dou um duplo clique no mesmo e pronto os dados surgem na tela.

eu ja aboli este negocio de setas de navegação a muito tempo.


     
SRick
LAVRAS
MG - BRASIL
Postada em 01/04/2011 16:47 hs            
Olá Marcelo, consegui um exemplo para localizar por código, conforme você sugeriu, mas não estou conseguindo adaptar para pesquisar por qualquer parte do nome tem como voc}e me dar uma força:

Como fazer para quando der um duplo click os dados serem caregados em um form???

abaixo o código está funcionando quando procuro pro código numerico.

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

Private Sub Command1_Click()
Dim i As Integer

'pesquisa na tabela o código fornecido
rs.Open "SELECT * FROM Cliente WHERE Codigo=" & Text1.Text, cnn, adOpenKeyset, adLockOptimistic
'verifica se existem registros
If rs.BOF = True And rs.EOF = True Then
    'cliente não cadastrado
    MsgBox "Cliente Não Cadastrado!", vbInformation, "Atenção"
    Text1.Text = ""
    'fecha a conexão
    rs.Close
Else
    With MSFlexGrid1
        'preeche o flex
        i = 1
        Do While Not rs.EOF
            'quantidade de linhas
            .Rows = rs.RecordCount + 1
            .TextMatrix(i, 0) = rs(0).Value
            .TextMatrix(i, 1) = rs(1).Value
            .TextMatrix(i, 2) = rs(2).Value
            'proximo registro
            i = i + 1
            rs.MoveNext
        Loop
    End With
    'fecha a conexão com a tabela
    rs.Close
End If

End Sub

Private Sub Form_Load()

'abre o banco e a tabela
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "d.mdb"

With MSFlexGrid1
'limpar o flex
    .Clear
    'quantidade de linhas e colunas
    .Rows = 2
    .Cols = 3
    'tamanho das colunas
    .ColWidth(0) = 780
    .ColWidth(1) = 2800
    .ColWidth(2) = 2800
    'cabecalho
    .TextMatrix(0, 0) = "Código"
    .TextMatrix(0, 1) = "Nome"
    .TextMatrix(0, 2) = "Endereço"
End With

End Sub


Private Sub Text1_Change()

'somente números, Enter e Esc
If KeyAscii >= Asc("0") And keysacii <= Asc("9") Or KeyAscii = 13 Or KeyAscii = 27 Then
    'permite
    KeyAscii = KeyAscii
Else
    'não permite
    KeyAscii = 0
End If

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

'limpar a caixa de texto e o flex
If KeyAscii = 27 Then
    Text1.Text = ""
    With MSFlexGrid1
        'limpa a pesquisa anterior
        .Clear
        'ajusta o cabeçalho
        .TextMatrix(0, 0) = "Código"
        .TextMatrix(0, 1) = "Nome"
        .TextMatrix(0, 2) = "Endereço"
    End With
    'sem som
    KeyAscii = 0
End If

End Sub

Private Sub Text1_Validate(Cancel As Boolean)

'verifica campo vazio
If Text1.Text = "" Then
    MsgBox "Informe o Código do Cliente e Pressione 'Iniciar Pesquisa'.", vbInformation, "Atenção"
    Cancel = True
End If

End Sub


Henrique
     
Página(s): 3/3     « ANTERIOR  


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