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. Anonimo
    2015-08-30T20:36:14+00:00

    ciao NebbiaDB,

    la msgbox che fai apparire con li messaggio per salvare l'interrogazione serve? se non serve eliminala.

    Se invece serve spiegaci meglio la sua funzionalità.

    qui :

               

      If Me.NewRecord Then

            Me.registro Format(Nz(Left(DMax("[registro]", "[elenco_pratiche]", "[registro] like '????/" & Format(Date, "yyyy") & "'"), 4), 0) + 1, "0000") & "/" & Format(Date, "yyyy")

            Me.Dirty = False

        End If

    manca un uguale me.registro =......

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-08-30T20:17:16+00:00

    caro Sandro grazie ancora... che dura ....

    sto provando a seguito del treahd id con numero e anno

    ho inserito nella maschera pratiche un comando con questo codice, ma esce sempre questo errore di compilazione "Utilizzo non valido di Propety" :

    Private Sub Comando56_Click()

     If MsgBox("Vuoi salvare l'interrogazione?", vbQuestion + vbYesNo, _

            "... hai salvato ...") = vbNo Then

          Else

      If Me.NewRecord Then

            Me.registro Format(Nz(Left(DMax("[registro]", "[elenco_pratiche]", "[registro] like '????/" & Format(Date, "yyyy") & "'"), 4), 0) + 1, "0000") & "/" & Format(Date, "yyyy")

            Me.Dirty = False

        End If

    MsgBox ("hai salvato al n " & Me.registro & "")

         DoCmd.GoToRecord ObjectType:=acActiveDataObject, _

         ObjectName:=Me.Name, _

         Record:=acNewRec

          End If

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-08-30T17:49:39+00:00

    ciao NebbiaDB,

    sostituisci questa riga :

      wshshell.Run """" & objSubfolder.Path & "" & nome_modello.Value & """"

    con questa :

    wshshell.Run "cmd /c" & Chr(34) & objSubfolder.Path & "" & Me.nome_modelli & Chr(34), True

    racchiudo il path tra virgolette chr(34) in caso ci siano spazi.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-08-30T15:45:32+00:00

    grazie davvero Sandro per la tua immensa disponibilità

    ultimo problemi che sto cercando di risolvere e cioè:

    dalla maschera elenco_modelli su click comando apri_modello con il seguente codice riesco ad aprire i file presenti nelle sottocartelle che hanno lo stesso nome del file presente nel campo nome_modello, però con l'incovenitente che i modelli word non li apre come Documento1.

    Invece dal click su comando sottomaschera smverbali funziona perfettamente.

    Private Sub Comando11_Click()

    Dim objFSO As Object

        Dim objFolder As Object

        Dim objFile As Object

        Dim objSubfolder As Object

        Dim colSubfolders As Object

        Dim wshshell As Object

        Dim bln As Boolean

        Set wshshell = CreateObject("wscript.shell")

        Set objFSO = CreateObject("Scripting.FileSystemObject")

        Set objFolder = objFSO.GetFolder("C:\Users\nebbia\Desktop\programma")

        Set colSubfolders = objFolder.Subfolders

        On Error Resume Next

        For Each objSubfolder In colSubfolders

            For Each objFile In objSubfolder.Files

                wshshell.Run """" & objSubfolder.Path & "" & nome_modello.Value & """"

                If Err.Number = 0 Then

                    bln = True

               DoCmd.Close

                    Exit For

                End If

            Err.Number = 0

            Next

        Next

        If bln = False Then

            MsgBox "File non trovato"

        End If

        Set wshshell = Nothing

        Set objSubfolder = Nothing

        Set colSubfolders = Nothing

        Set objFile = Nothing

        Set objFolder = Nothing

        Set objFSO = Nothing

    End Sub

    Spero di non farti spazientare :-)

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento