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]Alterar fonte de dados de um subformulario

    avatar
    Josué Carvalho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 06/10/2015

    [Resolvido]Alterar fonte de dados de um subformulario Empty [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Josué Carvalho 13/10/2015, 13:56

    Prezados,

    Tenho um formulário em cujo detalhe há apenas um subformulário e nada mais. Contudo, no cabeçalho há uma combobox que seleciona a filial (facility) desejado. A partir desta seleção eu gostaria de atualizar a fonte de dados do sub-formulário.

    Tenho tentado o código abaixo mas indica erro na linha indicada. Qto ao Sql, o fiz copiando do sql original de uma consulta acrescentando as duas ultimas condições. Não parece haver erros ou problemas nesta parte.

    Código:
    Private Sub cmb_FacilityRef_Change()
    Dim vSQL As String

    vSQL = "SELECT Tab_Requisição.Data, Tab_Requisição.Numero, Tab_Requisição.Numero, IIf([TipoMov]='Banco' And [Cheque]<>0,'Manual',' ') AS TipoPagoBanco, IIf([TipoMov]='Banco',[Cheque],' ') AS ExpCheque, Tab_PlanDeCuenta.TipoMov, IIf(Val([Conta])=11100,[Cuenta],[Conta]) AS ExpConta, Tab_Requisição.Facility, Tab_ReqContab.Histórico, Tab_ReqContab.VlLancto, Tab_Requisição.CodAudit, 'INTEGRATED' AS CodLibro, 'Coste' AS TipoReg"
    vSQL = vSQL & "FROM Tab_Requisição INNER JOIN (Tab_PlanDeCuenta INNER JOIN Tab_ReqContab ON Tab_PlanDeCuenta.Rubrica = Tab_ReqContab.Conta) ON Tab_Requisição.Numero = Tab_ReqContab.Numero"
    vSQL = vSQL & "WHERE (((((Tab_Requisição.Flag1)=False) AND ((Tab_Requisição.Tipo)<>'Activo')"
    vSQL = vSQL & "AND (FACILITY)=('" & cmb_FacilityRef & "') AND (Not IsNull(AutorizadaPor)));"

    Forms![Frm_Jornal]![Frm_Jornal Subformulário].RecordSource = vSQL   '*** Erro nesta linha => Objeto não aceita propried ou método

    [Frm_Jornal Subformulário].Requery

    End Sub

    Alguém pode me ajudar a encontrar a solução?

    Desde já sou grato.
    Pablo Neruda
    Pablo Neruda
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 17/09/2010

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Pablo Neruda 13/10/2015, 15:14

    Amigo, tenta mudar o recordsource para recorset.

    Eu uso assim para controles e formulários...


    Set FormAberto.Controls(Controle.Name).Recordset = rs(3)


    .................................................................................
    [Resolvido]Alterar fonte de dados de um subformulario Uc?export=view&id=0B-lnOJoekdM2VzZBQzFMVzRreTg
    avatar
    Josué Carvalho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 06/10/2015

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Josué Carvalho 13/10/2015, 16:25

    Pablo,

    Desculpe meu raso conhecimento, mas não entendi o comando... Poderia "destrinchá-lo" por favor?
    De qqer modo, muito obrigado!
    Pablo Neruda
    Pablo Neruda
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 17/09/2010

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Pablo Neruda 13/10/2015, 17:29

    Considerando que a sua referencia ao sub formulário esteja correta faça essa alteração na sua linha

    mude isso: Forms![Frm_Jornal]![Frm_Jornal Subformulário].RecordSource = vSQL

    para isso: Set Forms![Frm_Jornal]![Frm_Jornal Subformulário].Recordset = vSQL



    .................................................................................
    [Resolvido]Alterar fonte de dados de um subformulario Uc?export=view&id=0B-lnOJoekdM2VzZBQzFMVzRreTg
    Pablo Neruda
    Pablo Neruda
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 17/09/2010

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Pablo Neruda 13/10/2015, 17:43

    Aqui estou numa máquina nova sem muitos exemplos mas a referencia correta para usar o recorset seria assim:

    Set Forms![Formulário]![SubFormulário].Form.Recordset = vSQL


    .................................................................................
    [Resolvido]Alterar fonte de dados de um subformulario Uc?export=view&id=0B-lnOJoekdM2VzZBQzFMVzRreTg
    avatar
    Josué Carvalho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 06/10/2015

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Josué Carvalho 13/10/2015, 19:31

    Agora indica que o objeto é obrigatório ... Sad
    Pablo Neruda
    Pablo Neruda
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 17/09/2010

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Pablo Neruda 14/10/2015, 16:13

    Tenta isso, dando certo você altera depois...

    Private Sub cmb_FacilityRef_Change()

    Dim BD as Database
    Dim RS as Recordset
    Dim vSQL As String

    Set DB = CURRENTDB()

    vSQL = "SELECT Tab_Requisição.Data, Tab_Requisição.Numero, Tab_Requisição.Numero, IIf([TipoMov]='Banco' And [Cheque]<>0,'Manual',' ') AS TipoPagoBanco, IIf([TipoMov]='Banco',[Cheque],' ') AS ExpCheque, Tab_PlanDeCuenta.TipoMov, IIf(Val([Conta])=11100,[Cuenta],[Conta]) AS ExpConta, Tab_Requisição.Facility, Tab_ReqContab.Histórico, Tab_ReqContab.VlLancto, Tab_Requisição.CodAudit, 'INTEGRATED' AS CodLibro, 'Coste' AS TipoReg"
    vSQL = vSQL & "FROM Tab_Requisição INNER JOIN (Tab_PlanDeCuenta INNER JOIN Tab_ReqContab ON Tab_PlanDeCuenta.Rubrica = Tab_ReqContab.Conta) ON Tab_Requisição.Numero = Tab_ReqContab.Numero"
    vSQL = vSQL & "WHERE (((((Tab_Requisição.Flag1)=False) AND ((Tab_Requisição.Tipo)<>'Activo')"
    vSQL = vSQL & "AND (FACILITY)=('" & cmb_FacilityRef & "') AND (Not IsNull(AutorizadaPor)));"


    SET RS = BD.OPENRECORSET(vSQL)

    Forms![Frm_Jornal]![Frm_Jornal Subformulário].Recordset = RS

    [Frm_Jornal Subformulário].Requery

    End Sub


    .................................................................................
    [Resolvido]Alterar fonte de dados de um subformulario Uc?export=view&id=0B-lnOJoekdM2VzZBQzFMVzRreTg
    avatar
    Josué Carvalho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 06/10/2015

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Josué Carvalho 14/10/2015, 19:29

    Pablo, muito obrigado pela ajuda.

    Como proposta a outros que tenham problemas semelhantes, deixo aqui uma outra ideia que também resolveu a minha questão:

    Para além de uma instrução SQL base (e grande o suficiente) ainda precisava de que o usuário selecionasse um campo e este fosse agregado aos critérios de seleção dos registros. Então acrescentei ao filtro do subformulário a instrução:

    [Facility] = [cmb_FacilityRef]

    Sendo o primeiro o campo da tabela e o segundo a ComboBox pela qual o usuário indica a filial desejada.

    O código apresentado pelo Pablo me deram ideias de como incrementar também outras rotinas.

    Mais uma vez, obrigado!
    Pablo Neruda
    Pablo Neruda
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 17/09/2010

    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Pablo Neruda 14/10/2015, 20:24

    Bom!!! Very Happy


    .................................................................................
    [Resolvido]Alterar fonte de dados de um subformulario Uc?export=view&id=0B-lnOJoekdM2VzZBQzFMVzRreTg

    Conteúdo patrocinado


    [Resolvido]Alterar fonte de dados de um subformulario Empty Re: [Resolvido]Alterar fonte de dados de um subformulario

    Mensagem  Conteúdo patrocinado


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