USUÁRIO:
SENHA:
SALVAR LOGIN ?
Fórum
Visual Basic
Responder
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
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
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