Newsgroup: it.comp.appl.access
Titolo: FileSystemObject: problema spazi nome directory.

Salve a tutti.
So che è un problema già trattato ma le soluzioni trovate non hanno funzionato per me.
In sostanza devo creare un file .bat con dei semplici comandi xcopy (generati da una selezione su una maschera). Il file deve essere creato in una directory:
 
C:\Program files\mieapp\utility\file.bat
 
come vedete la directory contiene uno spazioe e non riesco in nessun modo a scrivere lì dentro (non è un problema di autorizzazioni già testato).
Uso i comandi:
 
Dim dirDest As FileSystemObject
Dim fso As FileSystemObject
Dim oFile As Object
Dim strPath As String
 
strPath = "C:\Program files\mieapp\utility\file.bat" 
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile(strPath)
....
'genero il testo che metto nella variabile "testo"
 
oFile.WriteLine testo
oFile.Close
Set fso = Nothing
Set oFile = Nothing
 
 
Ho provato a scrivere strPath come segue (oltre che come scritto sopra):
strPath = """" & "C:\Program files\mieapp\utility\file.bat" & """"
strPath = "'C:\Program files\mieapp\utility\file.bat'"
strPath = chr(34) & "C:\Program files\mieapp\utility\file.bat" & chr(34)
ho anche provato a crea strPath come somma di più stringhe, separando il nome del file ma il risultato non cambia.
 
Mi viene restituito l'erroe di runtime 76.
Facendo dei test su un percorso che non contiene spazi il problema non sussiste.
La finestra delle variabili locali come valore di strPath mi restituisce quello corretto, ossia: C:\Program files\mieapp\utility\file.bat e con il testo che voglio nel file ...
 
Grazie in anticipo.

oierpa expressed precisely :

Prova così:
strPath = "C:\" & %ProgramFiles% & "\mieapp\utility\file.bat"
 
Bruno


Ciao Bruno.
Grazie mille per la risposta.
Ho appena provato (ieri ero fuori sede, oggi ho subito voluto provare), ma restituisce lo stesso errore.
In particolare, se non metto le virgolette VBA mi dice subito "carattere non valido", se invece lo metto fra virgolette alla variabile viene assegnato il valore scritto, ossia %ProgramFiles% invece che andare a cercarsi la variabile del SO.
Non so più dove sbattere la testa, speravo davvero che questo tentativo andasse a buon fine perché è l'unico che non avevo provato di quelli proposti da Internet.
Grazie comunque

oierpa was thinking very hard :

Windows 10 Pro
==============
 
1 - Ho creato in C:\Program Files la directory "Uti lity"
2 - DxClick su "Uti lity" ==> Properties ==> Security
    assegna a tutti il Permission "Full Control"
 
Dopodiché funziona tutto
 
Bruno
 
PS
Che Windows stai usando?

Windows 7 64 bit, con office/access 2013.
Provo fra poco e ti dico.
Grazie

Provato:
errore di runtime 76, impossibile trovare il percorso.
Mi sembra che nel caso di difficoltà di acesso l'errore sia diverso.
Grazie comunque

oierpa was thinking very hard :

Non so che dirti; alle condizioni che ti ho indicato
da me funziona regolarmene.
Hai ptovato ad assegnare gli stessi Permission
"Full Control" a tutte le directory interessate?
 
Bruno


Ciao Bruno.
Si ho provato ma contina a darmi l'errore di runtime 76.
Ho poensato di creare una variabile di windows dove scrivo il percorso, ma non so come richaimarla in VBA (visto che %nomevaraibile% non gli piace).


wrote:

Dim dirDest As FileSystemObject
Dim fso As FileSystemObject
Dim oFile As Object
Dim strPath As String
 
strPath = "C:\Program files\mieapp\utility\file.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile(strPath)
oFile.WriteLine "testo"
oFile.Close
Set fso = Nothing
Set oFile = Nothing
 
il tuo codice sotto win7 32 bit e office 2010 funziona perfettamente
se metto al posto di mieapp mieapp1 ottengo l'errore tu dici.
 
sei sicuro di scrivere bene il percorso?
 
prova a spostare il tuo test sotto la directory users.
 

 On Mon, 26 Oct 2015 02:58:43 -0700 (PDT), oierpa

Ciao Giovanni.
Scusa il ritardo nella risposta, nel frattempo in azienda siamo passati da Samba a windows 2012 sul server, non senza problemi.
Io uso win 7 64 e il problema persiste.
Domani provo su una macchina diversa e vedo se ho lo stesso problema o meno.
Grazie mille per l'interessamento.