Ricerca file pdf esistente

di il
9 risposte

Ricerca file pdf esistente

Buongiorno.
Sono Ciro Cozzolino.
Da poco programmo con Access e per quanto sia entrato bene nella sua linea di 'ragionamento' e abbia portato a termine dei programmi ho da chiedervi per risolvere un mio blocco.
In realtà, questa volta il programma mi è stato dato quasi completo in Access 2007.
La tabella della mia richiesta ha un record composto da dati inerenti a un documento e questo documento ha per titolo una numerazione che compare in un campo chiamato 'Fatt n' e fino a qui tutto bene.
Il committente mi ha chiesto un modo per cliccare nel campo e selezionare direttamente il documento originale .pdf all'interno di una cartella che contiene anche tutti gli altri documenti del genere.
Come si fa?
Ho tentato con le macro ma niente e di vba sono poco esperto.

Grazie per la vostra attenzione.
Saluti.

9 Risposte

  • Re: Ricerca file pdf esistente

    Con le macro non si può fare. In linea generale devi creare un codice VBA che abbia almeno l'istruzione:
    Application.FollowHyperlink
    con tutti gli argomenti che ti servono. Per entrare nei dettagli dovresti fornirci tu tutti i nomi propri di controlli maschera, un esempio di nome file corrispondente...il path per raggiungere il file da aprire...
  • Re: Ricerca file pdf esistente

    OsvaldoLaviosa ha scritto:


    Con le macro non si può fare. In linea generale devi creare un codice VBA che abbia almeno l'istruzione:
    Application.FollowHyperlink
    con tutti gli argomenti che ti servono. Per entrare nei dettagli dovresti fornirci tu tutti i nomi propri di controlli maschera, un esempio di nome file corrispondente...il path per raggiungere il file da aprire...
    La path la posso modificare in qualsiasi istante. Poi, il codice all'interno del VBA lo cambierei a seconda della posizione della cartella.
    Se scrivi un codice esemplificativo o mi dai il link per vederlo poi lo modifico perché non vorrei chiederti troppo.
    La tabella si chiama "Consumo Clienti", il campo 'Documenti' e la cartella 'Consumo' per altre informazioni sono qui disponibile e ancora grazie.

    Qualcosa come:
    ----- -----
    Private Sub NomeButton_Click()
    Application.FollowHyperlink Me!NomeControlloConLinkAddress
    End Sub
    ----- -----
    sarebbe corretto?
  • Re: Ricerca file pdf esistente

    Private Sub NomeButton_Click()    
    Application.FollowHyperlink Me!NomeControlloConLinkAddress
    End Sub
    Sì. È importante che il valore dentro il NomeControlloConLinkAddress abbia il path completo e l'estensione del file finale.
  • Re: Ricerca file pdf esistente

    OsvaldoLaviosa ha scritto:


    Private Sub NomeButton_Click()    
    Application.FollowHyperlink Me!NomeControlloConLinkAddress
    End Sub
    Sì. È importante che il valore dentro il NomeControlloConLinkAddress abbia il path completo e l'estensione del file finale.
    La cartella la rinomino Docum_Consumi
    il button lo chiamerei cmdHyperLink

    quindi verrebbe il codice

    Application.FollowHyperlink Me!cmdHyperLink C:\Docum_Consumi

    Mi sa che ho sbagliato le interpretazioni della sintassi.
  • Re: Ricerca file pdf esistente

    Tu hai:
    - un pulsante che si chiama cmdHyperLink
    - un campo dove risiede il nome del file da raggiungere che si chiama CampoX.
    - una cartella che contiene files che si chiama Docum_Consumi che si trova nella directory C:

    Parto dal presupposto che dentro CampoX ci siano valori ad esempio "Osvaldo.pdf", "Pippo.docx", "Farfalla.jpg", cioè con l'estensione.
    Il codice da attibuire all'evento "Su clic" del pulsante cmdHyperLink è
    Private Sub cmdHyperLink_Click()    
    Application.FollowHyperlink "C:\Docum_Consumi\" & Me![CampoX]
    End Sub
  • Re: Ricerca file pdf esistente

    Grazie.
    Provo appena torno al mio studio.
  • Re: Ricerca file pdf esistente

    OsvaldoLaviosa ha scritto:


    Tu hai:
    - un pulsante che si chiama cmdHyperLink
    - un campo dove risiede il nome del file da raggiungere che si chiama CampoX.
    - una cartella che contiene files che si chiama Docum_Consumi che si trova nella directory C:

    Parto dal presupposto che dentro CampoX ci siano valori ad esempio "Osvaldo.pdf", "Pippo.docx", "Farfalla.jpg", cioè con l'estensione.
    Il codice da attibuire all'evento "Su clic" del pulsante cmdHyperLink è
    
    Private Sub cmdHyperLink_Click()    
    Application.FollowHyperlink "C:\Consumi\" & Me!FattN
    End Sub
    perché la cartella lo rinominata Consumi e il campoX equivale al campo FattN.
    Non succede niente.

    Ha un'idea del motivo?
    Il pulsante deve andare a lato del campo FattN per ogni record, giusto?
    Poi, cliccato al record della ricerca si aprirebbe il documento.

    Ancora una volta grazie.
  • Re: Ricerca file pdf esistente

    Prima di tutto devi fare molta attenzione a quello che hai fatto, è evidente che un errore di digitazione invalida il sistema... e questo dovrebbe farti pensare.

    Quando si fa un applicativo si deve, oltre a farlo funzionare, fare in modo che l'errore sia evitabile, e quando non lo fosse che venga gestito... è difficile, ma obbligatorio.

    Nel tuo caso commetti molti errori concettuali, ad esempio:
    1° La cartella in cui sono i File è FISSA o SPOSTABILE...?
    2° Rimane sempre in posizione relativa al file di Access...?

    Se così fosse devi definite un PATH(Percorso) relativo e comporre quello assoluto...!
    Di norma si preferisce NON impostare il PATH completo, ma indicare in un altro posto il PATH di Cartelle Speciali(come quelle che contengono i File) in modo che cambiando quello puoi spostare tutto in pochi secondi senza dover modificare molto...
    Ne consegue che nel Campo della Tabella dovresti memorizzare il NomeFile o Parte del Percorso nel caso in cui la Cartella abbia al suo interno una ulteriore suddivisione gerarchica di SottoCartelle.
    Esempio:
    
    PercorsoCompleto=CurrentProject.Path & "\Cartella\" & Me!NomeFile.Value
    Detto ciò è bene prima di lanciare un File appurare che il File esista, perchè non sempre si lavora in casa propria e non sempre tu sei l'unico utilizzatore... e, soprattutto se si lavora in rete è bene avere un occhio di riguardo per la gestione errori...!
    Ne consegue che devi controllare:
    
    Private Sub cmdHyperLink_Click()   
        If EsisteFile("C:\Consumi\" & Me!FattN) = True Then
            Application.FollowHyperlink "C:\Consumi\" & Me!FattN
        Else
            MsgBox "Il File non esiste oppure il Percorso è errato." & vbNewLine & "C:\Consumi\" & Me!FattN, vbCritical,"ERRORE"
        End If
    End Sub
    Questa Funzione è generica, si mette in un Modulo standard e la si usa quando serve...
    
    Public Function EsisteFile(ByVal str As String) As Boolean
        On Error Resume Next
        EsisteFile = (GetAttr(str) And vbDirectory) = 0
    End Function
  • Re: Ricerca file pdf esistente

    datalyser ha scritto:


    perché la cartella lo rinominata Consumi e il campoX equivale al campo FattN.
    Non succede niente.
    Se scrivi così mi fai pensare/supporre che TUTTI i tuoi file numerati nella cartella Consumi riportano la stessa estensione, per esempio .pdf. Se l'estensione non la espliciti dentro FattN, allora scrivi il codice così:
    Private Sub cmdHyperLink_Click()    
    Application.FollowHyperlink "C:\Consumi\" & Me!FattN & ".pdf"
    End Sub
Devi accedere o registrarti per scrivere nel forum
9 risposte