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]Loop para abrir vários formulários de acordo com o critério de registros

    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 8/9/2014, 15:11

    Bom dia pessoal gostaria de ajuda novamente.
    Tenho um formulario paciente que nele tem um subform pedido de exames.
    criei para cada exame um form para digitar ok
    hoje eu uso esse codigo em vba para digitar o exame
    If Me.Exame = "HEMOGRAMA COMPLETO" Then
    DoCmd.OpenForm "DigHemograma", , , "Código=" & Me.Código & ""
    End If
    este campo exame esta no subform então ao clicar em cima ira abrir o form para digitar
    o que eu gostaria seria um botão no formulario que ela abrir logo todos os form do pedido do paciente.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 12/9/2014, 03:35

    Olá,

    E se nesse subformulário tiver muitos tipos diferentes de nomes de exames, não irá poluir a tela de seu programa com tantos forms se abrindo ? Reflita bem para não chatear os usuários desse sistema.

    Tente:

    Dim rs As Recordset
    Dim qRegistros As Long
    Dim qForm As String
    Dim qCodigo As Long
    Dim i As Long
    Set rs = CurrentDb.OpenRecordset("SuaTabela")
    rs.MoveLast
    rs.MoveFirst
    qRegistros = rs.RecordCount
    For i = 1 To qRegistros
    qForm = rs("Exame")
    qCodigo = rs("Codigo")
    If qForm = "HEMOGRAMA COMPLETO" Then
    DoCmd.OpenForm "DigHemograma", , , "Código=" & qCodigo & ""
    ElseIf qForm = "ELETRO" Then
    DoCmd.OpenForm "DigEletro", , , "Código=" & qCodigo & ""
    ElseIf qForm = "ECO" Then
    DoCmd.OpenForm "DigEco", , , "Código=" & qCodigo & ""
    End If
    rs.MoveNext
    Next i
    rs.Close
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 19/9/2014, 17:58

    Dilson obrigado pela ajuda.
    Ja tinha perdido a esperança de conseguir um codigo vba para resolver este pro.
    Tentei colocar ele na pratica mais não estou conseguindo ele esta puxando codigo de outros pacientes da tbl.
    Não sou um mestre em access e nem em codigo vba (aprendiz).




    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 23/9/2014, 10:05

    Entendo.
    Você precisará informar o número referencial (Chave primária) do paciente em questão.

    Pode criar uma caixa de texto para informar qual código do paciente quer abrir os forms de consulta correspondente.

    Depois dessa definição altere no código o trecho:

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM SuaTabela WHERE" _
                                 & " SuaChaveEstrangeiraPaciente=" & Me!SuaTextCodigoDoPaciente)


    Se encontrar dificuldade na implementação, pode se desejar, colocar uma amostra da sua base aqui que posso ver o que pode ser feito.
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 23/9/2014, 14:38

    Bom dia Dilson mais uma vez obrigado pela ajuda.
    Fiz umas modificações nesse codigo que vc me enviou então deu certo agora ele puxa pelo codigo do paciente mais sendo que ele abre todos os form para digitar
    sendo que eu gostaria que ele fosse so dos exames solicitados.
    Estou colocando em anexo uma imagem do form para vc ver. O botão que tem comando114 e que eu estou testando o codigo.
    Hoje eu faço clicando em cima de cada exame solicitado.
    A modificação que fiz no codigo que vc enviou foi essa.
    Dim rs As Recordset
    Dim qRegistros As Long
    Dim qForm As String
    Dim i As Long
    Set rs = CurrentDb.OpenRecordset("TbPedidoEx")
    rs.MoveLast
    rs.MoveFirst
    qRegistros = rs.RecordCount
    For i = 1 To qRegistros
    qForm = rs("Exame")
    If qForm = "HEMOGRAMA COMPLETO" Then
    DoCmd.OpenForm "DigHemograma", , , "Código=" & Código & ""
    End If
    If qForm = "GLICEMIA" Then
    DoCmd.OpenForm "DigGlicose", , , "Código=" & Código & ""
    End If
    If qForm = "SUMARIO DE URINA" Then
    DoCmd.OpenForm "DigSumario", , , "Código=" & Código & ""
    End If
    rs.MoveNext
    Next i
    rs.Close
    Anexos
    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Attachmentbd imagem.docx
    Você não tem permissão para fazer download dos arquivos anexados.
    (166 Kb) Baixado 9 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 23/9/2014, 15:18

    O que você deseja é abrir os 11 exames que aparecem relacionado para a paciente MARIA DE FATIMA GOMES ? é isso ?

    A imagem tem pouco dado significativo. O que ainda pude observar é que tens uma numeração de requisição e que deduzo que está relacionando os dados do formulário com o do subformulário. Se eu estiver certo, a chave primária e estrangeira é o n° de requisição e com isso bastaria declarar a condição no sql assim:


    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TbPedidoEx WHERE" _
    & " SuaChaveEstrangeiraRequisição=" & Me!SuaTextCodigoDaRequisção)


    Obs: Me!SuaTextCodigoDaRequisção é igual a textbox Requisição que vejo na imagem que enviou.

    Ajudar resolver sem saber a estrutura de suas tabelas fica bem difícil, por isso analise e tente algo ou me mande um print da relação de tabelas.
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 23/9/2014, 15:30

    Dilson isso mesmo o numero da requisição corresponde ao subform.
    Vou testar
    Mesmo desde ja obg pela ajuda.
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 23/9/2014, 15:52

    Dilson coloquei o codigo mais dar o seguinte erro (Parametros insuficientes eram esperados 1)
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 23/9/2014, 17:41

    Dilson da uma olha no bd (claro se possivel )
    vc vai no form liberação e colocar algum numero que corresponde na lista
    obg
    Anexos
    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros AttachmentLABORATORIO TESTE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (297 Kb) Baixado 23 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 25/9/2014, 10:39

    Ficou bom. As telas se abrem e ficam aninhadas umas por cima da outra. O usuário lançará o resultado, vai salvar, fechar e, já estará a próxima aberta para digitação.

    Para o algoritmo dar certo, precisa renomear o controle Código (que mostra o n° da requisição no formulário), ao qual baseamos o filtro no recordset. Os nomes iguais de Nome do Controle e Fonte do Controle estavam causando confusão no entendimento do VBA (A comunidade MaximoAccess em várias discussões já haviam prevenido o uso de nomes diferentes entre nome e fonte de controles).

    Eu modifique de Código para txtCódigo como pode ver:

    Dim rs As Recordset
    Dim qRegistros As Long
    Dim qForm As String
    Dim qReq As Long
    Dim i As Long
    qReq = Me!txtCódigo
    Set rs = CurrentDb.OpenRecordset _
                      ("SELECT * FROM TbPedidoEx WHERE" _
                                   & " Codigo=" & qReq)
    rs.MoveLast
    rs.MoveFirst
    qRegistros = rs.RecordCount
    For i = 1 To qRegistros
        qForm = rs("Exame")
        If qForm = "HEMOGRAMA COMPLETO" Then
           DoCmd.OpenForm "DigHemograma"
        ElseIf qForm = "GLICEMIA" Then
           DoCmd.OpenForm "DigGlicose"
        ElseIf qForm = "SUMARIO DE URINA" Then
           DoCmd.OpenForm "DigSumario"
        ElseIf qForm = "ACIDO URICO" Then
           DoCmd.OpenForm "DigAcidoU"
        ElseIf qForm = "AMILASE" Then
           DoCmd.OpenForm "DigAmil"
        ElseIf qForm = "BETA HCG" Then
           DoCmd.OpenForm "DigBHCG"
        End If
     rs.MoveNext
    Next i
    rs.Close


    Não esqueça de marcar o Resolvido.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 25/9/2014, 10:58

    Movido da sala Formulários para Módulos e VBA
    Titulo renomeado de: Puxar dados em um Subformulario para: Loop para abrir vários formulários de acordo com o critério de registros
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Assis 25/9/2014, 11:42

    Bom dia

    Fire

    Da maneira que grava a idade dos pacientes na tabela, eles vão ter eternamente a mesma idade.

    Para tirar as duvidas: Adiante a data do seu PC só 1 dia e teste. Eles vão ter a mesma idade....


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 25/9/2014, 14:09

    Dilson Bom dia
    Não estou conseguindo dar um erro variavel não definida
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TbPedidoEx WHERE" & " Codigo=" & qReq)

    Bom dia Assis
    obg pela dica
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 25/9/2014, 14:30

    Vai dar mesmo, pois você não colocou como escrevi, veja:

    Set rs = CurrentDb.OpenRecordset _
                      ("SELECT * FROM TbPedidoEx WHERE" _
                                                & " Codigo=" & qReq)


    Se não quiser com a linha quebrada, faça assim:
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TbPedidoEx WHERE Codigo=" & qReq)
    avatar
    Fire
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 76
    Registrado : 15/06/2014

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Fire 25/9/2014, 14:39

    Dilson vc é o cara!!!! cheers cheers

    Valeu mesmo deu certo
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Dilson 25/9/2014, 14:47

    Agradecemos por informar que resolveu.
    Volte sempre que precisar.

    Abraço!



    Conteúdo patrocinado


    [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros Empty Re: [Resolvido]Loop para abrir vários formulários de acordo com o critério de registros

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 13:22