Jump to content
Sign in to follow this  
David Pintassilgo

[VB6] Minusculas/Maiusculas

Recommended Posts

David Pintassilgo
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//

Share this post


Link to post
Share on other sites
Dabubble

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.

Share this post


Link to post
Share on other sites
vbmaster

sim senhorDabubble! Gostei dessa maneira engenhosa de resolver o problema 8) 8) 8) 8) 8) 8)

Share this post


Link to post
Share on other sites
_blackjack_

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.

Share this post


Link to post
Share on other sites
Dabubble
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.

Share this post


Link to post
Share on other sites
_blackjack_
?? 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.

Share this post


Link to post
Share on other sites
Dabubble
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.

Share this post


Link to post
Share on other sites
David Pintassilgo

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//

Share this post


Link to post
Share on other sites
_blackjack_

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

Share this post


Link to post
Share on other sites
Dabubble

Era mesmo essa a implementacao que eu me estava a referir... VB nao e o meu forte...

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.