Pubblicato il 4 Luglio 2020 da Maurizio Matetich

Ho creato una maschera Access per inserire i dati anagrafici dei clienti.
I campi sono i soliti: cognome, nome, indirizzo, telefono …

Ad ogni cliente devo associare alcuni documenti: carta d’identità, busta paga, relazioni … I documenti possono essere in vari formati (Word, Excel, PDF, HPG …)

Creare una cartella per associare i documenti

Per creare una cartella posso utilizzare le seguenti istruzioni VBA associate all’evento “Su clic” di un pulsante :

Dim CartellaCliente As String

CartellaCliente = “c:\documentazione\cliente1”

Set fs = CreateObject(“Scripting.FileSystemObject”)
If Not fs.FolderExists(CartellaCliente) Then ‘controllo se la cartella esiste
fs.CreateFolder (CartellaCliente)
End If

Ma come faccio a rendere questa cosa più pratica ? come faccio a creare cartelle uniche e diverse per ogni cliente ? non posso basarmi sul cognome e nome perchè ci possono essere due Rossi Mario !
Nella maschera ho aggiunto il campo CodiceFiscale e creo una cartella con il nome uguale al codice fiscale.

Ricapitolando:
1) voglio utilizzare una variabile per impostare il percorso principale
2) nella maschera Anagrafica inserisco i dati del cliente e il suo codice fiscale
3) ho un pulsante che crea la cartella associata al cliente. Il percorso della cartella sarà PercorsoPrincipale\CodiceFiscaleCliente
4) quando faccio clic sul pulsante si apre la cartella del cliente e posso vedere i documenti esistenti

Ecco il codice VBA.

‘posso modificare velocemente la cartella ad esempio inserendo un percorso di rete
Public Const PercorsoPratiche = “c:\documentazione\”

Dim CartellaCliente As String

‘controllo se ho inserito il codice fiscale
If IsNull(Me.CodiceFiscale) Then
msgbox “Attenzione manca il codice fiscale”
Else
‘imposto il percorso della cartella
CartellaCliente = PercorsoPratiche + Me.CodiceFiscale

Set fs = CreateObject(“Scripting.FileSystemObject”)
If Not fs.FolderExists(CartellaCliente) Then
fs.CreateFolder (CartellaCliente)
End If

‘apre la cartella del cliente
Call Shell(“Explorer.exe ” & CartellaCliente, 1)

End If