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-30T21:38:38+00:00

    ciao NebbiaDB,

    grazie ancora Sandro, nonostante i copia ed incolla, mi scappa sempre qualcosa... perdonami...

    tranqui, capita.

    [...]

    si serve la msgbox in quanto mi chiede se devo salvare la pratica creata:

    • se no, non salva
    • se si, esce hai salvato al n° 0001/2015 e cosi via

    allora...qui bisognerebbe- se ho capito bene - lavorare sull'evento before update della form perché con il command button solo fai poco...

    nel senso inserisci tutti i dati che servono e prima si spostarti su un nuovo record o record esistente fai comparire un messaggio che ti avvisa che i dati sono stati modificati.

    Se confermi le modifiche salvi tutto e passi all'azione successiva altrimenti resti li dove sei.

    Questo controllo deve essere eseguito anche sulla sottomaschera per essere sicuri....

    dimmi se è questo che intendi.

    Grazie

    prego,

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-08-30T21:20:17+00:00

    ciao NebbiaDB,

    [...]

    vorrei far uscire un messaggio dicendo: non hai caricato nessun modello. procedi prima del caricamento!!!

    due soluzioni.

    la prima.

    Private Sub Comando28_Click()

    If Len(Me.sm_verbali!nome_file & vbNullString) = 0 Then

        MsgBox "nessun file selezionato o caricato!" & _

                vbNewLine & " Carica o seleziona un file esistente!", vbCritical, "Attenzione"

        Exit Sub

    End If

    Dim ret As Integer

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

    end sub

    la seconda:

    imposta la proprietà allowAddition della sottomaschera sm_modelli a no.

    in sede di caricamento del modello prima la imposti (la proprietà allowaddition) a si e successivamente a no, in modo tale da non permettere si spostare il focus sul record nuovo.

    codice :

    Private Sub cmdCaricaVerbale_Click()

    Dim strPathFile  As String

    strPathFile = cmdFileDialog()

     If strPathFile <> vbNullString Then

         Me.sm_verbali.Form.AllowAdditions = Not Me.sm_verbali.Form.AllowAdditions

         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

         Me.sm_verbali.Form.AllowAdditions = Not Me.sm_verbali.Form.AllowAdditions

     End If

    End Sub

    le puoi applicare entrambe se vuoi. a me piace maggiormente la seconda, per la quale imposterei bloccato si a controllo che contiene il nome del file così eviti accidentali modifiche.

    Grazie Sandro

    prego,

    ciao! Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-08-30T20:55:39+00:00

    ultima cosina per ringraziarti immensamente ed al limite se c'è possibilità di ringraziarti anche al di fuori del forum...

    nella maschera il comando con il codice:

    Dim ret As Integer

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

    End Sub

    apre il file se presente e fin qui tutto ok.

    se il nome del file è vuoto cliccando si apre la finestra su documenti con tutti i file.

    vorrei far uscire un messaggio dicendo: non hai caricato nessun modello. procedi prima del caricamento!!!

    Grazie Sandro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-08-30T20:44:08+00:00

    grazie ancora Sandro, nonostante i copia ed incolla, mi scappa sempre qualcosa... perdonami...

    si serve la msgbox in quanto mi chiede se devo salvare la pratica creata:

    • se no, non salva
    • se si, esce hai salvato al n° 0001/2015 e cosi via

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento