aprile file da sottomaschera con pulsante oppure doppioclick

Anonimo
2015-08-30T09:24:57+00:00

salve a tutti

da un vecchio post grazie all'amico Sandro Peruz, per cercare di gestire gli allegati esternamente al db, sto cercando di gestire dei file creati ed assegnarli a delle pratiche.

All'interno di una cartella ho dei file .dotm, modelli in word da compilare e salvare in formato .docx oppure pdf.

Questi modelli devono essere abbinati ad una pratica (ogni id) inseriti in diversi momenti (date)

Pertanto procedo con la creazione delle tabelle mettendole in relazione una a molti, cioè una pratica a molti modelli:

nella maschera pratiche ho inserito un pulsante dove mi apre la maschera elenco_modelli per aprire con altro comando il relativo file

Una volta compilato  e salvato il modello viene caricato ed abbinato alla pratica.

Infine con un comando oppure su doppio click su nome_file aprire il relativo file

Provo a postare i files, purtoppo da adattare al proprio pc.

http://1drv.ms/1Iv4wcr

Magari, con il vs aiuto, riuscire a scaricare il db e la relativa cartella contenenti i file (modelli) su qualsiasi pc e funzionare direttamente.

Grazie a voi tutti

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-09-04T17:09:45+00:00

ciao NebbiaDB,

non serve l'opzione Group by nella query.

non serve incorporare la maschera nel report.

crei una semplice query di selezione con questo sql ad esempio :

SELECT modelli.id_pratiche,

            elenco_pratiche.registro,

           [myFolder] & [nome_file] AS fullpath

FROM elenco_pratiche INNER JOIN modelli ON elenco_pratiche.id_pratiche = modelli.id_pratiche

ORDER BY modelli.id_pratiche;

concatenando il path con il folder così mostri nel report il nome completo del file.

crei un report in cui raggruppi per registro che non significa che raggruppare per pratica.

sul command button che chiamerai ad esempio cmdRpt e non comando16 sfrutti il parametro where per aprire il report esattamente sul record che stai vedendo sulla maschera.

DoCmd.OpenReport "modelli", acViewPreview, , whereCondition:="id_pratiche=" & Me.id_pratiche

se il report viene aperto senza clausola where raggruppi sempre per registro, ma vedi in sequenza tutti le pratiche con i relativi modelli.

un po' così : http://1drv.ms/1KvxOiq   Gestione_Pratiche2.2.accdb.

ciao, Sandro.

La risposta è stata utile?

0 commenti Nessun commento

46 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Anonimo
    2015-08-30T14:38:22+00:00

    ciao NebbiaDb,

    ciao e grazie Sandro e buona domenica...

    buona domenica anche a te :-)

    tutto sembra funzionare :-)

    bene.

    [..]

    nella sottomaschera sto cercando di dare una sistemata grafica al fine di creare una maschera un po piu pulita e cioè evitare di visualizzare il nome_file (percorso) e di visualizzare solo il nome del modello per poi aprirlo. In pratica trasformare il percorso completo C:\Users\nebbia\Desktop\cartella_file\file1.docx semplicemente in file1.docx

    io opterei per aggiungere alla tabella modelli un campo myFolder di tipo testo, e successivamente lo inserirei nella sottomaschera sm_verbali e imposti la proprietà visibile=no.

    in quel campo / controllo andrai a memorizzare il folder del file,  in modo tale da averlo a disposizione per aprire il file stesso.

    il codice su evento click del commandButton cmdCaricaVerbale diventerebbe questo :

    Private Sub cmdCaricaVerbale_Click()

    Dim strPathFile  As String

    strPathFile = cmdFileDialog()

     If strPathFile <> vbNullString Then

         Me.sm_verbali.SetFocus

         DoCmd.GoToRecord acActiveDataObject, , acNewRec

         Dim intSlash As Integer

         Dim strFile  As String

         Dim strPath  As String

         intSlash = InStrRev(strPathFile, "")

         strFile = Right$(strPathFile, Len(strPathFile) - intSlash)

         strPath = Left$(strPathFile, intSlash)

         Me.sm_verbali!nome_file = strFile

         Me.sm_verbali!myFolder = strPath

     End If

    End Sub

     e questo per aprire il file :

    Dim ret As Integer

    ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & Me.sm_verbali!myFolder & Me.sm_verbali!nome_file, vbNormalFocus)

    ti consiglio di inserire sempre nei moduli option explicit.

    HTH.

    Grazie ancora

    prego un saluto a te!

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-08-30T12:32:41+00:00

    ciao e grazie Sandro e buona domenica...

    tutto sembra funzionare :-)

    nella sottomaschera sto cercando di dare una sistemata grafica al fine di creare una maschera un po piu pulita e cioè evitare di visualizzare il nome_file (percorso) e di visualizzare solo il nome del modello per poi aprirlo. In pratica trasformare il percorso completo C:\Users\nebbia\Desktop\cartella_file\file1.docx semplicemente in file1.docx

    "non ho capito se vuoi caricare in automatico tutti modelli di word di una cartella specifica, in quel caso li codice sopra esposto è da rivedere e se gli stessi modelli devono essere salvati in pdf o docx nella stessa cartella o altrove."

    penso di no nel senso che una volta compilato il modello vado ad inserirlo nella relativa pratica oppure dovrei creare automaticamente una cartella al momento della creazione per ogni pratica e successivamente andare a salvare i relativi modelli creati ... penso le cose si complicano (almeno per me) :-)

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-08-30T09:54:22+00:00

    ciao NebbiaDB,

    comincio da quello che ho capito in fondo hai un paio di domande.

    allora:

    cambia il file dialog in questo modo, così selezioni solo i modelli di word e la ricerca la comici nella stessa cartella in cui risiede il db ovviamente...si può modificare la cartella in cui si inizia la ricerca:

    Public Function cmdFileDialog() As String

       Dim fDialog As Object

        Dim varFile As Variant

        Set fDialog = Application.FileDialog(3)

        With fDialog

          .Title = "Select One or More Files"

           .Filters.Clear

           .Filters.Add "modelli di word", "*.dotx"

          .InitialFileName = CurrentProject.Path & ""

           If .Show = True Then

              cmdFileDialog = .SelectedItems(1)

           Else

              cmdFileDialog = vbNullString

           End If

        End With

    End Function

    l'evento click del commandButton  cmdCaricaVerbale così :

    Private Sub cmdCaricaVerbale_Click()

    'Forms!pratiche.sm_verbali!nome_file = cmdFileDialog()

    Dim strFile As String

     strFile = cmdFileDialog()

     If strFile <> vbNullString Then

         Forms!pratiche.sm_verbali!nome_file = strFile

     End If

    End Sub

    per aprire il file selezionato procedi in questo modo ( nel command button28, magari individua un nome maggiormente significativo)

    Dim ret As Integer

    ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & Forms!pratiche.sm_verbali!nome_file, vbNormalFocus)

    non ho capito se vuoi caricare in automatico tutti modelli di word di una cartella specifica, in quel caso li codice sopra esposto è da rivedere e se gli stessi modelli devono essere salvati in pdf o docx nella stessa cartella o altrove.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento