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


2 participantes

    [Resolvido]Caixa de listagem dinâmica

    avatar
    Kellyton
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 06/12/2018

    [Resolvido]Caixa de listagem dinâmica Empty [Resolvido]Caixa de listagem dinâmica

    Mensagem  Kellyton 15/9/2020, 03:37

    Boa noite a todos,

    Preciso de um auxilio para a seguinte questão:

    A) Criei um formulário com um botão e uma pergunta (Sim/Não/Cancelar);
    [Resolvido]Caixa de listagem dinâmica T119

    B) Se Pressionado [Sim], abre o [formulário A], Se pressionado [Não], abre o [Formulário B]. Ambos os formulários gravam na mesma tabela.

    C) No load de ambos os formulários eu verifico se existe o registro criado, caso não exista então eu crio o registro;

    [Resolvido]Caixa de listagem dinâmica T217

    D) Se o registro existe, então apenas abro o formulário e exibo os dados para poder fazer a edição no mesmo.

    Acontece que:
    1. No formulário existe dois campos tipo [Caixa de Combinação], onde, dependendo da resposta do usuário no primeiro eu busco e monto os valores a serem selecionados na segunda [Caixa de Combinação];

    [Resolvido]Caixa de listagem dinâmica T317

    [Resolvido]Caixa de listagem dinâmica T412

    2. O problema está na abertura do formulário para visualização e edição dos dados, não está trazendo os valores cadastrados na segunda [Caixa de Combinação], e quando navego nos registros acontece a mesma coisa.

    [Resolvido]Caixa de listagem dinâmica T710

    No Exemplo acima, tenho dois registros que quando clico nos botões para navegar o campo [Tipo] está vindo preenchido corretamente, porém, o campo Equipamento vem em branco.

    No Evento [Após Atualizar] do campo [Tipo], estou usando o seguinte código:

    Código:
    Private Sub cbnOrigDesc_AfterUpdate()
            
        If Me.cbnOrigDesc = 2 Then
            Me.lblEquipamento.Visible = True
            Me.txtOrigem.Visible = True
            Me.txtOrigem.RowSourceType = "Table/Query"
            Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TIN%' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
            Me.txtOrigem.Requery
        ElseIf Me.cbnOrigDesc = 1 Then
            Me.lblEquipamento.Visible = True
            Me.txtOrigem.Visible = True
            Me.txtOrigem.RowSourceType = "Table/Query"
            Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TAN%' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
            Me.txtOrigem.Requery
        End If

    End Sub

    No Evento [Load] do formulário, executo o seguinte código:

    Código:
    Private Sub Form_Load()
    If Nz(DLookup("[numop]", "public_tbl_adega_dt_ret_fer", "[numop]='" & Forms!FRM_Adega_Dt!txtNumOP & "' AND [deletado]='f' AND [tipo_acao]=2"), 0) = 0 Then
        MsgBox "Não existem lançamentos de fermento, será criado o primeiro registro para o Descarte nesta OP.", vbInformation, "Informação"
            
        Dim rst1 As Recordset
        Dim sel As String
                                
        'Cria o registro na tabela
        sel = "SELECT * from public_tbl_adega_dt_ret_fer"
        Set rst1 = CurrentDb.OpenRecordset(sel)
        
            rst1.AddNew
                rst1![NumOP] = Forms!FRM_Adega_Dt!txtNumOP
                rst1![tipo_acao] = 2
                rst1![datahora_inclusao] = Now()
                rst1![usuario_inclusao] = getUsuarioAtual()
                rst1![deletado] = 0
                rst1.Update
        
            'Fecho a conexão
            rst1.Close
            
            Me.Recalc
            
    Else
        If Me.cbnOrigDesc = 2 Then
                Me.txtOrigem.RowSourceType = "Table/Query"
                Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TIN%' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
                Me.txtOrigem.Requery
        ElseIf Me.cbnOrigDesc = 1 Then
                Me.txtOrigem.RowSourceType = "Table/Query"
                Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TAN%' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
                Me.txtOrigem.Requery
        End If
    End If

    End Sub
    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]Caixa de listagem dinâmica Empty Re: [Resolvido]Caixa de listagem dinâmica

    Mensagem  Avelino Sampaio 17/9/2020, 10:16

    Olá!

    O que se usa no Access para substituir um fragmento de texto é o asterisco (*) e não o (%), a não ser que o senhor esteja utilizando o sqlServer.

    o senhor também pode reduzir a escrita do seu código, evitando repetições desnecessárias no IF

    Private Sub cbnOrigDesc_AfterUpdate()
    Me.lblEquipamento.Visible = True
    Me.txtOrigem.Visible = True
    Me.txtOrigem.RowSourceType = "Table/Query"
       If Me.cbnOrigDesc = 2 Then
           Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TIN*' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
       ElseIf Me.cbnOrigDesc = 1 Then
           Me.txtOrigem.RowSource = "SELECT peqp_cdeqpto_1, peqp_descric_1 FROM public_pcpeqp WHERE peqp_descric_1 Like 'TAN*' And peqp_codbrev_1 = '002' ORDER BY peqp_cdeqpto_1;"
       End If
    Me.txtOrigem.Requery
    End Sub


    Confirme se o peqp_codbrev_1 é do tipo string ou numérico.

    Uma apanhado sobre filtragens no Access, clique AQUI e veja neste meu artigo.

    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Kellyton
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 06/12/2018

    [Resolvido]Caixa de listagem dinâmica Empty Re: [Resolvido]Caixa de listagem dinâmica

    Mensagem  Kellyton 15/10/2020, 13:42

    Caros, bom dia

    Assunto resolvido, Obrigado pelo apoio de sempre.

    Conteúdo patrocinado


    [Resolvido]Caixa de listagem dinâmica Empty Re: [Resolvido]Caixa de listagem dinâmica

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 09:21