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]Status de um registro em cx de texto não acoplada

    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Sáb 25 Fev 2017, 18:58

    Boa tarde a todos, preciso muito da ajuda de vocês

    Estou criando um sistema onde quero colocar uma caixa não acoplada a qual chamo de Status. Essa caixa não acoplada fica dentro do
    Formulário principal, mas quero que ela me retorne condição de um subformulário. As condições são: se o aluno foi matriculado no ano atual
    que também vem de outro formulário que se chama (ForAnoLetivo) aparece MATRICULADO senão NÃO MATRICULADO.

    Consegui fazer isso com a função =SeImed([Formulários]![ForCad_Aluno]![SubMatricula]![txt_AnoLetivo]=[Formulários]![Cad_Ano_Letivo]![Comb1];"MATRICULADO";"NÃO MATRICULADO"), mas como o subformulário tem mais de um registro quando clico em um registro que o campo
    ano letivo é diferente de ano atual aparece não matriculado sendo que já matriculei no ano atual. Eu quero que quando matriculo o aluno no ano
    atual a caixa de texto Status me retorne somente MATRICULADO independente se ele já tenha outros registros anteriores de anos passados.

    Me ajudem por favor, abraço.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Dom 26 Fev 2017, 07:29

    Sabendo que a tabela (por exemplo) SubFormCadAluno possui um numero de relacionamento com a tabela CadAluno. É possivel buscar qualquer dado no SubForm usando esse relacionamento que usualmente chamamos (chaves primárias e estrangeiras):

    No evento que achar melhor (no Ao Abrir do form talvez), use:

    Dim rs As DAO.Recordset
    Dim qStatus As Boolean
    Dim qAno As String
    qAno = format(Date, "YYYY")
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM NomeTabelaDoSubForm " _
    & "WHERE CampoAnoLetivo='" & qAno & "' AND CampoIdChaveEstrangeira =" & Nz(TextBoxChavePrimaria))
    If rs.RecordCount > 0 Then
          qStatus = True
    Else
          qStatus = False
    End If
    rs.Close
    Set rs = Nothing
    If qStatus = True Then
          Me!TextBoxStatus = "Matriculado"
    Else
          Me!TextBoxStatus = "Não Matriculado"
    End If

    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Dom 26 Fev 2017, 12:01

    Bom dia Dilson,

    infelizmente não deu certo, tentei fazer com o seguinte código:

    Private Sub Form_Current()

    If Forms![ForCad_Aluno]![SubMatricula].Form![txt_AnoLetivo] = Forms![Cad_Ano_Letivo]![Comb1] Then

    Me.status.Value = "MATRICULADO"

    Else
    Me.status.Value = "NÃO MATRICULADO"

    End If

    End Sub

    Mas me retorna somente NÃO MATRICULADO em todos os registros, mesmo matriculando no ano atual.

    Para entender melhor nesse vídeo de Giberlânio tem esse controle status https://www.youtube.com/watch?v=_UNTPvrfAic
    mais precisamente no minuto 4:50 do vídeo
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Dom 26 Fev 2017, 13:08

    Amigo quando fala que o dado vem de um subform logo imagino que existe relacionamento ai ficando um form dependendo de um subform ambos acessando tabelas diferentes porem encadeadas.

    Caso o cenário não for esse me informe, porque se for isso, não tenho nenhuma dúvida que o código que elaborei lhe servirá no pleno. Basta substituir com atenção nome de campos, tabelas e caminhos de referência à controle do form/subform.


    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Dom 26 Fev 2017, 17:57

    Boa tarde Dilson,

    Coloquei seu código no evento ao abrir do formulário e está quase dando certo. Gostaria que no lugar dessa variável qAno referenciasse o campo AnoLetivo de outro formulário.


    Outro probleminha que está acontecendo é quando clico no botão próximo registro e não tem mais registro aparece
    um erro em tempo de execução e aparece a consulta do código.

    Será que tem como você me ajudar na solução desses probleminhas? Agradeço desde já e desculpa a insistência.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Dom 26 Fev 2017, 18:49

    Para referenciar o campo de outro formulário:
    qAno = Forms!NomeDoFormulario!NomeDoCampo

    Para que o código funcione somente quando houver registro verifique antes:

    If Not NewRecord Then

    Dim rs As DAO.Recordset
    Dim qStatus As Boolean
    Dim qAno As String
    qAno = Forms!NomeDoFormulario!NomeDoCampo

    '...

    End If

    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Dom 26 Fev 2017, 19:09

    Problema Resolvido Dilson,

    muito obrigado mesmo, essa foi a primeira dúvida que eu postei aqui no Fórum e confesso que a ajuda
    veio muito rápido, não imaginei que seria tão rápido.

    Abraço.
    Agradecido.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Dom 26 Fev 2017, 19:31

    Olá que bom que deu certo. Quando consegue explicar mais ou menos como está disposto os campos, tabelas e forms e demonstra que pesquisou ou tentou algo sem sucesso certamente terá uma chance de receber ajuda mais rapidamente.

    Até!





    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Dom 26 Fev 2017, 21:24

    Boa noite,

    Será que é possível usar esse código em um campo combobox AnoLetivo no evento ao atualizar? O que eu quero com isso é
    atualizar automaticamente minha textbox Status ao mudar o AnoLetivo sem precisar sair do formulário e voltar. O código está
    ok, mas gostaria de mudar para quando alterar o campo AnoLetivo atualizar a textbox com os valores MATRICULADO;NÃO MATRICULADO.

    Private Sub Form_Current()

    'If Not NewRecord Then

    'Dim rs As DAO.Recordset
    'Dim qStatus As Boolean
    'Dim qAno As String
    'qAno = Forms![cad_Ano_Letivo]![Comb1]

    'Set rs = CurrentDb.OpenRecordset("SELECT * FROM tb_detalhesMatricula " _
    '& "WHERE AnoLetivo='" & qAno & "' AND Matricula =" & Nz(CodAluno))

    'If rs.RecordCount > 0 Then
    ' qStatus = True

    'Else

    'qStatus = False
    'End If

    'rs.Close

    'Set rs = Nothing

    'If qStatus = True Then

    'Me.status.Value = "Matriculado"

    'Else

    'Me.status.Value = "Não Matriculado"

    'End If

    'End If

    'End Sub
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Seg 27 Fev 2017, 05:59

    Não tenho visão de como está disposto os controles.

    A combobox está no mesmo formulário da textbox ?

    Explique como está as distancias de um controle para outro.
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 12:02

    Bom dia Dilson, estava sem internet, por isso não respondi logo.

    Então, minha combobox Cb_AnLetivo está em um SubFormulário e a textbox txt_Status está no Formulário Principal.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Seg 27 Fev 2017, 16:15

    No após atualizar da combobox que está no subformulário, use:

    If Combobox = "Matriculado" Then
    Forms!NomeDoFormulario!TextBoxStatus = "Matriculado"
    Else
    Forms!NomeDoFormulario!TextBoxStatus = "Não Matriculado"
    End If

    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 17:06

    Dilson, boa tarde.

    Na minha combobox os valores são: 2015;2016;2017... e quero que quando por exemplo selecionar 2016 e esse valor for igual a de
    outro campo de outro formulário que fica aberto, o campo Status me retorne MATRICULADO e se for vazio ou diferente de 2016 NÃO MATRICULADO.

    Esse código abaixo que você me passou é ótimo, mas ele só atualiza o status Matriculado e Não Matriculado quando saio do formulário e volto.

    Private Sub Form_Current()

    'If Not NewRecord Then
    'Dim rs As DAO.Recordset
    'Dim qStatus As Boolean
    'Dim qAno As String
    'qAno = Forms![cad_Ano_Letivo]![Comb1]

    'Set rs = CurrentDb.OpenRecordset("SELECT * FROM tb_detalhesMatricula " _
    '& "WHERE AnoLetivo='" & qAno & "' AND Matricula =" & Nz(CodAluno))

    'If rs.RecordCount > 0 Then
    ' qStatus = True

    'Else

    'qStatus = False
    'End If

    'rs.Close
    'Set rs = Nothing
    'If qStatus = True Then

    'Me.status.Value = "Matriculado"

    'Else

    'Me.status.Value = "Não Matriculado"

    'End If

    'End If

    'End Sub
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 17:09

    Não sei direito, mas talvez fazer com que a combobox AnoLetivo chame esse código daria certo, eu acho, mas não sei como fazer ...
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Seg 27 Fev 2017, 17:50

    Chegou a tentar o que passei na mensagem #Mensagem nº12 ?
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 18:15

    Tentei sim, mas de início não aparece nada no campo Status, depois que seleciono o valor na combobox aparece Não Matriculado e fica em todos os registros, e mesmo mudando na combobox não altera.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Seg 27 Fev 2017, 18:42

    Ok.
    Inevitavelmente não consigo compreender como está disposto seus forms e controles e como interagem. Por favor se desejar que eu continue ajudando, Mostre print's ou anexa parte do seu projeto somente com os objetos que quer automatizar.
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 19:13

    Segue a imagem pra você ter uma ideia, não sei como postar meu BD.
    Está quase perfeito com o código que você me enviou na 2ª mensagem o que
    quero fazer é com que a textbox Status atualize automaticamente quando eu mudar o ano.
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Seg 27 Fev 2017, 20:36

    Consegui disponibilizar meu bd, retirei alguns formulários, relatórios, etc. deixei praticamente o que precisava para você entender o que eu preciso.

    Obrigado pela ajuda.
    Anexos
    [Resolvido]Status de um registro em cx de texto não acoplada AttachmentSistemaDeMatrícula.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (427 Kb) Baixado 14 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]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Dilson Ter 28 Fev 2017, 11:37

    Transformei para uma função que recebe os parâmetros por argumentos, processa e devolve True ou False:

    Salve em um módulo e dê qualquer nome à ele:

    Public Function ChecarMatricula(argAno As String, argCodAluno As Long) As Boolean
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tb_detalhesMatricula " _
    & "WHERE AnoLetivo='" & argAno & "' AND Matricula =" & Nz(argCodAluno))
    If rs.RecordCount > 0 Then
    ChecarMatricula = True
    Else
    ChecarMatricula = False
    End If
    rs.Close
    Set rs = Nothing
    End Function


    Agora no evento "No atual" do form ForCad_Aluno, use:

    If Not NewRecord Then
    Dim qAno As String
    qAno = Forms![cad_Ano_Letivo]![Comb1]
    If ChecarMatricula(qAno, Me!CodAluno) = True Then
    Me.status.Value = "Matriculado"
    Else
    Me.status.Value = "Não Matriculado"
    End If
    End If


    E no controle txt_AnoLetivo do seu subformulário SubMatricula, no evento "Após atualizar" use:

    Me.Recalc
    Dim qAno As String
    qAno = Forms![cad_Ano_Letivo]![Comb1]
    If ChecarMatricula(qAno, Me.Matricula) = True Then
    Forms!ForCad_Aluno!status.Value = "Matriculado"
    Else
    Forms!ForCad_Aluno!status.Value = "Não Matriculado"
    End If



    Aqui funcionou. implemente e veja se resulta o que deseja.
    avatar
    pabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 12/03/2015

    [Resolvido]Status de um registro em cx de texto não acoplada Empty Status de um registro em cx de texto não acoplada

    Mensagem  pabricio Qua 01 Mar 2017, 07:30

    Dilson,

    você é fera, funcionou perfeitamente. Agora vou poder dar continuidade a meu projeto, o resultado
    que esperava era exatamente esse.

    Muito obrigado mais uma vez e outra vez desculpa a insistência.

    Grande abraço.

    Resolvido

    Conteúdo patrocinado


    [Resolvido]Status de um registro em cx de texto não acoplada Empty Re: [Resolvido]Status de um registro em cx de texto não acoplada

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Dom 24 Nov 2024, 23:26