• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

David Pintassilgo

[VB6] Minusculas/Maiusculas

11 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
?? 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora