MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


4 participantes

    [Resolvido]O mesmo que o IN do SQL para VBA

    avatar
    Leonardonc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 04/07/2012

    [Resolvido]O mesmo que o IN do SQL para VBA Empty O mesmo que o IN do SQL para VBA

    Mensagem  Leonardonc Sex 11 Jan 2013, 1:10 pm

    No SQL: SELECT * FROM tabela WHERE codigo IN (1,2,3)

    Ou seja, selecionar todos os registros onde o código é 1 ou 2 ou 3.

    Como faço o mesmo no VBA? Uma das maneiras possíveis seria essa: If codigo = 1 Or codigo = 2 Or codigo = 3 Then ...

    Mas, o que posso usar no lugar de "IN" para VBA?

    Uma das outras maneiras seria:

    Dim matriz() As Variant
    matriz = Array(1, 2, 3)
    codigo = [A INSERIR]
    i = 0
    Do While i <= 2
    ....If codigo = matriz(i) Then
    ........MsgBox "Ok"
    ........GoTo encerra_while
    ....Else
    ........MsgBox "Erro"
    ....End If
    ....i = i + 1
    Loop
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  criquio Sex 11 Jan 2013, 1:45 pm

    ... "SELECT * FROM tabela WHERE codigo = 1 Or codigo = 2 Or codigo = 3"

    ou

    ... "SELECT * FROM tabela WHERE codigo >= 1 Or codigo <= 3"

    ou

    ... "SELECT * FROM tabela WHERE codigo BETWEEN 1 And 3"


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Leonardonc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 04/07/2012

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Leonardonc Sex 11 Jan 2013, 1:50 pm

    Criquio, para SQL, eu já tenho a solução, que é o "IN". A minha pergunta foi para VBA.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  criquio Sex 11 Jan 2013, 1:53 pm

    E a resposta idem. O SQL pode ser usado no VBA.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Leonardonc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 04/07/2012

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Leonardonc Sex 11 Jan 2013, 2:20 pm

    Não, Criquio. Eu quero usar a linguagem do VBA e não do SQL. Exemplo:

    If codigo IN (1,2,3) Then
    ....MsgBox "Ok"
    Else
    ....MsgBox "Erro"
    End If

    Mas, o VBA não reconhece esse "IN".

    Tentei outro: "If codigo = (1 or 2 or 3) Then", mas também não dá certo.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  criquio Sex 11 Jan 2013, 2:30 pm

    Mas é semelhante ao que postei. Veja assim:

    If codigo >= 1 Or codigo <= 3 Then
    ...


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Leonardonc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 04/07/2012

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Leonardonc Sex 11 Jan 2013, 2:37 pm

    Criquio, isso eu tinha comentado na primeira mensagem. A minha pergunta é se existe um semelhante ao "IN" do SQL.

    Se fosse número sequencial, seria fácil. Já imaginou para texto?

    If produto = 'cama' or produto = 'mesa' or produto = 'geladeira' or produto = 'pia' or produto = 'janela' Then

    O ideal seria:

    If produto IN ('cama', 'mesa', 'geladeira', 'pia', 'janela') Then
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  criquio Sex 11 Jan 2013, 2:49 pm

    Dê uma olhada nesse tópico aonde falo sobre Arrays. Talvez o que você esteja querendo seja algo semelhante. Lá tem um conjunto de itens em uma array chamada Meses. Algo semelhante poderia ser utilizado e para verificar todos, poderia usar algo assim:

    Código:
    Dim N As Integer

    For N = LBound(Meses) To UBound(Meses)
        If código = Meses(N) Then
            MsgBox "OK"
        Else
            MsgBox "Erro"
        End If
    Next
    LBound indica o menor número da sequência e UBound indica o maior número.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Avelino Sampaio Sex 11 Jan 2013, 2:54 pm

    Seria melhor explicar a finalidade disso

    O select case seria uma opção

    SELECT CASE me!Campo
    case 'cama', 'mesa', 'geladeira', 'pia', 'janela'
    'faz algo
    case "porta",cadeira"
    'faz outra
    case else
    'faz algo
    end select

    Não está claro o seu objetivo final



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Alexandre Neves Sex 11 Jan 2013, 5:43 pm

    Complementando a informação do Mestre Avelino, se tiver poucos items será aconselhável uma codificação, se tiver muitos será melhor outra codificação, até guardar valores em tabela, em variável global, por ex.. Também dependerá da regularidade, ou não, que tenha que alterar esses valores.


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Leonardonc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 04/07/2012

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Leonardonc Sáb 12 Jan 2013, 12:20 am

    rs, Criquio, sobre o Array, eu também tinha comentado, até dei exemplo. Veja na primeira mensagem.

    Avelino, resolveu o que eu queria. Não preciso ficar repetindo teste de expressão. Conhecia esse comando, mas não sabia que podia usar vírgula para lista: Case 'cama','mesa','porta','pia': MsgBox "Ok!".

    É, Alexandre, eu poderia resolver com If...Then...End, ou com Array, mas em algumas situações o Select Case é mais viável.

    Agradeço aos três colaboradores. Podem fechar o tópico e colocar [Resolvido].
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Alexandre Neves Sáb 12 Jan 2013, 12:21 am

    [Resolvido]O mesmo que o IN do SQL para VBA MaximoAccess%20ResolvidoMarcado


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    [Resolvido]O mesmo que o IN do SQL para VBA Empty Re: [Resolvido]O mesmo que o IN do SQL para VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sáb 23 Nov 2024, 3:39 pm