MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


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

    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 96
    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 em 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 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4389
    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 em 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 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 96
    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 em 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 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4389
    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 em 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
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 649
    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 em 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 8 vez(es)
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 96
    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 em 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: 20/7/2019, 10:59