MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Acesso ao mesmo Relatorio por outros Forms

    avatar
    fazerbem
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 381
    Registrado : 05/03/2017

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty [Resolvido]Acesso ao mesmo Relatorio por outros Forms

    Mensagem  fazerbem em 6/9/2018, 15:23

    Ola,
    Tenho 5 Forms Iguais e atraves do primeiro consigo acessar um determinado Relatorio para imprimir.
    Neste relatorio na fonte de registro referente ao campo IdProduto, coloquei o seguinte crieterio:

    [Formulários]![frmPDV]![txtidVenda] Ou [Formulários]![frmPDV2]![txtidVenda] Ou [Formulários]![frmPDV3]![txtidVenda] Ou [Formulários]![frmPDV4]![txtidVenda] Ou [Formulários]![frmPDV5]![txtidVenda]

    Acontece que se eu carregar apenas um dos PDV, por exemplo o primeiro ( PDV ) dara uma mensagem :

    Inserir valores de parametros para cada um dos outros PDV que nao estao rodando. Dou OK e entao aontece o carregamento normal do Relatorio condizente ao PDV que foi carregado.

    Terei que criar um Relatorio identivo para cada PDV ou existe uma forma para a funcao " OU " funcionar ?

    Grato

    Andre

    allysson1511
    allysson1511
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 27/04/2018

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty re: Acesso ao mesmo Relatorio por outros Forms

    Mensagem  allysson1511 em 6/9/2018, 20:36

    Olá Boa tarde,
    eu tenho um código que verifica se o formulário está aberto.
    Código:
    Function IsLoaded(ByVal strFormName As String) As Integer
    ' Retorna True se o formulário especificado estiver aberto
    ' no modo Formulário ou no modo Folha de Dados.
    Const conObjStateClosed = 0
    Const conDesignView = 0

    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
    If Forms(strFormName).CurrentView <> conDesignView Then
    IsLoaded = True
    End If
    End If
    End Function
    você pode estar colocando esse código dentro de um módulo.
    e coloca esse código na consulta do relatório.
    Código:
    SeImed(IsLoaded("frmPDV");[Formulários]![frmPDV]![txtidVenda];SeImed(IsLoaded("frmPDV2");[Formulários]![frmPDV2]![txtidVenda];SeImed(IsLoaded("frmPDV3");[Formulários]![frmPDV3]![txtidVenda];SeImed(IsLoaded("frmPDV4");[Formulários]![frmPDV4]![txtidVenda];SeImed(IsLoaded("frmPDV5");[Formulários]![frmPDV5]![txtidVenda])))))
    esse código vai estar verificando qual desses formulário estão aberto e vai filtrar pelo que estiver aberto.
    espero ter ajudado qualquer dúvida estamos aqui.
    good guy
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1287
    Registrado : 05/02/2010

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty Acesso ao mesmo Relatorio por outros Forms

    Mensagem  good guy em 6/9/2018, 20:37

    Olá fazerbem,

    Veja se te atende: Cada formulário poderá imprimir um mesmo relatório com sua respectiva tabela, ou seja, a tabela de cada formulário. Por exemplo, se o formulário 1 estiver aberto e a sua fonte de dados for a tabela A, seu relatório será com a tabela A. Se for o formulário 2 que estiver aberto e a sua fonte de dados for a tabela B, seu relatório será com a tabela B etc. Criei um módulo com uma única função para este algoritmo.

    Código:
    Public Function ImprimeRelatorio()
    Dim Db As Database
    Set Db = CurrentDb
    On Error GoTo Err_Handler
    If CurrentProject.AllForms("Teste").IsLoaded Then
    DoCmd.OpenReport "Teste", acViewPreview, , , acDialog
    ElseIf CurrentProject.AllForms("Teste2").IsLoaded Then
    DoCmd.OpenReport "Teste", acViewPreview, , , acDialog
    Else
    DoCmd.OpenReport "Teste", acViewPreview, , , acDialog
    End If


    Exit_ImprimeRelatorio:
    Set Db = Nothing
    Exit Function
    Err_Handler:
    MsgBox "Error #: " & Err.Number & vbNewLine & Err.Description
    Resume Exit_ImprimeRelatorio
    End Function

    Na abertura do relatório:

    Código:
    Private Sub Report_Open(Cancel As Integer)

    If CurrentProject.AllForms("Teste").IsLoaded Then
    Me.RecordSource = "SELECT * FROM tblTeste"
    ElseIf CurrentProject.AllForms("Teste2").IsLoaded Then
    Me.RecordSource = "SELECT * FROM tblTeste2"
    Else
    Me.RecordSource = "SELECT * FROM tblTeste3"
    End If
    End Sub
    Anexos
    [Resolvido]Acesso ao mesmo Relatorio por outros Forms AttachmentForum.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (512 Kb) Baixado 12 vez(es)
    avatar
    fazerbem
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 381
    Registrado : 05/03/2017

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty Re: [Resolvido]Acesso ao mesmo Relatorio por outros Forms

    Mensagem  fazerbem em 8/9/2018, 14:44

    Obrigado aos dois amigos !

    Andre
    good guy
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1287
    Registrado : 05/02/2010

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty Acesso ao mesmo Relatorio por outros Forms

    Mensagem  good guy em 10/9/2018, 14:50


    Conteúdo patrocinado

    [Resolvido]Acesso ao mesmo Relatorio por outros Forms Empty Re: [Resolvido]Acesso ao mesmo Relatorio por outros Forms

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/12/2019, 14:04