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


3 participantes

    [Resolvido] Select Case conforme dígito inserido em campo

    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido] Select Case conforme dígito inserido em campo Empty [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  mduarteteixeira 19/3/2019, 13:50

    Prezados, bom dia!

    Vejam a confusão. Estou em busca do seguinte:

    Ao inserir uma sequência numérica com máscara que seria 000.000-00 estou em busca de condicionar conforme o tipo de dígito.

    Exemplo: inserindo no primeiro campo uma sequência que termine em 00 ou 01, o próximo campo, ao receber foco, retorna a string ESCOLAR. Se for inserido dígito terminando entre 30 à 39, o outro campo recebe a string TAXI, e mais outros tantos de modalidades conforme os dígitos inseridos.

    Estou testando isso com o Select Case e a função Right() da seguinte forma:

    Private Sub Tipo_GotFocus()
    Dim A As String



    A = "ESCOLAR"

    Select Case Me.Tipo
    Case Right(Me.N_registros, 2) = 0 And Right(Me.N_registros, 1) = 0
    Me.Tipo = A
    End Select


    Então, neste caso realizo o Case para 0 E 0 e também para 0 E 1.

    Testando com essa sintaxe acima ele não está retornando o calor no campo Tipo.

    Alguém poderia me ajudar, por gentileza? Já grato!
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  Silvio 19/3/2019, 19:45

    Sei não, mas tente assim...

    Private Sub Tipo_GotFocus()


    Select Case Me.Tipo
    Case Right(Me.N_registros, 2) = 0 OR Right(Me.N_registros, 1) = 0
    Me.Tipo.TEXT = "ESCOLAR"
    End Select


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  mduarteteixeira 20/3/2019, 14:00

    Bom dia Silvio!


    Nesse meio tempo acebei criando uma estrutura (bizarra) de If ElseIf que ficou assim:

    (Mas, dada sua dica, vou adaptar para o Select pois acredito que seja mais limpo o código, muito obrigado!!)

    Private Sub Tipo_GotFocus()
    Dim E As String
    Dim T As String
    Dim O As String
    Dim R As String
    Dim B As String
    Dim L As String
    Dim F As String
    Dim M As String
    Dim I As String
    Dim C As String
    Dim Limpar As String




    E = "ESCOLAR"
    T = "TAXI"
    O = "INTERLIGADO ESTRUTURAL"
    R = "CARONA SOLIDÁRIA"
    B = "BAIRRO A BAIRRO"
    L = "LOTAÇÃO"
    F = "FRETAMENTO"
    M = "MOTO FRETE"
    I = "INTERLIGADO LOCAL"
    C = "CARGA FRETE"
    Limpar = ""

    If IsNull(Me.N_registros) Then
    Me.Tipo = Limpar
    End If



    If Left(Me.N_registros, 1) = 8 Or Left(Me.N_registros, 2) = 8 Then
    If Right(Me.N_registros, 2) = 30 Or Right(Me.N_registros, 2) = 31 Or Right(Me.N_registros, 2) = 32 Or Right(Me.N_registros, 2) = 33 Or Right(Me.N_registros, 2) = 34 Or Right(Me.N_registros, 2) = 35 Or Right(Me.N_registros, 2) = 36 Or Right(Me.N_registros, 2) = 37 Or Right(Me.N_registros, 2) = 38 Or Right(Me.N_registros, 2) = 39 Or Right(Me.N_registros, 2) = 20 Or Right(Me.N_registros, 2) = 21 Or Right(Me.N_registros, 2) = 22 Or Right(Me.N_registros, 2) = 23 Or Right(Me.N_registros, 2) = 24 Or Right(Me.N_registros, 2) = 25 Or Right(Me.N_registros, 2) = 26 Or Right(Me.N_registros, 2) = 27 Or Right(Me.N_registros, 2) = 28 Or Right(Me.N_registros, 2) = 29 Then
    Me.Tipo = C
    End If
    ElseIf Right(Me.N_registros, 2) = 0 Or Right(Me.N_registros, 2) = 1 Or Right(Me.N_registros, 2) = 2 Or Right(Me.N_registros, 2) = 3 Or Right(Me.N_registros, 2) = 4 Or Right(Me.N_registros, 2) = 5 Or Right(Me.N_registros, 2) = 6 Or Right(Me.N_registros, 2) = 7 Or Right(Me.N_registros, 2) = 8 Or Right(Me.N_registros, 2) = 9 Then
    Me.Tipo = E
    ElseIf Right(Me.N_registros, 2) = 30 Or Right(Me.N_registros, 2) = 31 Or Right(Me.N_registros, 2) = 32 Or Right(Me.N_registros, 2) = 33 Or Right(Me.N_registros, 2) = 34 Or Right(Me.N_registros, 2) = 35 Or Right(Me.N_registros, 2) = 36 Or Right(Me.N_registros, 2) = 37 Or Right(Me.N_registros, 2) = 38 Or Right(Me.N_registros, 2) = 39 Or Right(Me.N_registros, 2) = 20 Or Right(Me.N_registros, 2) = 21 Or Right(Me.N_registros, 2) = 22 Or Right(Me.N_registros, 2) = 23 Or Right(Me.N_registros, 2) = 24 Or Right(Me.N_registros, 2) = 25 Or Right(Me.N_registros, 2) = 26 Or Right(Me.N_registros, 2) = 27 Or Right(Me.N_registros, 2) = 28 Or Right(Me.N_registros, 2) = 29 Then
    Me.Tipo = T
    ElseIf Right(Me.N_registros, 2) = 50 Then
    Me.Tipo = O
    ElseIf Right(Me.N_registros, 2) = 49 Or Right(Me.N_registros, 2) = 90 Then
    Me.Tipo = R
    ElseIf Right(Me.N_registros, 2) = 40 Then
    Me.Tipo = B
    ElseIf Right(Me.N_registros, 2) = 10 Then
    Me.Tipo = L
    ElseIf Right(Me.N_registros, 2) = 80 Or Right(Me.N_registros, 2) = 81 Or Right(Me.N_registros, 2) = 82 Or Right(Me.N_registros, 2) = 83 Or Right(Me.N_registros, 2) = 84 Or Right(Me.N_registros, 2) = 85 Or Right(Me.N_registros, 2) = 86 Or Right(Me.N_registros, 2) = 87 Or Right(Me.N_registros, 2) = 88 Or Right(Me.N_registros, 2) = 89 Then
    Me.Tipo = F
    ElseIf Right(Me.N_registros, 2) = 51 Or Right(Me.N_registros, 2) = 52 Or Right(Me.N_registros, 2) = 53 Or Right(Me.N_registros, 2) = 54 Or Right(Me.N_registros, 2) = 55 Or Right(Me.N_registros, 2) = 56 Or Right(Me.N_registros, 2) = 57 Or Right(Me.N_registros, 2) = 58 Or Right(Me.N_registros, 2) = 59 Then
    Me.Tipo = M
    ElseIf Right(Me.N_registros, 2) = 60 Or Right(Me.N_registros, 2) = 61 Or Right(Me.N_registros, 2) = 62 Or Right(Me.N_registros, 2) = 63 Or Right(Me.N_registros, 2) = 64 Or Right(Me.N_registros, 2) = 65 Or Right(Me.N_registros, 2) = 66 Or Right(Me.N_registros, 2) = 67 Or Right(Me.N_registros, 2) = 68 Or Right(Me.N_registros, 2) = 69 Then
    Me.Tipo = M
    ElseIf Right(Me.N_registros, 2) = 11 Or Right(Me.N_registros, 2) = 12 Or Right(Me.N_registros, 2) = 13 Or Right(Me.N_registros, 2) = 14 Or Right(Me.N_registros, 2) = 15 Or Right(Me.N_registros, 2) = 16 Or Right(Me.N_registros, 2) = 17 Or Right(Me.N_registros, 2) = 18 Or Right(Me.N_registros, 2) = 19 Then
    Me.Tipo = I
    ElseIf Right(Me.N_registros, 2) = 70 Or Right(Me.N_registros, 2) = 71 Or Right(Me.N_registros, 2) = 72 Or Right(Me.N_registros, 2) = 73 Or Right(Me.N_registros, 2) = 74 Or Right(Me.N_registros, 2) = 75 Or Right(Me.N_registros, 2) = 76 Or Right(Me.N_registros, 2) = 77 Or Right(Me.N_registros, 2) = 78 Or Right(Me.N_registros, 2) = 79 Then
    Me.Tipo = I


    End If


    End Sub
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  Silvio 20/3/2019, 16:44

    Boa tarde...

    Mas funfou ou não ?


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    scandinavo
    scandinavo
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1059
    Registrado : 11/11/2009

    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  scandinavo 20/3/2019, 17:19

    Desculpe a intromissão mas poderia fazer assim

    Select Case Right(Me.txtN_Registros, 2)

    Case 0 To 9
    Me.Tipo = "E"
    MsgBox ("Escolar")

    Case Is = 10
    Me.Tipo = "L"
    MsgBox ("Lota??o")

    Case 11 To 19
    Me.Tipo = "I"
    MsgBox ("Interliga??o Local")


    Case 20 To 39
    Me.Tipo = "C"
    MsgBox ("Carga Frete")

    Case Is = 40
    Me.Tipo = "B"


    Case Is = 49
    Me.Tipo = "R"

    Case Is = 90
    Me.Tipo = "R"

    Case Is = 50
    Me.Tipo = "O"

    Case 51 To 69
    Me.Tipo = "M"

    Case 70 To 79
    Me.Tipo = "I"


    Case Else
    MsgBox ("Outro tipo")


    End Select
    Anexos
    [Resolvido] Select Case conforme dígito inserido em campo AttachmentSelec Case - Copia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 16 vez(es)
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  mduarteteixeira 23/3/2019, 23:04

    Boa noite à todos. Com os IF funcionou sim. Contudo ainda vou adaptar o código para usar o Select, mais ou menos como inserido no comentário do scandinavo. Vou tentar fazer nesta semana e se ficar bom eu mando o código aqui. Obrigado à todos!

    Conteúdo patrocinado


    [Resolvido] Select Case conforme dígito inserido em campo Empty Re: [Resolvido] Select Case conforme dígito inserido em campo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 18:42