David Pintassilgo Posted July 4, 2005 at 08:50 PM Report Share #1666 Posted July 4, 2005 at 08:50 PM Private Sub Command1_Click() nome = inputbox("Nome do Produto") Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Text1 = nome Then GoTo registo_encontrado End If Data1.Recordset.MoveNext Loop MsgBox ("Registo não encontrado") GoTo sair_procedimento registo_encontrado: Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True sair_procedimento: End Sub Na parte do "If Text1 = nome " só me detecta se for MESMO exactamente igual, como posso fazer com que ignore as minusculas/Maiusculas? cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
Dabubble Posted July 4, 2005 at 10:37 PM Report Share #1675 Posted July 4, 2005 at 10:37 PM A melhor maneira de resolveres isso e pores todos os caracteres em uppercase ou lowercase e deopis fazer a comparação tipo: If UCase$(Text1) = UCase$(nome) ou If LCase$(Text1) = LCase$(nome) Espero que tenha respondido a tua duvida. Link to comment Share on other sites More sharing options...
vbmaster Posted July 5, 2005 at 12:18 AM Report Share #1681 Posted July 5, 2005 at 12:18 AM sim senhorDabubble! Gostei dessa maneira engenhosa de resolver o problema 8) 8) 8) 8) 8) 8) Link to comment Share on other sites More sharing options...
David Pintassilgo Posted July 5, 2005 at 06:58 AM Author Report Share #1685 Posted July 5, 2005 at 06:58 AM é mesmo isso que eu queria! 😄 gracias! cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
_blackjack_ Posted July 7, 2005 at 01:31 PM Report Share #1768 Posted July 7, 2005 at 01:31 PM boas, se queres procurar um produto que existe numa base de dados sugiro que uses outra caracterisca como forma de o tornar unico (tipo cod_interno, cod_barras, contador_unico). Repara que : "detergente da roupa" é diferente de "detergente da roupa " (espaco no final) independente das maiusculas ou minisculas... É mais eficaz usares algo do genero : <id><descricao> e verificares/procurares pelo id e nao pela descricao. 001 - "produto 1" 002 - "produto 2" ... Nao quero dizer q a ideia acima nao é boa e nao resolva as coisas... Cumps. Link to comment Share on other sites More sharing options...
Dabubble Posted July 9, 2005 at 10:09 AM Report Share #1810 Posted July 9, 2005 at 10:09 AM se queres procurar um produto que existe numa base de dados sugiro que uses outra caracterisca como forma de o tornar unico (tipo cod_interno, cod_barras, contador_unico). ?? se bem percebi nao e isso que se trata aqui (alias nem sei se estamos a falar de uma Base de dados mas acho que nao). O que se trata e de comparar uma string com um conjunto de strings e encontrar a que corresponde, certo? De resto se tens uma base de dados (tipo MySQL) nao procuras elementos pela PK (primary key, o tal ID que falavas), a nao ser que ja saibas qual e a linha que queres e queiras ir buscar mais dados. Se nao for este o caso como esperas que o utilizador saiba a PK (ou ID) do produto se este e, normalmente um "numero de serie" atribuido internamente? Mesmo em MySQL e possivel fazer querys que façam o match mesmo com espaços a mais tipo: select p_nome from produtos where p_nome like '%detergente%' and p_nome like'%da%' and p_nome like '%roupa%' esta query elimina quaisquer problemas de espaços conseguindo um match desde que existam as palavras "detergente","da" e "roupa". Cumps. Link to comment Share on other sites More sharing options...
_blackjack_ Posted July 9, 2005 at 11:23 AM Report Share #1812 Posted July 9, 2005 at 11:23 AM ?? se bem percebi nao e isso que se trata aqui (alias nem sei se estamos a falar de uma Base de dados mas acho que nao). O que se trata e de comparar uma string com um conjunto de strings e encontrar a que corresponde, certo? se estamos a falar de VB... isto: "Data1.Recordset.MoveNext" refere-se seguramente a uma base de dados qualquer que seja o formato (recordset?). Obvio que a tua query resulta mas entao o que queres dizer é que tens de converter o teu string num comboio de AND's. So nao elimina 1 coisa que existe SEMPRE: erros ortograficos do user... Fika bem. Link to comment Share on other sites More sharing options...
Dabubble Posted July 9, 2005 at 11:55 AM Report Share #1814 Posted July 9, 2005 at 11:55 AM Data1.Recordset.MoveNext" refere-se seguramente a uma base de dados qualquer que seja o formato (recordset?). Tens razao, pensei que o Objecto Recorset fucionasse como objecto mais geral e nao so para records da BD. De resto em vez de fazeres o comboio de and's costuma-se fazer simplesmente: like '%detergente da roupa%' E tens razao ha sempre erros ortograficos do user. Mas como te pretendes resolver o problema????? O IP ou PK serve para dar uma caracteristica unica a cada linha da BD nao e uma coisa que se peça a um user. No exemplo em questao penso que o objectivo um registo na bd ( e utilizar os detalhes para algo suponho) atraves do nome que pode ser tornado unico atraves do UNIQUE na linha em MySQL. Quando estas a fazer uma pesquisa aqui no forum ou mesmo o login inseres o teu ID (ou PK) ou a do resisto que procuras (que nem sabes) na BD ou inseres o teu login (que se tiver erros nao funciona obviamente)?? Cumps PS: d_pintassilgo nao sei como construiste o Recordset no teu programa, mas mas depreendo que seja contruido com os nomes de todos os produtos e é só depois que vais ver se encontras o que procuras certo? isto pode-se tornar muuuuuito mau se a tabela for muito grande. Sugestão: Constroi um novo Recorset com a pesquisa do nome que procuras e testa se ele vem vazio ou nao. Link to comment Share on other sites More sharing options...
David Pintassilgo Posted July 9, 2005 at 02:55 PM Author Report Share #1819 Posted July 9, 2005 at 02:55 PM Boas, eu entretanto axo que tenho que mudar TUDO, mas de qq das formas já fiquei a saber como implementar o codigo para referir maiusculas/minusculas 😉 Citação like '%detergente da roupa%' é mesmo isso que eu me estava a lembrar tb, eu recordo-me que havia um comand qq com o tal "like" que fazia mesmo o que eu queria. (como implementava o "Like" no meu exemplo?) cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
_blackjack_ Posted July 10, 2005 at 11:23 AM Report Share #1828 Posted July 10, 2005 at 11:23 AM A sugestao do Dabubble é a mais indicada. Fazes uma busca pela descricao de forma mais rapida assim: open rs: select * from tabela where descricao like .... if rs.recordcount=0 then 'descricao nao existe isto é mais rapido do que fazeres um loop pela tabela toda a procura da tal descricao q pode nem existir... Cumps Link to comment Share on other sites More sharing options...
Dabubble Posted July 10, 2005 at 11:59 AM Report Share #1830 Posted July 10, 2005 at 11:59 AM Era mesmo essa a implementacao que eu me estava a referir... VB nao e o meu forte... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now