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


    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    avatar
    Convidado
    Convidado


    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Empty [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    Mensagem  Convidado 17/12/2009, 22:47

    Boa noite a todos,

    Tenho uma consulta com a seguinte estrutura:

    SELECT TblDespesas.CodDespesa, TblDespesas.CodFormaPagto, TblDespesas.CodTipoDespesa, TblDespesas.HistoricoDespesa, TblDespesas.DataDespesa, TblDespesas.ValorDespesa, TblDespesas.QtdParcela, TblDespesas.NumParcela, Format([DataDespesa],"mm/yyyy") AS MesAnoDesp, TblFormaPagto.FormaPagto, TblTipoDespesa.TipoDespesa, Format([DataDespesa],"dd") AS Dia, TblDespesas.Parcelado
    FROM TblTipoDespesa INNER JOIN (TblFormaPagto INNER JOIN TblDespesas ON TblFormaPagto.CodFormaPagto = TblDespesas.CodFormaPagto) ON TblTipoDespesa.CodTipoDespesa = TblDespesas.CodTipoDespesa
    WHERE (((TblDespesas.CodFormaPagto) Like [Formulários]![FormPesquisa]![TxtForma] & "*") AND ((TblDespesas.CodTipoDespesa) Like [Formulários]![FormPesquisa]![TxtTipo] & "*") AND ((Format([DataDespesa],"mm/yyyy")) Like [Formulários]![FormPesquisa]![TxtMesAno] & "*"))
    ORDER BY TblDespesas.DataDespesa;

    Essa consulta é composta por tres tabelas (relacionadas)
    TblDespesas - Principal
    TblFormaPagto - 06 Registros
    TblTipoDespesa - 20 Registros

    Dessa forma ela me retorna todos os registros, pois preciso que o formulario (formPesquisa) mostre todos os lançamentos.

    Nesse formulario tenho tres combos para filtrar (Por Forma/Tipo/Mes e Ano).

    Meu Problema:

    Ao filtrar por TIPO DE DESPESA me retorna todos os "TipoDespesa" e não só o que eu selecionei na combo.
    Sei que é por causa do operador ( & "*" ) e já mudei o critério para:

    (TblDespesas.CodTipoDespesa) Like [Formulários]![FormPesquisa]![TxtTipo]

    Más dessa forma ao abrir, o formulario não mostra nada.

    Imagino que seja algo simples, só que não estou conseguindo resolver.


    Nivaldo
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Empty Re: [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    Mensagem  JPaulo 18/12/2009, 09:45

    Ola Nivaldo bom dia;

    Uma forma de contornar isso, é manipular o RecordSource do formulario e SubFormulario se tiver.

    Private Sub Form_Open(Cancel As Integer)
    Dim strSQL As String
    strSQL = " SELECT * FROM SuaConsulta;"
    Me.RecordSource = strSQL
    Me!SeuSubForm.LinkChildFields = ""
    Me!SeuSubForm.LinkMasterFields = ""
    End Sub

    Na instrução das combos, utilize algo deste tipo;

    que fiz para um colega, que filtra a Cidade e a Razão Social (2 Combos):


    Private Sub cboCidade_AfterUpdate()
    Dim strSQL As String
    Dim strSQLSF As String


    strSQL = "SELECT DISTINCT tblExemplo.RAZÃO_SOCIAL FROM tblExemplo "
    strSQL = strSQL & " WHERE tblExemplo.CIDADE = '" & cboCidade & "'"
    strSQL = strSQL & " ORDER BY tblExemplo.RAZÃO_SOCIAL;"

    cboCidade.RowSource = strSQL

    strSQLSF = "SELECT * FROM tblExemplo "
    strSQLSF = strSQLSF & " WHERE tblExemplo.CIDADE = '" & cboCidade & "'"

    Me!SeuSubForm.LinkChildFields = "CIDADE"
    Me!SeuSubForm.LinkMasterFields = "cboCidade"
    Me.RecordSource = strSQLSF
    Me.Requery
    End Sub



    Private Sub cboRazao_AfterUpdate()
    Dim strSQL As String
    Dim strSQLSF As String

    cboCidade = Null

    strSQL = "SELECT DISTINCT tblExemplo.CIDADE FROM tblExemplo "
    strSQL = strSQL & " WHERE tblExemplo.RAZÃO_SOCIAL = '" & cboRazao & "'"
    strSQL = strSQL & " ORDER BY tblExemplo.CIDADE;"

    cboCidade.RowSource = strSQL

    strSQLSF = "SELECT * FROM tblExemplo "
    strSQLSF = strSQLSF & " WHERE tblExemplo.RAZÃO_SOCIAL = '" & cboRazao & "'"

    Me!SeuSubForm.LinkChildFields = "RAZÃO_SOCIAL"
    Me!SeuSubForm.LinkMasterFields = "cboRazao"
    Me.RecordSource = strSQLSF
    Me.Requery
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Empty Re: [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    Mensagem  Convidado 18/12/2009, 16:45

    Boa tarde JPaulo,

    Valeu pela dica do RecordSource.
    Fiz outra consulta (idêntica) alterando somente o critério para:

    (TblDespesas.CodTipoDespesa) Like [Formulários]![FormPesquisa]![TxtTipo]

    E usando alguns IF's estou alterando o RecordSource do formulário para mostrar os dados corretos.

    Vou testar também em alguns relatórios.

    Mais uma vez obrigado.

    Nivaldo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Empty Re: [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    Mensagem  JPaulo 18/12/2009, 19:08

    Obrigado pelo retorno amigo.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta Empty Re: [Resolvidos]Alterar o RecordSource do formulário para interagir duas combos com dados de uma consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 18:11