inserire piu file contemporaneamente da finestra di dialogo in tabella

Anonimo
2017-02-23T15:46:11+00:00

salve a tutti,

da un pulsante presente in una form riesco ad inserire in una tabella (sottomaschera) dei file selezionati da una finestra di dialogo.

Con il codice ed il modulo di classe tutto funziona perfettamente, con l'unica criticità di dover selezionare ed inserire ogni singolo file.

Vorrei sfruttare la funzionalità di selezionare più file ed inserirli con un solo click; ho pensato anche di creare una cartella compressa, ma penso sia meglio, anche per una successiva consultazione, inserire ogni singolo file.

Provo a postare il linkper cercare di mostrare lo scenario.

Grazie a tutti Voi.

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

9 risposte

Ordina per: Più utili
  1. Anonimo
    2017-02-23T20:25:02+00:00

    Grazie Mimmo,

    tutti quei puntini mi restano proprio difficile....:-)

    grazie lo stesso

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-02-23T17:12:42+00:00

    Penso puoi utilizzare una DCount mettendo tra le condizioni IdServizi, nomeFile e myFolder, tipo

    If DCount ("*","tbl_modelli_compilati","IdServizi = " & forms.Maschera1.IdServizi & " And nomeFile = '" & strFile.........

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-02-23T17:02:53+00:00

    Grazie ad entrambi...

    ho testato entrambi i codici e la soluzione che meglio si adatta è quella di Mimmo :-)

    nel caso il nome dei files da inserire della cartella, sono già presenti nella tabella in relazione con IDservizi, è possibile far uscire il messaggio "file già presente!!! Vuoi sostituire od annullare???"

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-02-23T16:36:43+00:00

    Ciao,

    ad esempio, modifica:

    Public Function cmdFileDialog() As String

       Dim fDialog As Object

       Dim varFile As Variant

    Dim I As Integer

        Set fDialog = Application.FileDialog(3)

        With fDialog

          .Title = "Select One or More Files"

           .Filters.Clear

           .Filters.Add "All Files", "*.*"

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

           .Filters.Add "file di word", "*.docx"

           .Filters.Add "file pdf", "*.pdf"

          .InitialFileName = CurrentProject.Path & ""

           If .Show = True Then

          For I = 1 To .selecteditems.Count

    cmdFileDialog = cmdFileDialog & .selecteditems(I) & ";"

    Next I

           Else

              cmdFileDialog = vbNullString

           End If

        End With

    End Function

    e la routine:

    Private Sub cmdCaricaVerbale_Click()

    Dim strPathFile  As String

    Dim Vettore As Variant

    Dim I As Integer

    strPathFile = cmdFileDialog()

     If strPathFile <> vbNullString Then

         Me.sm_modelli_compilati.Form.AllowAdditions = Not Me.sm_modelli_compilati.Form.AllowAdditions

         Me.sm_modelli_compilati.SetFocus

         Dim intSlash As Integer

         Dim StrFile  As String

         Dim strPath  As String

         Vettore = Split(strPathFile, ";")

         For I = 0 To UBound(Vettore) - 1

              DoCmd.GoToRecord acActiveDataObject, , acNewRec

              intSlash = InStrRev(Vettore(I), "")

              StrFile = Right$(Vettore(I), Len(Vettore(I)) - intSlash)

              strPath = Left$(Vettore(I), intSlash)

             Me.sm_modelli_compilati!nome_file = StrFile

             Me.sm_modelli_compilati!myFolder = strPath

             Me.sm_modelli_compilati!data = Now

         Next I

         Me.sm_modelli_compilati.Form.AllowAdditions = Not Me.sm_modelli_compilati.Form.AllowAdditions

         End If

    End Sub

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-02-23T16:29:09+00:00

    ciao Peppino38,

    modifica il fileDialog in questo modo :

    Public Function cmdFileDialog() As String

         Dim fDialog      As Object

         Dim strFile      As String

         Dim varFiles     As Variant

         Set fDialog = Application.FileDialog(3)

         With fDialog

           .Title = "Seleziona uno i più files PDF:"

           .AllowMultiSelect = True

            .Filters.Clear

            .Filters.Add "files PDF", "*.pdf"

            .InitialFileName = CurrentProject.Path & ""

             If .Show Then

                For Each varFiles In .SelectedItems

                   strFile = strFile & ";" & varFiles

                Next

                'strFile = .SelectedItems(1)

             Else

                strFile = vbNullString

             End If

         End With

        cmdFileDialog = strFile

        Set fDialog = Nothing

      End Function

    e l'evento click :

    Private Sub cmdCaricaVerbale_Click()

    Dim strPathFile  As String

    Dim aFiles() As String

    Dim i As Long

    strPathFile = Mid$(cmdFileDialog(), 2)

    ' If strPathFile <> vbNullString Then

    '     Me.sm_modelli_compilati.Form.AllowAdditions = Not Me.sm_modelli_compilati.Form.AllowAdditions

    '     Me.sm_modelli_compilati.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_modelli_compilati!nome_file = strFile

    '     Me.sm_modelli_compilati!myFolder = strPath

    '     Me.sm_modelli_compilati.Form.AllowAdditions = Not Me.sm_modelli_compilati.Form.AllowAdditions

    '     Me.sm_modelli_compilati!data = Now

    '     End If

    aFiles = Split(strPathFile, ";")

    If IsNull(Me.IDservizi) Then Me.data = Date

    For i = 0 To UBound(aFiles)

        DBEngine(0)(0).Execute "insert into tbl_modelli_compilati (nome_file,idservizi) values ('" & aFiles(i) & "'," & Me.IDservizi & ")", &H80

    Next

    End Sub

    Facci sapere.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento