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]Utilizar mais de um filtro em uma função

    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Qui 29 Nov - 14:46

    Saudações amigos.
    veja se é possivel o que eu estou tentando fazer:
    tenho um formulário que recebe dados de duas tabelas, uma TbAlunos e outra TbAlunosVinculados. A primeira tabela é onde está o cadastro de todos os alunos e a segunda só os alunos vinculados a alguma série. pois bem, tenho um formulário frmAlterarAluno que deve receber os dados das duas tabelas, só que, preciso que esses dados sejam filtrados pelo o campo IdAluno e IdAnoVin, já que com isso eu pretendo filtrar o aluno pelo ano e pelo código do aluno pesquisados num ListBox no formulário frmAlterarAluno. pensei no seguinte:
    criei um botão cmdSelecionarAluno que quando eu clicar irá jogar no formulário todos os dados das tabelas TbAlunos e TbAlunosVinculados filtrados pela função que estou tentando fazer. Não consegui. Então tentei atráves de uma consulta cnsGeral onde eu juntei as duas tabelas para aplicar os filtros na consulta via código:

    dim TbAv as dao.recordset
    dim stSQL as string
    stSQL = "select * from cnsGeral where IdAluno=" & txtId
    set TbAv = CurrentDb.OpenRecordset(stSQL)
    Daí eu só indico para qual campo irá sos dados encontrados tipo:
    txtAluno = TbAv("NomeCompleto")
    e assim por diante.
    O problema agora é como eu irei filtrar o IdAnoVin através do outro filtro, pois não estou consegindo agrupar o outro filtro nessa função.

    tentei assim stSQL = "select * from cnsGeral where IdAluno=" & txtId and "IdAnoVin=" txtIdAno e não deu certo. Tentei então com duas variaveis, uma para cada filtro ficou assim:

    dim TbAv as dao.recordset
    dim stSQL as string
    dim sSQL as string
    stSQL = "select * from cnsGeral where IdAluno=" & txtId
    sSQL = "select * from cnsGeral where IdAnoVin=" & txtIdAno
    set TbAv = CurrentDb.OpenRecordset(stSQL & sSQL)

    mais também não deu certo.
    Agora venho recorrer as pessoas com mais experiências para talvez me auxilia a sair dessa incógnita, ou seja, como eu faço para filtrar os dados das duas tabela ou da consulta pelos dois filtros.
    Desde já agradeço a todos! Smile






    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Alexandre Neves Qui 29 Nov - 16:47

    Boa noite, Diego
    Tenha o formulário com todos os registos. Ao abrir, indique o filtro que pretende
    DoCmd.OpenForm "NomeForm", , , "IdAluno=" & txtId & " and IdAnoVin=" & txtIdAno


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Qui 29 Nov - 22:46

    Boa noite Alexandre Neves, essa dica funciona com formulários desacoplados (popular) também, ou só funciona com formulários acopplados?
    Saudações!!!


    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Cláudio Más Qui 29 Nov - 23:26

    Olá,

    Tente assim:

    Código:
    stSQL = "select * from cnsGeral where IdAluno=" & txtId & " and IdAnoVin=" txtIdAno
    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Qui 29 Nov - 23:48

    Olá Cláuido.
    tentei como você falou só que ai vem uma mensagem:
    erro de compilação:
    era esperado: fim da instrução
    e quando eu coloco aspas no final ela não executa.
    saudações

    stSQL = "select * from cnsGeral where IdAluno=" & txtId & " and IdAnoVin=" txtIdAno

    mudei o código acrescentando um operador & no final mais não rolou
    stSQL = "select * from cnsGeral where IdAluno=" & txtId & " and IdAnoVin=" & txtIdAno


    Última edição por Diego Rosilan em Sex 30 Nov - 0:11, editado 1 vez(es)


    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!
    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Qui 29 Nov - 23:56

    Pessoal o código que eu estou usando é o seguinte:

    Function SelecionarAluno()
    Dim Alu As DAO.Recordset
    Dim stSQL As String
    Dim linha As Integer
    'Expressão para abrir a tabela cliente
    'By JPaulo ® Maximo Access
    On Error Resume Next

    linha = Me.Lista2.ListIndex >= 0

    stSQL = "select * from cnsGeral where IdAluno=" & txtId & " and IdAnoVin=" txtIdAno

    Set Alu = CurrentDb.OpenRecordset(sSQL)

    If Not Alu.BOF Then
    'Expresão para identificar para onde vai cada campo do formulário

    'Identificação
    Me.TxtId = Alu("IdAluno")
    Me.TxtAluno = Alu("Nomecompleto")
    Me.CboSexo = Alu("Sexo")
    Me.CboCor = Alu("Cor")
    Me.TxtNascimento = Alu("DataNascimento")

    'Filiação
    Me.TxtMae = Alu("Mae")
    Me.TxtPai = Alu("Pai")
    Me.TxtResponsavel = Alu("Responsavel")

    'Origem
    Me.TxtNacionalidade = Alu("Nacionalidade")
    Me.TxtPaisDeOrigem = Alu("Pais")
    Me.txtUF = Alu("UF")
    Me.TxtMunicípio = Alu("Municipio")

    'Documentação
    Me.TxtNis = Alu("Nis")
    Me.CboDocumento = Alu("documento")
    Me.txtCartaoSUS = Alu("NcartaoSUS")

    'Endereço
    Me.CboResidencia = Alu("LocalizacaoResidencia")
    Me.TxtEndereço = Alu("EndereçoResidencia")
    Me.TxtNumero = Alu("NdaResidencia")
    Me.TxtComplemento = Alu("ComplementoResidencia")
    Me.TxtBairro = Alu("BairroResidencia")
    Me.TxtCep = Alu("CepResidencia")
    Me.CboUFResidencia = Alu("UFResidencia")
    Me.TxtMunicipioDaResidencia = Alu("MunicipioResidencia")

    'Contato
    Me.TxtTelefone = Alu("Telefone")
    Me.TxtCelular = Alu("Celular")
    'Adicionais
    If Alu("Especial") = -1 Then
    Me.CboEspecial = "SIM"
    Else
    Me.CboEspecial = "NÃO"
    End If
    Me.txtAnoIngresso = Alu("AnoIngresso")
    Me.txtProgramas = Alu("programas")

    End If
    Alu.Close
    Set Alu = Nothing

    End Function

    quando uso só um filtro funciona beleza, mas quando tento incluir o outro não funciona.
    Saudações.


    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!
    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Sex 30 Nov - 0:46

    Pessoal muito obrigado pelo tempo que vocês disponobilizaram em prol do meu problema o código do Cláudio Más depois que eu inseri o oprerador & no ultimo filtro funfou beleza! ficou assim:

    Function SelecionarAluno()
    Dim Alu As DAO.Recordset
    Dim stSQL As String
    Dim linha As Integer
    'Expressão para abrir a tabela cliente
    'By JPaulo ® Maximo Access
    On Error Resume Next
    linha = Me.Lista2.ListIndex >= 0
    stSQL = ("select * from cnsGeral where IdAluno=" & Lista2.Column(0) & " and IdAnoVin=" & cboAno.Column(1))
    Set Alu = CurrentDb.OpenRecordset(stSQL)

    If Not Alu.BOF Then
    'Expresão para identificar para onde vai cada campo do formulário
    'Identificação
    Me.TxtId = Alu("IdAluno")
    Me.TxtAluno = Alu("Nomecompleto")
    Me.CboSexo = Alu("Sexo")
    Me.CboCor = Alu("Cor")
    Me.TxtNascimento = Alu("DataNascimento")

    'Filiação
    Me.TxtMae = Alu("Mae")
    Me.TxtPai = Alu("Pai")
    Me.TxtResponsavel = Alu("Responsavel")

    'Origem
    Me.TxtNacionalidade = Alu("Nacionalidade")
    Me.TxtPaisDeOrigem = Alu("Pais")
    Me.txtUF = Alu("UF")
    Me.TxtMunicípio = Alu("Municipio")

    'Documentação
    Me.TxtNis = Alu("Nis")
    Me.CboDocumento = Alu("documento")
    Me.txtCartaoSUS = Alu("NcartaoSUS")

    'Endereço
    Me.CboResidencia = Alu("LocalizacaoResidencia")
    Me.TxtEndereço = Alu("EndereçoResidencia")
    Me.TxtNumero = Alu("NdaResidencia")
    Me.TxtComplemento = Alu("ComplementoResidencia")
    Me.TxtBairro = Alu("BairroResidencia")
    Me.TxtCep = Alu("CepResidencia")
    Me.CboUFResidencia = Alu("UFResidencia")
    Me.TxtMunicipioDaResidencia = Alu("MunicipioResidencia")

    'Contato
    Me.TxtTelefone = Alu("Telefone")
    Me.TxtCelular = Alu("Celular")
    Me.txtAnoIngresso = Alu("AnoIngresso")
    Me.txtProgramas = Alu("TipoProgramas")

    'Adicionais
    If Alu("Especial") = -1 Then
    Me.CboEspecial = "SIM"
    Else
    Me.CboEspecial = "NÃO"
    End If
    If
    Alu("BoslaFamilia") = -1 Then
    Me.cboBolsaFamilia = "SIM"
    Else
    Me.cboBolsaFamilia = "NÃO"
    End If
    If Alu("TRANSPORTE") = -1 Then
    Me.cboTransporte = "SIM"
    Else
    Me.cboTransporte = "NÃO"
    End If
    If Alu("programas") = -1 Then
    Me.cboPrograma = "SIM"
    Else
    Me.cboPrograma = "NÃO"
    End If

    End If
    Alu.Close
    Set Alu = Nothing

    End Function

    Obrigado a todos e um forte abraço!


    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!
    avatar
    Diego Rosilan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 03/08/2011

    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Diego Rosilan Sex 30 Nov - 0:50

    cheers


    .................................................................................
    O homem sábio diante do homem tolo Faz-se de tolo para que o homem tolo se sinta sábio!

    Conteúdo patrocinado


    [Resolvido]Utilizar mais de um filtro em uma função Empty Re: [Resolvido]Utilizar mais de um filtro em uma função

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 2 maio - 9:14