Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mfbass

Option Compare

Recommended Posts

Olá. Como fazer com que a comparação de textos em uma exclusão funcione sem usar LCase ou UCase? Por exemplo: se eu fizer a comparação João = joão o VB não encontra nada para excluir, por mais que existam registros na tabela.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utlize a função StrComp, onde se as strings forem iguais retornará 0, qualquer dúvida sobre esta função, poste aqui.

Exemplo:

Dim StrA As String, StrB As StringStrA = "Luiz"StrB = "luiz"If StrComp(StrA, StrB, vbTextCompare) = 0 Then  MsgBox "São Iguais"End I
Obs: É importante o terceiro parâmetro desta função.

Bons Estudos !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta. Na verdade, eu precisava de algo que, para excluir o registro João em uma tabela, o usuário pudesse digitar João em qualquer formato (JOÃO, joão, JoÃo, JOão, etc).Aguardo ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu usando a função que te passei, você irá fazer a busca e comparando os nomes, mas acho que é mais viavel pegar o codigo e não o nome para fazer a exclusão, pois pode coincidir de possuir nomes iguais, então irá excluir todos os registros que possuem o mesmo nome e não somente o que foi excluído, é algo para se pensar, mas isso quem tem que ver é você, pois sabe qual é a necessidade do sistema.Faça o exemplo que te passei que você verá como funciona. Caso você ainda não tenha entendido, poste seu código de exclusão para podermos te auxiliar. Um Abraço !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

num funciona somente colocando?

delete from tabela where campo_nome like 'joão'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona sim, mas dependo de como ele está querendo usar, talvez esteja querendo excluir de uma lista que carregou no seu programa e não do Banco de Dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. Primeiramente, obrigado pelo auxílio. Eu gostaria de fazer o código da seguinte maneira: do while not rs.eof if rs("NomeCliente") = txtNomeCliente.text then rs.delete endif rs.movenext loopÉ possível? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa de uma função que compare os nomes, mesmo que tenha acentuação.tipo Se "João" = "Joao" Então Deleta.hmmmmmeu uso nos projetos uma função que remove todas as acentuações de uma string, mas nem lembro onde baixei...aí vai:

''**** Acerta Nome (Maiuscula, sem acento e um espaço)'Public Function AcertaNome(NomeAC As String) As String   Dim H          As Integer   Dim Aux        As String   AcertaNome = ""   NomeAC = Trim(UCase(NomeAC))   For H = 1 To Len(NomeAC)      Aux = Mid$(NomeAC, H, 1)      If Aux = " " And Mid$(NomeAC, H + 1, 1) = " " Then         Aux = " "      Else         Select Case Aux            Case "Á", "À", "Â", "Ã", "Ä"               Aux = "A"            Case "É", "È", "Ê", "Ë"               Aux = "E"            Case "Í", "Ì", "Î", "Ï"               Aux = "I"            Case "Ó", "Ò", "Ô", "Ö", "Õ"               Aux = "O"            Case "Ú", "Ù", "Û", "Ü"               Aux = "U"            Case "Ç"               Aux = "C"         End Select         AcertaNome = AcertaNome + Aux      End If   Next HEnd Function

então depois de inserir a função no projeto:Se AcertaNome("João") = AcertaNome("Joao") Então Deleta.Esta é uma possibilidade, a outra é como os colegas já falaram.Só mais um detalhe, na comparação você pode igualar os caracteres:Trim(LCase("João")) = Trim(LCase("joão"))Resp: Truecomo já disseram: bons estudos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.