Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    ACCESS cerca all'interno di cartelle windows

    Salve a tutti, vorrei chiedere ai più esperti un aiuto: ho un db con una maschera, nella maschera c'è un pulsante di comando che apre un collegamento ipertestuale che punta su una cartella di windows;
    Vorrei immettere sul comando una routine on click che, quando premi il pulsante cerchi automaticamente nella cartella aperta il nome che compare in un campo della maschera:

    il campo è nome_documento, se l'utente è posizionato sul record 100001345, preme il pulsante e gli si apre la cartella che contiene tutti i file (sono pdf) e punta sul documento 2011_08_100001345, o, in alternativa, lo apre direttamente.

    Se è possibile fare questa configurazione non lo so, ho provato i codici postati in altri thread ma non funzionano, qualcuno sa aiutarmi?

    Grazie mille

    Pasquale

  2. #2
    i file pdf sono tutti nella stessa cartella?
    nel db hai memorizzato solo il nome del file o la path completa?
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  3. #3
    Ciao, grazie per la risposta (e anche per la segnalazione dell'altro thread).

    - I pdf sono tutti nella stessa cartella,
    - Nel pulsante di comando Hyperlink ho inserito tutta la path.

    Allego il codice della maschera:


    Option Compare Database

    Private Sub Apri_Archivio_NC_Click()

    End Sub

    Private Sub Casella51_Click()

    End Sub

    Private Sub Esci_maschera_NC_Click()
    On Error GoTo Err_Esci_maschera_NC_Click


    DoCmd.Close

    Exit_Esci_maschera_NC_Click:
    Exit Sub

    Err_Esci_maschera_NC_Click:
    MsgBox Err.Description
    Resume Exit_Esci_maschera_NC_Click

    End Sub
    Private Sub Comando65_Click()
    On Error GoTo Err_Comando65_Click

    Dim stDialStr As String
    Dim PrevCtl As Control
    Const ERR_OBJNOTEXIST = 2467
    Const ERR_OBJNOTSET = 91
    Const ERR_CANTMOVE = 2483

    Set PrevCtl = Screen.PreviousControl

    If TypeOf PrevCtl Is TextBox Then
    stDialStr = IIf(VarType(PrevCtl) > V_NULL, PrevCtl, "")
    ElseIf TypeOf PrevCtl Is ListBox Then
    stDialStr = IIf(VarType(PrevCtl) > V_NULL, PrevCtl, "")
    ElseIf TypeOf PrevCtl Is ComboBox Then
    stDialStr = IIf(VarType(PrevCtl) > V_NULL, PrevCtl, "")
    Else
    stDialStr = ""
    End If

    Application.Run "utility.wlib_AutoDial", stDialStr

    Exit_Comando65_Click:
    Exit Sub

    Err_Comando65_Click:
    If (Err = ERR_OBJNOTEXIST) Or (Err = ERR_OBJNOTSET) Or (Err = ERR_CANTMOVE) Then
    Resume Next
    End If
    MsgBox Err.Description
    Resume Exit_Comando65_Click

    End Sub

    Private Sub pdf_Click()

    End Sub

  4. #4
    Originariamente inviato da ufollettu
    Ciao, grazie per la risposta (e anche per la segnalazione dell'altro thread).

    - I pdf sono tutti nella stessa cartella,
    ok. altra domanda:
    nel primo post parli di numero di record, a cosa ti riferisci esattamente?

    perchè se intendi proprio numero di record questo non è possibile utilizzarlo per riprendere il pdf, in quanto se cancelli un record o se usi un ordine differente il numero di record cambia, io spero sia una pk o comunque un riferimento chiave esterna.

    in caso puoi a grandi linee spiegare la struttura del db? vedi la mia idea sarebbe quella di memorizzare la path completa del file nel db per poi richiamare il pdf direttamente.
    in questa maniera con qualsiasi ordinamento richiami i record potrai sempre richiamare il file corretto.
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  5. #5
    nel primo post parli di numero di record, a cosa ti riferisci esattamente?
    il record presenta molti dati, uno dei quali è il nome_documento, numerico, non è chiave primaria questo campo, perchè può ripetersi in records diversi, la pk non compare nella maschera, quindi non è un campo che varia: se immetto il numero 3456 nel campo nome_documento, per il record 1, questo resta memorizzato e non cambia. può invece darsi il caso che nel record 2 ci sia, per lo stesso campo nome_documento ugualmente il numero 3456. in pratica avrei bisogno di una funzione che vada a leggere quel numero direttamente dalla maschera, cioè, se sono mel record 1 mi legge 3456, se sono nel record 2 mi legge 3456, ..., se sono nel record xxxx mi legge yyyy, e poi mi cerchi questo numero in una cartella di windows (in rete locale).

    vedi la mia idea sarebbe quella di memorizzare la path completa del file nel db per poi richiamare il pdf direttamente
    in questo modo bisognerebbe inserire una path diversa per ogni numero richiesto, ma si parla di migliaia di numeri diversi, e farlo a mano non è concepibile. Inoltre aggiungendo migliaia di hyperlink si appesantirebbe il db non poco. Per questo mi chiedevo se era possibile inserire una funzione di ricerca.

    in caso puoi a grandi linee spiegare la struttura del db?
    a grandi linee è un db molto semplice, le tabelle sono 4 collegate da excel e unite da 3 query a formare una tabella MAIN sulla quale si elaboreranno i reports attraverso altre query. è prevista una maschera che origina dalla tabella MAIN, per aggiungere un unico dato a mano, e visualizzare/verificare ed eventualmente modificare le informazioni.

  6. #6
    Originariamente inviato da ufollettu
    il record presenta molti dati, uno dei quali è il nome_documento, numerico, non è chiave primaria questo campo, perchè può ripetersi in records diversi, la pk non compare nella maschera, quindi non è un campo che varia: se immetto il numero 3456 nel campo nome_documento, per il record 1, questo resta memorizzato e non cambia. può invece darsi il caso che nel record 2 ci sia, per lo stesso campo nome_documento ugualmente il numero 3456. in pratica avrei bisogno di una funzione che vada a leggere quel numero direttamente dalla maschera, cioè, se sono mel record 1 mi legge 3456, se sono nel record 2 mi legge 3456, ..., se sono nel record xxxx mi legge yyyy, e poi mi cerchi questo numero in una cartella di windows (in rete locale).
    bene


    Originariamente inviato da ufollettu
    in questo modo bisognerebbe inserire una path diversa per ogni numero richiesto, ma si parla di migliaia di numeri diversi, e farlo a mano non è concepibile. Inoltre aggiungendo migliaia di hyperlink si appesantirebbe il db non poco. Per questo mi chiedevo se era possibile inserire una funzione di ricerca.
    non è vero. se ho capito bene la path dei documenti è sempre ad esempio: c:/documenti/filepdf/xxxx.pdf
    dove xxxx è il nome del file. quindi basterà mettere nella tua maschera (ma credo che già ci sia) un campo in cui appare il mone del file e richiamarlo. dopo di che si crea un pulsante o una label e nell'evento click si crea il codice in cui apparirà come parte fissa la path esclusa del nome del file e poi il nome del file. domani ti posto il codice che secondo me fa al caso tuo (non utilizzo hyperlink anche se volendo il discorso non cambierebbe)
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  7. #7
    non è vero. se ho capito bene la path dei documenti è sempre ad esempio: c:/documenti/filepdf/xxxx.pdf dove xxxx è il nome del file. quindi basterà mettere nella tua maschera (ma credo che già ci sia) un campo in cui appare il mone del file e richiamarlo. dopo di che si crea un pulsante o una label e nell'evento click si crea il codice in cui apparirà come parte fissa la path esclusa del nome del file e poi il nome del file. domani ti posto il codice che secondo me fa al caso tuo (non utilizzo hyperlink anche se volendo il discorso non cambierebbe)
    Ok, ti ringrazio, l'unica cosa, ma non so se cambia, è che il nome del file da aprire non è xxxx, ma 2011_01_xxxx, o 2011_03_zzzz, etc, mentre il nome che compare sulla maschera è xxxx o zzzz. Comunque apetto di provare il codice. Ciao

  8. #8
    Originariamente inviato da ufollettu
    Ok, ti ringrazio, l'unica cosa, ma non so se cambia, è che il nome del file da aprire non è xxxx, ma 2011_01_xxxx, o 2011_03_zzzz, etc, mentre il nome che compare sulla maschera è xxxx o zzzz. Comunque apetto di provare il codice. Ciao
    questo è male, suppongo che il nome del file sia quindi [anno]_[mese]_[progressivo].

    abbiamo un modo per recuperare quei due dati? (spero di si anche perchè altrimenti come sai ora quale pdf cercare) altrimenti ho paura che si possa far poco.
    intanto ti posto il codice da inserire nell'evento click di un pulsante o di un'etichetta (questo dipende solo dallo stile che hai voluto dare alla form):
    codice:
    Dim RetVal
    Dim MyPath
    MyPath="[inserisci la path della cartella in cui si trovano i file]" & Me![nome_campo]
    
        RetVal = Shell("Explorer.exe" & " " & MyPath, vbMaximizedFocus)

    dove[nome_campo] è il nome del file completo di esensione, quindi se nel campo è memorizzato solo il nome dovrai scrivere me![nome_campo] & ".pdf"
    se nel campo è memorizzato il nome del file completo di estensione sarà come scritto sopra.

    allora questo codice non fa altro che impostare il percorso in cui si trova il file (la variabile MyPath) e successivamente aprire tramite shell il file. ho scelto di aprirlo con explorer (io di solito li apro così) in quanto non so quale reader di pdf possiedi. in questa maniera lui si comporta come se aprissi un pdf da internet, ovvero apre explorer con il reader pdf che hai installato.
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  9. #9
    dove[nome_campo] è il nome del file completo di esensione, quindi se nel campo è memorizzato solo il nome dovrai scrivere me![nome_campo] & ".pdf" se nel campo è memorizzato il nome del file completo di estensione sarà come scritto sopra.
    ho provato a inserire il tuo codice, modificandolo, te lo posto:

    Dim RetVal
    Dim MyPath
    MyPath = "\\It-s-bolo02\Workgroup\Comune\000_0_______ COMUNE 2011\02_ FATTURAZIONE\AAA_NOTE DI CREDITO\VIT\2011\" & Right([nc_Data doc#], 4) & "_" & Mid([nc_Data doc#], 4, 2) & "_" & Me![nc_N# doc#] & ".pdf"

    RetVal = Shell("Explorer.exe" & " " & MyPath, vbMaximizedFocus)

    adesso pare che funzioni, dal campo nc_data doc# ricavo la data

    Fammi sapere se va bene o se c'è un metodo migliore

    Grazie mille!

    Ciao

  10. #10
    Originariamente inviato da ufollettu
    ho provato a inserire il tuo codice, modificandolo, te lo posto:

    Dim RetVal
    Dim MyPath
    MyPath = "\\It-s-bolo02\Workgroup\Comune\000_0_______ COMUNE 2011\02_ FATTURAZIONE\AAA_NOTE DI CREDITO\VIT\2011\" & Right([nc_Data doc#], 4) & "_" & Mid([nc_Data doc#], 4, 2) & "_" & Me![nc_N# doc#] & ".pdf"

    RetVal = Shell("Explorer.exe" & " " & MyPath, vbMaximizedFocus)

    adesso pare che funzioni, dal campo nc_data doc# ricavo la data

    Fammi sapere se va bene o se c'è un metodo migliore

    Grazie mille!

    Ciao
    se funziona va bene.

    un dubbio che vorrei metterti:
    codice:
    MyPath = "\\It-s-bolo02\Workgroup\Comune\000_0_______ COMUNE 2011\02_ FATTURAZIONE\AAA_NOTE DI CREDITO\VIT\2011\" & Right([nc_Data doc#], 4) & "_" & Mid([nc_Data doc#], 4, 2) & "_" & Me![nc_N# doc#] & ".pdf"
    la parte in rosso sembra riferirsi ad un anno, cosa fai fra qualche mese che cambia l'anno? come tratti gli anni passati?
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.