Collegamento a file pdf

di il
26 risposte

26 Risposte - Pagina 2

  • Re: Collegamento a file pdf

    mypipe ha scritto:


    ....
    Grazie Alex, non sapevo dell'esistenza di questo comando (me ne ricordavo un'altro in VBA a cui bisognava però passare il file da aprire nella riga di comando... o era nel buon caro vecchio GWbasic???? )..... però..... a questo punto lui lancia da access una applicazione esterna indipendente che non interagisce con access. Sbaglio? Oppure con Hyperlink si crea un qualche tipo di associazione che permette una interpolazione con access? (Stasera dopo qualche ora di sonno, mi vado a documentare)

    Da quello che ho capito, lui ha bisogno di poter usare il documento all'interno di access, come farebbe con un documento di excell o del pacchetto office.
    Credo tu ti stessi riferendo a SHELL, che tuttavia pur funzionando da VBA, necessita del PATH completo dell'EXE...(e questo è il problema)... in quanto serve recuperare l'EXE associato all'estensione per poi mandare in esecuzione la SHELL
    
    Dim RetVal
    RetVal = Shell(C:\Programmi\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\directory\file.pdf")
    End Sub
    Ora ho semplificato l'esempio, in quanto ho dato per scontato che l'EXE associato sia il Reader di Adobe... ma potrebbe non essere, quindi si usa una chiamata API per recuperare il vero EXE con la chiamata [FindExecutable] ecc...

    Personalmente lo trovo inutile...! Meglio il FollowHyperlink.

    Ora la tua osservazione è corretta, ma non completa, nel senso che in questo modo viene aperta un'istanza di Adobe con il file definito... ed il tutto è indipendente da Access...
    Tuttavia è possibile recuperarne l'istanza ed addirittura gestirla.
    Il tutto assolutamente senza OCX che peraltro contenevano BackDoor pericolose, ma usando COM(quindi OLE) si recupera con GETOBJECT l'istanza del Server di Automazione di ADOBE e lo si tratta come lo si farebbe con WORD o EXCEL
    
        Dim PDFApp As Object
        Dim PDFDoc As Object
        PDFPath = "C:\PDF Sample.pdf"
    
        'Initialize Acrobat by creating App object
        Set PDFApp = CreateObject("AcroExch.App")
        Set PDFDoc = CreateObject("AcroExch.AVDoc")
        'Open the PDF
        If PDFDoc.Open(PDFPath, "") = True Then
            MsgBox "Numero Pagine " & PDFDoc .GetNumPages() 
        End If
    Ora ho usato il Create... ma il senso è per esporre la tecnica LateBinding di accesso al modello Oggetti via COM.
    Set PDFApp = GetObject("", "AcroExch.App")
  • Re: Collegamento a file pdf

    Sono rientrato adesso dal lavoro.
    Si ho solo bisogno di trovare la sintassi giusta/ottimizzata da "azzeccare" a FollowHyperlink che mi permetta di aprire prima la cartella, e questo è già possibile, e poi uno dei tanti file, anche manualmente, che si trovano all'interno. I file vengono nominati da un numero-anno.
    Dico anche manualmente perché il numero corrisponde al numero del record aperto nella forms.
    Ora ci riprovo con i vostri consigli.
    Marco
  • Re: Collegamento a file pdf

    Se ci racconti tutto più nei dettagli, intendo:
    - esattamente il nome della CasellaTesto
    - il nome della maschera
    - quale sarebbe il formato di denominazione di ogni file.pdf (hai detto numero-anno.pdf, se ci spieghi da dove salta fuori questa combinazione, forse si può migliorare con qualche trucchetto il path finale ad hoc...)
    - se possiamo stare tranquilli che dentro quella cartella ci sono solo file.pdf

    forse ne veniamo a capo meglio.
  • Re: Collegamento a file pdf

    Cerco di spiegarmi meglio.
    1)Abbiamo dei record che inseriamo tramite la MASCHERA PRINCIPALE relativa al personale.
    2)La documentazione relativa al personale la scannerizzo e la invio in una cartella nel desktop chiamata Pdf SCANNER.
    3)Il File scannerizzato lo rinomino con lo stesso numero che ha nel rekord. per esempio 399-2015
    Ora sono riuscito a aprile la cartella con un controllo nella forms che si chiama Testo222 e con doppio click mi apre la cartella.
    La scocciatura è che i file scannerizzati sono ormai più di 400 e anche se sono in ordine numerico devo sempre cercare il corrispondente del record del personale che mi interessa aggiornare o visionare.
    Mi basterebbe anche inserire il numero del file manualmente.
    Ciao
    Marco
  • Re: Collegamento a file pdf

    A me sembra tutto molto più semplice della tua CasellaTesto che eviterei di includere fra i controlli di MASCHERA PRINCIPALE. Intanto io obietterei la scelta di nominare il file anche con l'anno, IDPersona è già sufficiente per rendere univoco il nome del file pdf...(se non ho travisato il discorso) e poi come faresti a ricordare l'anno? Per costruire il path del tuo FollowHyperlink ti bastano dati che tu hai già, ossia IDPersona...l'Anno non saprei da dove lo vuoi andare a pescare. Come ci si fa a ricordare che a Rossi Mario è stato attribuito l'anno 2015 o altro anno?
    Io ci vedrei una cosa simile
    Dim strPath As String
    strPath = “\\psf\Home\Desktop\pdf cartella\” & Forms![MASCHERA PRINCIPALE]![IDPersona].Value & “.pdf”
    Application.FollowHyperlink strPath
  • Re: Collegamento a file pdf

    laarco ha scritto:


    Cerco di spiegarmi meglio.
    1)Abbiamo dei record che inseriamo tramite la MASCHERA PRINCIPALE relativa al personale.
    2)La documentazione relativa al personale la scannerizzo e la invio in una cartella nel desktop chiamata Pdf SCANNER.
    3)Il File scannerizzato lo rinomino con lo stesso numero che ha nel rekord. per esempio 399-2015
    Ora sono riuscito a aprile la cartella con un controllo nella forms che si chiama Testo222 e con doppio click mi apre la cartella.
    La scocciatura è che i file scannerizzati sono ormai più di 400 e anche se sono in ordine numerico devo sempre cercare il corrispondente del record del personale che mi interessa aggiornare o visionare.
    Mi basterebbe anche inserire il numero del file manualmente.
    Ciao
    Marco
    Quello che fai è concettualmente fattibile, ma tecnicamente da evitare...!
    A chi usa il SW non deve importare nè come si chiama il File, nè dove si trova, anzi... proprio è BENE non lo sappia...!
    La tua interfaccia grafica deve consentire all'utente di accedere ai Documenti relativi al Dipendente senza MAI dover ricordare nulla, quindi le informazioni le deve avere VISUALIZZATE non modificabili ma selezionabili...!
    Quindi se un Dipendente ha più File associati, dovrai avere una ListBox o Sottomaschera che riporta il Tipo di Documento... e su DoppioClick lo fai aprire... nessuna selezione MANUALE.

    L'aspetto di RINOMINARE il File invece è un'altra cosa... e quando lo rinomini, devi registrare nel Database il Nome del File in modo da poterlo richiamare.
    Di solito si usa una ChiavePrimaria dell'anagrafica Dipendente come Parte della PK del Documento in una Gestione 1-M...

    Detto ciò lascio il resto alla tua valutazione.
  • Re: Collegamento a file pdf

    Sapessi come fare! Dopo lo scanner lo rinomino io manualmente perché ho pensato di agganciarlo con il numero di pratica che ho memorizzato nella forms. Problemi di sicurezza o di manomissione dei dati non ci sono.
    Se puoi darmi le indicazioni ti sarò grato.
    Marco
  • Re: Collegamento a file pdf

    Aspetta laarco, finora non hai mai dato una descrizione chiara chiara di tutto quello che si vede nella maschera. Se non riesci ad allegare una immagine in modo che noi possiamo capire bene come ricostruire il tuo path, oppure descrivere benissimo e dettagliatamente tutto tutto, noi possiamo dare solo imbeccate di massima, ma non riusciremo mai a cogliere i singoli riferimenti oggetti che forse a te appaiono impliciti, a noi altri che ti leggiamo, assolutamente no.
    Hai parlato di una MASCHERA PRINCIPALE ma non si capisce quali dati ci sono dentro. Può darsi che MASCHERA PRINCIPALE non contiene direttamente quei dati che io e @Alex stiamo cercando di riprendere automaticamente e stiano nascosti o non correttamente tracciati in qualche casella combinata. Ma abbiamo bisogno di conoscere l'intero scenario tabelle che regola il tuo database. Almeno io ti chiedo:
    - tutti i nomi propri delle tabelle
    - tutti i nomi propri dei campi di ogni tabella, con l'indicazione della chiave primaria
    - le relazioni
    - tutti i nomi propri delle maschere dicendo pure a quale tabella si riferisce
    - tutti i nomi propri dei controlli aggiuntivi che tu avresti apportato in visualizzazione struttura maschera, ad es. pulsanti, caselle di testo (forse abbiamo già detto che quest'ultima non ci serve più)
  • Re: Collegamento a file pdf

    Fatto!!!
    Ci sono riuscito era più facile di quanto pensassi.
    Ho semplicemente fatto una casella di testo e per espressione ho messo l'indirizzo della cartella, aggiungendo l'id del rekord che corrisponde al file in pdf.
    Grazie
    Marco
  • Re: Collegamento a file pdf

    Non sarebbe male se esplicitassi tale espressione per l'interesse pubblico del forum.
    Giusto per mettere i puntini sulle i, se ritieni utile VEDERE tale PATH in una casella di testo, hai fatto BENE. Altrimenti risulterebbe una cosa superflua in base a:

    @Alex ha scritto:


    A chi usa il SW non deve importare nè come si chiama il File, nè dove si trova, anzi... proprio è BENE non lo sappia...!
    gestibile interamente dal codice VBA.
  • Re: Collegamento a file pdf

    Ciao a tutti e scusate il ritardo nella risposta.
    Non ho fatto altro che crearmi una casella di testo con origine del dato con il numero del record del dipendente e rinominare il pdf con il numero del predetto rekord (lo faccio dalla fotocopiatrice).
    Application.FollowHyperlink "\\psf\Home\Desktop\cartella pdf\" & [Testo378]
    Era più semplice di quanto pensassi.
    Ciao e grazie dei consigli.
    Marco
  • Re: Collegamento a file pdf

    Forse arrivo troppo tardi sul problema di marco e non sarà neanche la migliore dritta, ma la lancio lo stesso.
    Non è una proposta alternativa, ma io vedrei anche fattibile, anziché digitare il nome del file, pescarlo da un array che riempirei preventivamente mediante questo codice:

    Dim file(), altro As String
    Dim n As Integer
    altro = Dir("C:\Associazione\*.*")
    Do While altro <> ""
    n = n + 1
    ReDim file(n)
    file(n) = altro
    altro = Dir
    Loop

    Non so però quale sarebbe la migliore tecnica per visualizzare l'array. Questo lo può dire solo Alex.
    ciao antonio
Devi accedere o registrarti per scrivere nel forum
26 risposte