Eu penso que teria que ser um relatório não acoplado. É isso?
4 participantes
[Resolvido]Mais de uma sessão para o mesmo relatório
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº1
[Resolvido]Mais de uma sessão para o mesmo relatório
Tenho um programa de contabilidade em access que gera o relatório razão tendo por base dois critérios: o mês e a conta contábil. Como padrão eu consigo imprimir um formulário na tela. Tem como eu abrir uma outra sessão deste mesmo formulário com dados diferentes?
Eu penso que teria que ser um relatório não acoplado. É isso?
Eu penso que teria que ser um relatório não acoplado. É isso?
crysostomo- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2746
Registrado : 23/01/2018
Boa tarde. Bem vindo ao fórum
Como seria essa sessão, empresa? detalhe para nós ou deixa aquiseu Bd, pois na programação há possibilidades
Como seria essa sessão, empresa? detalhe para nós ou deixa aquiseu Bd, pois na programação há possibilidades
.................................................................................
Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
Uma mão ajuda a outra.
Feliz aquele que transfere o que sabe e aprende o que ensina.
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
Boa noite somente para acompanhar o tópico
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
Quando eu digo sessão, quero dizer mais de uma tela do mesmo relatório mas com dados diferentes. O relatório razão que eu tenho é baseado numa consulta que se baseia numa tabela. Nesse caso eu consulto uma conta por ex. Se eu quiser consultar outra conta preciso fechar o relatório e emitir outro.
O que eu quero é um relatório que permite abrir várias contas ao mesmo tempo.
Eu creio que deve ser um relatório acionado por sql que permite obter uma cópia da tabela mas sem permissão de alterar os dados. Seria somente leitura.
Tem alguma coisa a ver com recordset, dynaset, etc
É isso.
O que eu quero é um relatório que permite abrir várias contas ao mesmo tempo.
Eu creio que deve ser um relatório acionado por sql que permite obter uma cópia da tabela mas sem permissão de alterar os dados. Seria somente leitura.
Tem alguma coisa a ver com recordset, dynaset, etc
É isso.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
Bom dia josuel!
Acredito que seja até possível fazer algo como você esta querendo, porem seria um trabalho enorme para criar um código para gerar tabelas temporárias e relatórios temporários (nem sei se seria possível).
Meu conselho e gerar em PDF cada conta e abrir o PDF.
Segue exemplo:
Acredito que seja até possível fazer algo como você esta querendo, porem seria um trabalho enorme para criar um código para gerar tabelas temporárias e relatórios temporários (nem sei se seria possível).
Meu conselho e gerar em PDF cada conta e abrir o PDF.
Segue exemplo:
- Anexos
- Criar-Abrir-PDF.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (52 Kb) Baixado 7 vez(es)
josuel gosta desta mensagem
crysostomo- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2746
Registrado : 23/01/2018
Será um relatório com filtro nele pode abrir várias tela assim como o login pode fazer o reports também faz dependente de quantas sessões você tem ou terá.
Mas uma alerta para mim é será que a memória do PC vai ter espaço?
Veja o exemplo do nosso amigo e comece com pouco assim nos vamos juntando conhecimentos para chegar lá
Mas uma alerta para mim é será que a memória do PC vai ter espaço?
Veja o exemplo do nosso amigo e comece com pouco assim nos vamos juntando conhecimentos para chegar lá
.................................................................................
Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
Uma mão ajuda a outra.
Feliz aquele que transfere o que sabe e aprende o que ensina.
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
Gerar os relatórios em pdf já ajuda muito. Foi genial. Nem sabia que havia essa possibilidade.
Já comecei a criar um procedimento com base no arquivo enviado.
Só que está dando inconsistência. Até onde eu digitei a linha ele abre para salvar em pdf
Podem me ajudar?
Segue o código do botão:
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim stDocName As String
Dim stLinkCriteria As String
'DoCmd.Close acForm, "frmRazaoMes"
stDocName = "frmRazaoMes"
stLinkCriteria = "[IdCuenta]=" & Me![IdCuenta]
DoCmd.OutputTo acOutputReport, "frmRazaoMes", acFormatPDF
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox Err.Description
Resume Exit_Comando16_Click
End Sub
PS.: Não consegui entender o que vai depois do acFormatPDF.
Já comecei a criar um procedimento com base no arquivo enviado.
Só que está dando inconsistência. Até onde eu digitei a linha ele abre para salvar em pdf
Podem me ajudar?
Segue o código do botão:
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim stDocName As String
Dim stLinkCriteria As String
'DoCmd.Close acForm, "frmRazaoMes"
stDocName = "frmRazaoMes"
stLinkCriteria = "[IdCuenta]=" & Me![IdCuenta]
DoCmd.OutputTo acOutputReport, "frmRazaoMes", acFormatPDF
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox Err.Description
Resume Exit_Comando16_Click
End Sub
PS.: Não consegui entender o que vai depois do acFormatPDF.
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
Continuando: parece que eu tenho que digitar um caminho para o relatório. É isso?
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
Boa noite Josuel!
Irei comentar o codigo para seu entendimento.
Mais antes um duvida, você esta gerando PDF do formulário ? ou o nome "frmRazaoMes" é um relatório ?
Segue abaixo o codigo comentado, cole no modulo do Access para entender melhor
Irei comentar o codigo para seu entendimento.
Mais antes um duvida, você esta gerando PDF do formulário ? ou o nome "frmRazaoMes" é um relatório ?
Segue abaixo o codigo comentado, cole no modulo do Access para entender melhor
- Código:
Private Sub Comando8_Click() ' Ao clicar no botão "Comando8" irá realizar os códigos abaixo
Dim Caminho As String ' String "Caminho" para guarda um valor.
Dim DataCompleta As String ' String "DataCompleta " para guarda um valor.
Caminho = CurrentProject.Path ' pega o caminho que seu banco access esta salvo, e salva na String "Caminho". Ex: "C:\Documentos"
DataCompleta = Replace(Date, "/", "-") ' Salva o valor na String "DataCompleta", pegando a data e alterando o "/" por "-". pois para salvar arquivos no Windows não pode conter o caractere "/" no nome do arquivo, mais "-" aceita.
DoCmd.OutputTo acOutputReport, "rlMovimentos", acFormatPDF, Caminho & "\" & Me.txConta & " - " & DataCompleta & ".pdf", True 'Salva o relatorio "rlMovimentos" em PDF no caminho montado com as String acima, Ex: Numero da conta 1001, data atual 17/10/2022 e seu Banco do Access esta no "C:\Documentos". Ele irá criar e salvar o arquivo (C:\Documentos/1001-17-10-2022.PDF), e o True e para abrir o arquivo após cria-lo, caso não queira abrir coloque False.
End Sub
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº10
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Prezado bigfill
Corrigi o código conforme você passou. Na verdade era preciso mesmo alterar o nome do objeto de formulário para relatório.
Ainda está dando erro. O erro é o seguinte: O nome do arquivo é sempre o mesmo. Daí ele cancela a operação OUTPUT.
O relatório "Razão por Conta" tem duas variáveis: a conta e o mês. Ambas as variáveis são uma combo. A combo da conta o código aceita. Mas não aceita a combo do mês.
Isso é necessário para configurar relatórios diferentes.
Como eu acerto isso?
Corrigi o código conforme você passou. Na verdade era preciso mesmo alterar o nome do objeto de formulário para relatório.
Ainda está dando erro. O erro é o seguinte: O nome do arquivo é sempre o mesmo. Daí ele cancela a operação OUTPUT.
O relatório "Razão por Conta" tem duas variáveis: a conta e o mês. Ambas as variáveis são uma combo. A combo da conta o código aceita. Mas não aceita a combo do mês.
Isso é necessário para configurar relatórios diferentes.
Como eu acerto isso?
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº11
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Boa tarde josuel!
Quando o PDF e gerado e já existe um com o mesmo nome, ele salva por cima. Assim atualizando o arquivo.
A outra duvida referente ao mês, isso não interfere não, o nome do arquivo você coloca do jeito que desejar. Eu coloquei "Conta" e "Data" como um exemplo. Mais se tiver outros campos que possa ajudar a identificar o relatório pode ser usado.
Quando o PDF e gerado e já existe um com o mesmo nome, ele salva por cima. Assim atualizando o arquivo.
A outra duvida referente ao mês, isso não interfere não, o nome do arquivo você coloca do jeito que desejar. Eu coloquei "Conta" e "Data" como um exemplo. Mais se tiver outros campos que possa ajudar a identificar o relatório pode ser usado.
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº12
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
É preciso que o código dê um nome diferente para cada arquivo igual o que ocorre com o exemplo. Só que no caso do meu relatório o nome é o mesmo só que o conteúdo é diferente.
Por exemplo.: a conta "adiantamento a empregados" é numero 74. Quando eu seleciono o mês e a conta o código gera o pdf e abre. Se eu mudo o mês do relatório para a mesma conta ele dá a mensagem de erro: Erro em tempo de execução "2501". A ação output foi cancelada.
Tentei pedir o mesmo relatório e ele não sobrepõe. Dá o mesmo erro.
Se eu peço contas diferentes ele gera o pdf independente do mês. Ocorre que eu quero vários meses da mesma conta. O código precisa ter nomes diferentes ao gerar o pdf.
O banco de dados é muito grande. Senão daria para enviar uma cópia dele.
Por exemplo.: a conta "adiantamento a empregados" é numero 74. Quando eu seleciono o mês e a conta o código gera o pdf e abre. Se eu mudo o mês do relatório para a mesma conta ele dá a mensagem de erro: Erro em tempo de execução "2501". A ação output foi cancelada.
Tentei pedir o mesmo relatório e ele não sobrepõe. Dá o mesmo erro.
Se eu peço contas diferentes ele gera o pdf independente do mês. Ocorre que eu quero vários meses da mesma conta. O código precisa ter nomes diferentes ao gerar o pdf.
O banco de dados é muito grande. Senão daria para enviar uma cópia dele.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº13
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
josuel tenta mandar somente a parte que esta gerando o erro.
Tipo:
Uma tabela
Uma consulta
Um formulário
Um relatório
Tipo:
Uma tabela
Uma consulta
Um formulário
Um relatório
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº14
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Segue uma cópia do arquivo teste
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº15
Mais de uma sessão para o mesmo relatório
Segue cópia reduzida do arquivo.
É preciso que o código gere um nome diferente para cada pdf. A conta é sempre a mesma mas o conteúdo é de mês diferente
É preciso que o código gere um nome diferente para cada pdf. A conta é sempre a mesma mas o conteúdo é de mês diferente
- Anexos
- TESTA PDF - Copia.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (1.4 Mb) Baixado 3 vez(es)
crysostomo- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2746
Registrado : 23/01/2018
- Mensagem nº16
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Cadê o formulário frmRazaoMes?
DoCmd.OutputTo acOutputReport, "rlMovimentos", acFormatPDF, Caminho & "\" & Me.cmbMes & ".pdf", True
DoCmd.OutputTo acOutputReport, "rlMovimentos", acFormatPDF, Caminho & "\" & Me.cmbMes & ".pdf", True
Última edição por crysostomo em 19/10/2022, 22:40, editado 1 vez(es)
.................................................................................
Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
Uma mão ajuda a outra.
Feliz aquele que transfere o que sabe e aprende o que ensina.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº17
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Testa se seria isso
- Anexos
- TESTA PDF - Atualizado.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (257 Kb) Baixado 6 vez(es)
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº18
Mais de uma sessão para o mesmo relatório
Funcionou perfeitamente.
Poderia explicar as linhas do código?
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
Eu quero que os relatórios fiquem numa pasta separada da pasta do banco. É só criar a pasta e informar o caminho no código?
Grato pela ajuda
Poderia explicar as linhas do código?
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
Eu quero que os relatórios fiquem numa pasta separada da pasta do banco. É só criar a pasta e informar o caminho no código?
Grato pela ajuda
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº19
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Boa noite josuel!
Que bom que deu certo, o fórum agradece.
Irei comentar cada linha para seu entendimento.
Dim N As String (String para guardar um valor, coloquei o nome dela como "N" mais poder ser qualquer coisa que não conflite com as palavras reservadas para o Access [Tipo: "Time", etc...]
Dim MM As String (String para guardar outro valor, nomeada como "MM")
Dim Caminho As String (String para guardar outro valor, nomeada como "Caminho")
Caminho = CurrentProject.Path (Atribui o valor a String "Caminho", neste caso o caminho onde esta salvo o seu banco do Access)
MM = Replace(Me.cmbMes, "/", "-") (Atribui o valor a String "MM", neste caso o valor do campo "cmbMes". Porem como no campo esta em formato "09/2022", o Windows não aceita "/" como nome de arquivo. No nosso caso o PDF salvo, por isso o comando "Replace" substitui o "/" por "-", pois esse sim o Windows aceita.
N = MM & " - " & Me.IdCuenta.Column(0) (Atribui o valor a String "N", neste caso o valor do campo da String "MM" e o valor do campo "IdCuenta", como este campo tem mais de uma coluna ao colocar o comando ".Column(0)" você indica qual coluna quer trazer como valor. Se colocar ".Column(1)" pega a coluna posterior.
Então para o nome do PDF ficou gravado na String N
Para monta o caminho completo: Caminho &"\"& N &".PDF"
Neste caso seu banco estaria salvo dentro da pasta "C:\Documentos\Contas"
Ficaria assim para o Windows (Ex:): "C:\Documentos\Contas\10-2022 - 100019092.PDF"
___________________________________________________________________________
Agora para salvar em uma pasta você pode criar e adicionar o caminho dela no código.
Ex:
Para monta o caminho completo: Caminho & "\PastaConta\" & N &".PDF"
Estou a disposição
Que bom que deu certo, o fórum agradece.
Irei comentar cada linha para seu entendimento.
Dim N As String (String para guardar um valor, coloquei o nome dela como "N" mais poder ser qualquer coisa que não conflite com as palavras reservadas para o Access [Tipo: "Time", etc...]
Dim MM As String (String para guardar outro valor, nomeada como "MM")
Dim Caminho As String (String para guardar outro valor, nomeada como "Caminho")
Caminho = CurrentProject.Path (Atribui o valor a String "Caminho", neste caso o caminho onde esta salvo o seu banco do Access)
MM = Replace(Me.cmbMes, "/", "-") (Atribui o valor a String "MM", neste caso o valor do campo "cmbMes". Porem como no campo esta em formato "09/2022", o Windows não aceita "/" como nome de arquivo. No nosso caso o PDF salvo, por isso o comando "Replace" substitui o "/" por "-", pois esse sim o Windows aceita.
N = MM & " - " & Me.IdCuenta.Column(0) (Atribui o valor a String "N", neste caso o valor do campo da String "MM" e o valor do campo "IdCuenta", como este campo tem mais de uma coluna ao colocar o comando ".Column(0)" você indica qual coluna quer trazer como valor. Se colocar ".Column(1)" pega a coluna posterior.
Então para o nome do PDF ficou gravado na String N
Para monta o caminho completo: Caminho &"\"& N &".PDF"
Neste caso seu banco estaria salvo dentro da pasta "C:\Documentos\Contas"
Ficaria assim para o Windows (Ex:): "C:\Documentos\Contas\10-2022 - 100019092.PDF"
___________________________________________________________________________
Agora para salvar em uma pasta você pode criar e adicionar o caminho dela no código.
Ex:
Para monta o caminho completo: Caminho & "\PastaConta\" & N &".PDF"
Estou a disposição
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº20
Mais de uma sessão para o mesmo relatório
Bigfil, obrigado pela explicação. Ajudou muito. Inclusive até já melhorei um pouco o código. Veja abaixo:
--------------------------------
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
End Sub
------------------
Coloquei umas instruções de erro porque quando se pede um pdf com o mesmo nome ele cancela a ação Output. Então coloquei a msgbox com a informação de que o relatório já existe.
Neste ponto me surgiu a ideia para melhorar o código. Antes vou descrever como funciona um relatório razão contábil.
Um relatório razão é como um extrato de conta. Nele você verifica os lançamentos que foram feitos em um período, no caso aqui, um mês e analisa os valores lançados. Às vezes é preciso acrescentar mais lançamentos, excluir outros, estornar, etc. O razão é um relatório dinâmico que vai sofrendo alterações até você chegar no saldo correto. Para entender melhor é como você adequar um razão da conta banco com o extrato desta mesma conta.
Pois bem, o código acima dá uma mensagem de erro quando o relatório já existe. Neste caso eu teria que excluir o arquivo na pasta para gerar outro de mesmo nome.
É possível fazer com que o código ao ver que um arquivo de mesmo nome já exista ele sobreponha-o?
Ou então que o código exclua este arquivo e grave outro? Lembrando que o razão é um relatório temporário, só para conferência. Aqui talvez possa ter algum problema de segurança porque permitir exclusão pode até prejudicar outros arquivos. Mas quem lida com VBA já sabe que essa possibilidade existe mas não é o caso aqui.
É possível fazer as alterações acima? A sobreposição seria o mais adequado.
--------------------------------
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
End Sub
------------------
Coloquei umas instruções de erro porque quando se pede um pdf com o mesmo nome ele cancela a ação Output. Então coloquei a msgbox com a informação de que o relatório já existe.
Neste ponto me surgiu a ideia para melhorar o código. Antes vou descrever como funciona um relatório razão contábil.
Um relatório razão é como um extrato de conta. Nele você verifica os lançamentos que foram feitos em um período, no caso aqui, um mês e analisa os valores lançados. Às vezes é preciso acrescentar mais lançamentos, excluir outros, estornar, etc. O razão é um relatório dinâmico que vai sofrendo alterações até você chegar no saldo correto. Para entender melhor é como você adequar um razão da conta banco com o extrato desta mesma conta.
Pois bem, o código acima dá uma mensagem de erro quando o relatório já existe. Neste caso eu teria que excluir o arquivo na pasta para gerar outro de mesmo nome.
É possível fazer com que o código ao ver que um arquivo de mesmo nome já exista ele sobreponha-o?
Ou então que o código exclua este arquivo e grave outro? Lembrando que o razão é um relatório temporário, só para conferência. Aqui talvez possa ter algum problema de segurança porque permitir exclusão pode até prejudicar outros arquivos. Mas quem lida com VBA já sabe que essa possibilidade existe mas não é o caso aqui.
É possível fazer as alterações acima? A sobreposição seria o mais adequado.
crysostomo- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2746
Registrado : 23/01/2018
- Mensagem nº21
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Boa tarde colegas.
Sucesso josuel
Não esqueça de fechar o tópico.
Sucesso josuel
Não esqueça de fechar o tópico.
.................................................................................
Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
Uma mão ajuda a outra.
Feliz aquele que transfere o que sabe e aprende o que ensina.
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº22
Mais de uma sessão para o mesmo relatório
Crysostomo, boa noite.
Não quero fechar o tópico ainda porque há uma questão que eu quero entender com a ajuda do pessoal.
Obrigado.
Não quero fechar o tópico ainda porque há uma questão que eu quero entender com a ajuda do pessoal.
Obrigado.
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº23
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Tenho um código que gera relatórios pdf e grava-os em uma pasta. Ocorre que, quando um arquivo de mesmo nome é gerado, o sistema diz que o arquivo já existe.
Tem alguma linha de comando em vba que possibilita sobrepor esse arquivo já existente?
Tentei procurar na internet mas só encontro essa possibilidade em Excel.
Atenciosamente
Josuel
Tem alguma linha de comando em vba que possibilita sobrepor esse arquivo já existente?
Tentei procurar na internet mas só encontro essa possibilidade em Excel.
Atenciosamente
Josuel
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº24
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Boa tarde josuel!
Acho que já sobrepõe, pois no testes que fiz acho que verifiquei isso.
Mais se no caso não tiver sobrepondo, existe sim como verificar a existência do arquivo e exclui-lo via Access.
Verificar existência de arquivo
Excluir arquivo no diretório
Acho que já sobrepõe, pois no testes que fiz acho que verifiquei isso.
Mais se no caso não tiver sobrepondo, existe sim como verificar a existência do arquivo e exclui-lo via Access.
Verificar existência de arquivo
Excluir arquivo no diretório
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº25
Mais de uma sessão para o mesmo relatório
Bigfil, o código não sobrepõe o arquivo não. Se você fizer um teste tirando as linhas de erro e a msgbox, verá que retornará a mensagem: a ação Output foi cancelada.
O código de excluir arquivo parece o mais adequado no meu caso. Eu só não sei como inserir estas linhas.
Pode me ajudar?
Obrigado.
O código de excluir arquivo parece o mais adequado no meu caso. Eu só não sei como inserir estas linhas.
Pode me ajudar?
Obrigado.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº26
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Boa tarde Josuel!
Acredito que ficaria assim.
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
If Dir(Caminho & "/" & N & ".pdf") = "" Then ' Aqui verifica se o arquivo existe no PC
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
Else
Kill Caminho & "/" & N & ".pdf" ' Aqui exclui o arquivo caso ele exista
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
End if
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
End Sub
Acredito que ficaria assim.
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
If Dir(Caminho & "/" & N & ".pdf") = "" Then ' Aqui verifica se o arquivo existe no PC
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
Else
Kill Caminho & "/" & N & ".pdf" ' Aqui exclui o arquivo caso ele exista
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & ".pdf", True
End if
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
End Sub
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº27
Mais de uma sessão para o mesmo relatório
Bom dia bigfil
O código que você passou funcionou. Mas ainda tem problemas. Se o relatório reemitido estiver aberto no leitor de pdf, o código retorna a mensagem de que o relatório já existe, pois ele não consegue excluir um arquivo aberto. Neste caso voltamos ao ponto inicial.
Percebo que são as regras do sistema operacional. Para o código continuar abrindo o mesmo arquivo só se ele numerasse igual o windows faz com pastas e o excel faz com planilhas.
Será que é possível isso?
No trabalho com o razão às vezes é necessário listar o mesmo relatório com alterações e aí são feitas comparações de saldo para efeito de conciliação. Um sistema de grande porte como o SAP permite que você abra vários relatórios iguais. Creio que neste caso o sistema tem uma memória temporária que guarda esses relatórios, etc. O Access parece que permite somente uma sessão por vez.
Será que uma modificação neste caso vai complicar muito?
Obrigado.
O código que você passou funcionou. Mas ainda tem problemas. Se o relatório reemitido estiver aberto no leitor de pdf, o código retorna a mensagem de que o relatório já existe, pois ele não consegue excluir um arquivo aberto. Neste caso voltamos ao ponto inicial.
Percebo que são as regras do sistema operacional. Para o código continuar abrindo o mesmo arquivo só se ele numerasse igual o windows faz com pastas e o excel faz com planilhas.
Será que é possível isso?
No trabalho com o razão às vezes é necessário listar o mesmo relatório com alterações e aí são feitas comparações de saldo para efeito de conciliação. Um sistema de grande porte como o SAP permite que você abra vários relatórios iguais. Creio que neste caso o sistema tem uma memória temporária que guarda esses relatórios, etc. O Access parece que permite somente uma sessão por vez.
Será que uma modificação neste caso vai complicar muito?
Obrigado.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº28
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
josuel neste caso a regra e do próprio Windows de bloquear a exclusão de um arquivo que esta aberto.
Neste caso então você de desconsiderar esse código e voltar para o anterior, e adicionar outra coisa que os diferencie um do outro.
Tipo hora que foi gerado
Pois ai o nome ficaria diferente a cada segundo que gerar um PDF
Neste caso então você de desconsiderar esse código e voltar para o anterior, e adicionar outra coisa que os diferencie um do outro.
Tipo hora que foi gerado
Pois ai o nome ficaria diferente a cada segundo que gerar um PDF
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº29
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Ficaria assim Josuel
--------------------------------
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Dim HH As Date
Dim H As String
HH = Time()
H = Replace(HH, ":", " ")
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & "-" & H &".pdf", True
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
--------------------------------
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
Dim N As String
Dim MM As String
Dim Caminho As String
Dim HH As Date
Dim H As String
HH = Time()
H = Replace(HH, ":", " ")
Caminho = CurrentProject.Path
MM = Replace(Me.cmbMes, "/", "-")
N = MM & " - " & Me.IdCuenta.Column(0)
DoCmd.OutputTo acOutputReport, "rptRazaoConta", acFormatPDF, Caminho & "/" & N & "-" & H &".pdf", True
Exit_Comando16_Click:
Exit Sub
Err_Comando16_Click:
MsgBox "Relatório já existe", vbOKOnly
Resume Exit_Comando16_Click
josuel- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 20
Registrado : 21/05/2014
- Mensagem nº30
Mais de uma sessão para o mesmo relatório
Bom dia bigfil.
Funcionou. Era exatamente assim que eu imaginava.
Muito grato
Funcionou. Era exatamente assim que eu imaginava.
Muito grato
crysostomo- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2746
Registrado : 23/01/2018
- Mensagem nº31
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Sucesso
.................................................................................
Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender o problema mais rápido para lhe ajudar. Disponho.
Uma mão ajuda a outra.
Feliz aquele que transfere o que sabe e aprende o que ensina.
bigfill- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 477
Registrado : 27/03/2015
- Mensagem nº32
Re: [Resolvido]Mais de uma sessão para o mesmo relatório
Ótimo Josuel, o fórum agradece.
» [Resolvido]Mais do mesmo. Enviar relatorio no corpo da mensagem...
» [Resolvido]Relatório com dois ou mais sub-relatórios com o mesmo parâmetro de consulta
» [Resolvido]Ajustar numero de campo num relatorio para mais ou para menos
» [Resolvido]Formulários que apontam para o mesmo relatório
» [Resolvido]Mesmo Relatório Para Diversos Formulários
» [Resolvido]Relatório com dois ou mais sub-relatórios com o mesmo parâmetro de consulta
» [Resolvido]Ajustar numero de campo num relatorio para mais ou para menos
» [Resolvido]Formulários que apontam para o mesmo relatório
» [Resolvido]Mesmo Relatório Para Diversos Formulários