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

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    avatar
    ademilsonsilverio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 29/11/2016

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty copiar automaticamente arquivo pdf de pasta na raiz C: para tabela access

    Mensagem  ademilsonsilverio 5/4/2017, 18:04

    Caros Mestres, baixei um ex. do mestre HarrY  mas o bd não copia na tabela PDFfinal os pdf's baixados na pasta C:\CoordAux\Visualizador_PDF\Relatórios.
    sou somente um curioso e já revolvi os repositorios mas não estou conseguindo.
    o BD é visualizador_PDF.accbd
    desde já obrigado pela ajuda
    segue código abaixo:

    Option Compare Database
    Option Explicit

    Dim list() As String 'Variável tipo array a ser dimensionada.
    Dim entries
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
    If MsgBox("Sair do Painel da Documentação ? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then

    KeyCode = 0

    DoCmd.Quit
    Else
    Rem DoCmd.CancelEvent
    Exit Sub
    End If
    End If
    If (Shift = acCtrlMask And KeyCode = vbKeyP) Then
    MsgBox "Não é Possível Imprimir Formulários ?", vbExclamation, "Aviso"
    KeyCode = 0
    End If
    End Sub

    Private Sub Form_Open(Cancel As Integer)
    chkMostraSys = False 'desativa as checkboxes
    chkMostraQryTemp = False
    With cboObjetos
    .SetFocus
    .Text = "Tabelas" 'inicia com tabelas
    .SelStart = 0
    .SelLength = Len(.Text)
    End With
    End Sub

    Function PreencheLista(fld As Control, ID, Row, Col, Code)
    ' Código adaptado por JR - accessjr@bol.com.br
    ' Brasília - DF, 1999.

    ' Elaborado a partir do artigo Q124344:
    ' How to Fill a List Box with Database Object Names
    ' da KnowLedge Base da Microsoft

    ' Função definida pelo usuário para preencher
    ' uma combo box ou list box. Esse tipo de função possui uma estrutura
    ' padrão, descrita no Help do Access.

    On Error GoTo ErrorHandler

    Dim ReturnVal
    Dim X As String

    If IsNull(Me!cboObjetos) Then
    X = "Tabelas"
    Else
    X = Me!cboObjetos
    End If

    ReturnVal = Null
    Select Case Code
    Case acLBInitialize ' Inicializa.
    entries = 0
    entries = GetNames(X, list()) 'Preenche a matriz list().
    ReturnVal = entries
    Case acLBOpen ' Abre.
    ReturnVal = Timer ' ID único para o controle.
    Case acLBGetRowCount ' Obtém nº total de linhas.
    ReturnVal = entries
    Case acLBGetColumnCount ' Obtém nº total de colunas
    ReturnVal = 1
    Case acLBGetColumnWidth ' Obtém a largura das colunas.
    ReturnVal = -1 ' -1 significa largura automática.
    Case acLBGetValue ' Obtém os dados para a listbox.
    ReturnVal = list(Row)
    Case acLBEnd ' Fim.
    ReDim list(0) ' Redimensiona a variável array
    entries = 0
    End Select
    PreencheLista = ReturnVal ' Preenche a lista

    ErrorHandler:
    Resume Next

    End Function

    Function GetNames(objtype As String, names() As String)
    Dim cnt As DAO.Container, db As DAO.Database, i As Integer, Arlen
    Dim tdf As DAO.TableDef, qry As DAO.QueryDef

    Set db = DBEngine(0)(0)

    Arlen = 0 'Zera o contador de objetos.

    ' Traduz os nomes em português dos objetos
    ' exibidos na combo box para o VBA.
    ' Isso será necessário quando referenciarmos um container.
    Select Case objtype
    Case "Formulários"
    objtype = "Forms"
    Case "Relatórios"
    objtype = "Reports"
    Case "Módulos"
    objtype = "Modules"
    Case "Macros"
    objtype = "Scripts" 'Macros são chamadas de Scripts.
    End Select

    Select Case objtype
    Case "Tabelas"
    If db.TableDefs.Count <> 0 Then
    Arlen = db.TableDefs.Count
    ReDim list(0 To Arlen - 1)
    i = 0
    For Each tdf In db.TableDefs
    If Not IsTemp(tdf) Then
    If isSystem(tdf) Imp ShowSysTdf() Then
    names(i) = tdf.Name
    i = i + 1
    End If
    End If
    Next tdf
    End If

    Case "Consultas"
    If db.QueryDefs.Count <> 0 Then
    Arlen = db.QueryDefs.Count
    ReDim list(0 To Arlen - 1)
    i = 0
    For Each qry In db.QueryDefs
    If IsTemp(qry) Imp ShowQryTmp() Then
    names(i) = qry.Name
    i = i + 1
    End If
    Next qry
    End If

    Case Else
    Set cnt = db.Containers(objtype)
    If cnt.Documents.Count <> 0 Then
    Arlen = cnt.Documents.Count
    ReDim list(0 To cnt.Documents.Count - 1)
    i = 0
    For i = 0 To (Arlen) - 1 ' Preenche o array Names()
    ' com os nomes dos objetos.
    names(i) = cnt.Documents(i).Name

    Next i
    End If
    End Select
    If i <> 0 Then
    'Redimensiona a matriz list() para um nº de itens
    'menor, no caso de não exibirmos os objetos ocultos
    'ou temporários, preservando os dados da matriz original.
    ReDim Preserve list(0 To i)
    GetNames = i ' Retorna o comprimento do array para a
    ' função FillNameList().
    Else
    GetNames = Arlen
    End If
    End Function

    Private Sub cboObjetos_AfterUpdate()
    'Atualiza a Lista após escolher um item na combo box.
    lstObjects.Requery
    End Sub

    Private Sub chkMostraSys_AfterUpdate()
    'Atualiza a Lista após selecionar a caixa de verificação chkMostraSys.
    lstObjects.Requery
    End Sub

    Private Sub chkMostraQryTemp_AfterUpdate()
    'Atualiza a Lista após selecionar a caixa de verificação chkMostraQryTemp.
    lstObjects.Requery
    End Sub

    Function IsTemp(obj As Object) As Boolean
    ' Verifica se o objeto é temporário.
    ' Tabelas temporárias começam com ~TMPCLP.
    ' Consultas temporárias começam com ~sq.
    IsTemp = (Left(obj.Name, 7) = "~TMPCLP") Or _
    (Left(obj.Name, 3) = "~sq")
    End Function

    Function isSystem(tdf As TableDef) As Boolean
    ' Verifica se a tabela é de sistema, comparando
    ' os seus atributos com a constante dbSystemObject,
    ' ou verificando se o seu nome começa com USys.
    isSystem = ((tdf.Attributes And dbSystemObject) <> 0) Or _
    Left(tdf.Name, 4) = "USys"
    End Function

    Function ShowSysTdf() As Boolean
    ' Retorna True ou False, caso o usuário
    ' escolha mostrar, ou não, as tabelas de
    ' de sistema
    ShowSysTdf = Nz(Me!chkMostraSys, False)
    End Function

    Function ShowQryTmp() As Boolean
    ' Retorna True ou False, caso o usuário
    ' escolha mostrar, ou não, as consultas
    ' temporárias
    ShowQryTmp = Nz(Me!chkMostraQryTemp, False)
    End Function

    Private Sub lstObjects_Click()
    If Me.cboObjetos.Value = "Consultas" Then
    DoCmd.OpenQuery Me.lstObjects.Column(1)

    Else
    If Me.cboObjetos.Value = "Tabelas" Then
    DoCmd.OpenTable Me.lstObjects.Column(1)

    End If
    End If
    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  Alvaro Teixeira 6/4/2017, 08:43

    Olá Ademilson, Bem-Vindo ao fórum.

    Não compreendi bem a questão, mas para copiar ficheiros podemos usar a função nativa do Access "FileCopy".
    Veja se ajuda: https://www.maximoaccess.com/t27860-resolvidofuncao-filecopy
    Abraço
    avatar
    ademilsonsilverio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 29/11/2016

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  ademilsonsilverio 6/4/2017, 12:51

    Obrigado mesmo por sua atenção.
    poisé, tenho um BD que armazena e abre pdf's, nele tem um tabela PDF que reloca para uma consulta de inserção para ser apresentada no fomulário PDF visuzaliza. o que preciso é um comando para copiar da Pasta na raiz C:\CorrdAux\PdfBaixado\ para a tabela PDF campo idPDF para que a consulta trabalhe, sem precisar ter que copiar toda vez o caminho do PDF.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  Alvaro Teixeira 6/4/2017, 13:14

    Olá,
    Explique melhor.
    A) Pretende guardar o caminho do ficheiro que baixou?
    B) Está a copiar o ficheiro pdf para a tabela?
    C) Outra situação?

    Ficamos aguardar.
    Abraço
    avatar
    ademilsonsilverio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 29/11/2016

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  ademilsonsilverio 7/4/2017, 02:20

    Muito obrigado pela preocupação, vejo que todos realmente estão comprometidos em ajudar, não consegui mais abrir o bd que visualiza o pdf, devido a erro 438 não encontra o objeto, erro no acrobatpdf, ja fiz tudo que esta no repositorio e nas outras salas, mas não resolveu. agradeço mesmo, vou procurar outro jeito de abrir varios pdfs em um só formulário.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  Alvaro Teixeira 7/4/2017, 08:31

    Olá Ademilson,
    Não compreendo onde está a dúvida do titulo do tópico.
    Devmos ser coerentes e não desviar da questão.

    No enanto vamos a isso.

    Quanto ao erro, sou da opinião de postar a base de dados para qualquer membro poder testar e ajudar.

    Se compreendi bem e quer ver os ficheiros PDF num único formulário, teste abrir um PDF no exemplo abaixo:
    https://www.maximoaccess.com/t26904-webbrowser-controle-navegador
    Nota: Deve ter o Acrobat instalado.
    Abraço
    avatar
    ifahidalgo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 381
    Registrado : 13/10/2011

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  ifahidalgo 11/4/2017, 19:08

    Crie uma função

    Private Sub fncCarregaPdf(Optional j As Byte = 0)
    Dim origem As String
    On Error Resume Next
    origem = txtlocalarq
    Select Case j
    Case 0 'botão 1
    Me!AcroPDF0.LoadFile origem
    End Select
    End Sub


    no botão para pegar o pdf;
    On Error Resume Next
    wzGetFileName
    Call fncCarregaPdf(0)


    abre caixa de dialogo para buscar o pdf
    Sub wzGetFileName()

    Dim wzhwndOwner As Long
    Dim wzAppName As String
    Dim wzDlgTitle As String
    Dim wzOpenTitle As String
    Dim wzFile As String
    Dim wzInitialDir As String
    Dim wzFilter As String
    Dim wzFilterIndex As Long
    Dim wzView As Long
    Dim wzflags As Long
    Dim wzfOpen As Boolean
    Dim ret As Long

    WizHook.Key = 51488399

    wzhwndOwner = 0&
    wzAppName = "Guardar documentos"
    wzDlgTitle = "Abri o documento"
    wzOpenTitle = "Abrir o documento"
    wzFile = String(255, Chr(0))
    wzInitialDir = ""
    wzFilter = "Arquivos em PDF " _
    & "(*.pdf)"
    wzFilterIndex = 1
    wzInitialDir = CurrentProject.Path & "\"
    wzView = 1
    wzflags = 64
    wzfOpen = True

    ret = WizHook.GetFileName(wzhwndOwner, _
    wzAppName, wzDlgTitle, wzOpenTitle, wzFile, _
    wzInitialDir, wzFilter, wzFilterIndex, _
    wzView, wzflags, wzfOpen)

    ' Si no se ha pulsado el botón Cancelar (-302)
    If ret <> -302 Then
    Me.txtlocalarq = wzFile
    End If
    End Sub


    botão salvar informação
    ArquivoDeOrigem = txtlocalarq ' Define o nome do arquivo de origem.
    ArquivoDeDestino = txtdestinoCI & "CI-" & Me.cmborgao.Value & " " & Me.cmbsetor.Value & " " & Me.txtnumerocontrol.Value & "" & Me.txtano.Value & ".pdf" 'Define o nome do arquivo dedestino.
    FileCopy ArquivoDeOrigem, ArquivoDeDestino ' Copia a origem no destino.
    txtdestino = ArquivoDeDestino

    não sei se é isso. desculpa a invasão.

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  Alvaro Teixeira 11/4/2017, 23:21

    Olá a todos,
    Ivan, toda a ajuda é bem-vinda. Wink

    Ficamos aguardar retorno do colega Ademilson.
    Abraço

    Conteúdo patrocinado


    copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access Empty Re: copiar automaticamente arquivo pdf de pasta na raiz C:\ para tabela access

    Mensagem  Conteúdo patrocinado


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