Newsgroup: it.comp.appl.access
Titolo: FileDialog, non seleziona la directory corretta

Buongiorno a tutti.
 
Con il listato
 
Private Sub cmdSfoglia_Click()
 
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Show
 
' Memorizza il nome del file nella casella percorso allegati
 
'Me.txtAllTo = CurrentProject.Path & "\Allegati\" & 
fncNomeFile(fd.SelectedItems(1))
 
Me.txtAllTo = CurrentProject.Path & "\Allegati\"
Me.txtAllTo = fncNomeFile(fd.SelectedItems(1))
 
 
 
End Sub
 
 
ed il modulo
 
Function fncNomeFile(strV As String) As String
 
Dim fso As New FileSystemObject
 
fncNomeFile = fso.GetFileName(strV)
 
End Function
 
 
Vado a prendermi il file da allegare al record. Il database è situato in 
E:\GENERAL BACKUP\GESTIONE FAMIGLIA mentre i file in E:\GENERAL 
BACKUP\GESTIONE FAMIGLIA\Allegati
 
Al doppio click invece, mi ritrovo nella directory E:\GENERAL 
BACKUP\Documenti non capisco perchè...
 
 
-- 
RoBort


intanto queste due righe di seguito non hanno senso
 
 > Me.txtAllTo = CurrentProject.Path & "\Allegati\"
 > Me.txtAllTo = fncNomeFile(fd.SelectedItems(1))
 
visto che la seconda sostituisce il contenuto me.txtAllto che hai appena 
scritto con la prima.
 
forse volevi concatenarli? se si andava bene quello che ora hai commentato
 
'Me.txtAllTo = CurrentProject.Path & "\Allegati\" &
 > fncNomeFile(fd.SelectedItems(1))
 
posta il codice che hai messo in questo doppio click altrimenti è dura
 
se stiamo parlando del automatismo dell'altro post ti basta
 
Call fHandleFile(Me.txtAllTo ,1)
SE in txtAllTo  ti sei salvato il percorso completo del file
 
SE ti sei salvato solo il nome file
 
Call fHandleFile(CurrentProject.Path & "\Allegati\" & Me.txtAllTo ,1)
 
 
BFS
 

 
 
Con il doppio click vado ad aprire la directory per selezionare il file 
da allegare. Il codice è il seguente:
 
Private Sub cmdSfoglia_Click()
 
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Show
 
' Memorizza il nome del file nella casella percorso allegati
 
'Me.txtAllTo = CurrentProject.Path & "\Allegati\" & 
fncNomeFile(fd.SelectedItems(1))
 
Me.txtAllTo = CurrentProject.Path & "\Allegati\"
Me.txtAllTo = fncNomeFile(fd.SelectedItems(1))
 
 
In origine come hai visto, c'era il codice che poi ho commentato per non 
eliminarlo. Quel codice mi dava il path completo E:\GENERAL BACKUP etc. 
etc., io invece volevo solamente il nome del file più l'estensione. C'ho 
smanettato un po' ed ho visto che smembrando in due la riga di codice ho 
ottenuto quello che volevo.
 
 
 
-- 
RoBort


se vuoi aprire la file dialog con default una certa cartella devi 
settarla cosi :
 
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
fd.InitialFileName = "E:\GENERAL BACKUP\GESTIONE FAMIGLIA\Allegati\"
 
fd.Show
 
 
BFS

 BFS
 
 
Ho settato così:
 
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
fd.InitialFileName = "E:\GENERAL BACKUP\GESTIONE FAMIGLIA\Allegati\"
 
fd.Show
 
All'apertura ricevo tale errore:
 
Errore di compilazione.
 
Non valido all'esterno di una routine.
 
 
 
-- 
RoBort


basta aggiungere una riga al codice che hai gia
se quello che hai postato funziona:
 
Private Sub cmdSfoglia_Click()
 
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.InitialFileName = "E:\GENERAL BACKUP\GESTIONE FAMIGLIA\Allegati\"
fd.Show
 
' Memorizza il nome del file nella casella percorso allegati
 
'Me.txtAllTo = CurrentProject.Path & "\Allegati\" & 
fncNomeFile(fd.SelectedItems(1))
 
Me.txtAllTo = CurrentProject.Path & "\Allegati\"
Me.txtAllTo = fncNomeFile(fd.SelectedItems(1))
 
 
 
End Sub

Prova a cambiarla cosi:
 
Dim fd As Object ' <---- questo 
Const msoFileDialogFilePicker=3 ' <---- aggiunto
 
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.InitialFileName = "E:\GENERAL BACKUP\GESTIONE FAMIGLIA\Allegati\"
fd.Show 
... ECC...
 
Altrimenti servono i riferimenti alla Lib. OFFICE ed è meglio evitarli nel caso sia da distribuire.
 
@Alex


Grazie Alex, avevo già messo in pratica il listato di BFS che in un 
primo momento non mi funzionava per miei errori... Avevo riportato la 
sola riga che mi era stata indicata, cancellando tutto il resto... Che 
dire, ora funziona alla grande, stasera ho iniziato a fare le scansioni 
degli scontrini fiscali tenuti da parte nel 2020 ed a collegarli, 
funziona alla perfezione.
Da solo non ci sarei mai arrivato, quando ho visto il listato mi sono 
spaventato... Toglietemi una curiosità, programmate in VBA per passione 
o per lavoro?
 
Mi consigliate qualche corso possibilmente in Kindle? Sono allergico al 
cartaceo... Grazie!
 
-- 
RoBort

 cartaceo... Grazie!
 
la programmazione per me è nata da una passione con il basic del 
commodore 64 da ragazzino
 
da li è diventata prima il mio percorso di studi con pascal e cobol alle 
superiori
università con fortran,  c++, java (poco purtroppo)
stage post università con visual basic 6
 
e poi di lavoro:
visual basic, vba, sql server
da li 
vb.net
 
e poi di recente android studio/python/flutter
 
non mi sono mai trovato bene con i libri perchè non combaciavano mai poi 
con il lato pratico o troppo dispersivi su alcuni argomenti.
credo che l'ultimo libro che ho comprato sia "Access 2002 e SQL Server"
mi affido di più al materiale che trovo nel web.
per farti un esempio android studio l'ho imparato ad usare da un corso 
gratuito su youtube fatto da un indiano :-) che spiega benissimo e parte 
dal classico "hello word" fino ad arrivare ad app complesse
 
BFS
 
 
 

 
 
 
Chapeau!
 
Anche il mio primo computer è stato un C64 acquistato nel 1985 per 
580.000 delle vecchie lire; consolle e registratore dedicato, poi floppy 
1541 e stampante 803, modifica speedos qualche tempo dopo! Quante 
battaglie!
 
Anch'io ho acquistato Access 2002 in fiera a Milano, molto dispersivo, 
poi mi sono affidato a qualche manuale tascabile.
 
Grazie ancora.
 
-- 
RoBort

 
 
 
 
Scusa dimenticavo una domanda, Visual Studio nonchè VB va oltre ma hanno 
qualcosa in comune con Access; esempio terra terra il mio db essendone 
capace si potrebbe fare anche con Visual Studio.
 
La mia è pura curiosità, qual è la differenza tra i due? Per i db è 
migliore Access o Visual Studio?
 
Grazie.
 
-- 
RoBort


stingendo molto i concetti..
 
intanto va chiarito che una applicazione come la tua è composta da una 
interfaccia grafica (mascher report etc)
e da un database per memorizzare i dati (nel tuo caso hai usato il 
database fornito da Access
 
l'interfaccia grafica puoi farla con il linguaggio che vuoi
e il database puoi scegliere quello più adatto ai tuoi scopi
 
esempio puoi fare l'interfaccia grafica in access e il database in mysql 
o in sql server
 
e puoi fare l'interfaccia grafica in un linguaggio qualsiasi di visual 
studio e tenere i dati nel tuo db access
 
quindi la risposta alla tua domanda è si, puoi farlo con quello che vuoi
 
la scelta dello strumento da usare è in base al proprio livello di 
conoscenza di un linguaggio e dalle esigenze tecniche e dalle 
prestazioni che il programma deve avere.
 
diciamo che di semplice come access per sviluppare un "semplice" 
database non c'è nulla a parer mio.
 
quindi non c'è un "migliore" in assoluto.
personalmente ti direi che se il db l'hai fatto a pure scopo  hobbistico 
continua con Access, visto che si sviluppa tutto in modo relativamente 
semplice.
 
se invece la tua intenzione è di imparare un linguaggio di 
programmazione e devi partire da zero ti direi di vedere altro, magari 
un linguaggio multi piattaforma e multi sistema. sicuramente un 
linguaggio ad oggetti.
(immagina di poter caricare le tue spese sia dal pc windows, sia dal tuo 
smartphone android e sia dal Ipad con Ios in un db che risiede in un 
cloud e quindi sempre accessibile)
 
scrivi su google "linguaggi di programmazione più usati o più richiesti" 
e ti fai una idea
 
 
ciao
BFS
 
 
 
 


Ottima delucidazione e te ne ringrazio. Ho un amico che ha iniziato con 
Excel progredendo sempre più, utilizzando il VBA a buon livello. 
Dopodichè un po' per avermi ascoltato dicendogli sempre che anche se 
svolgeva funzione di db, Excel non era proprio nato per lo scopo, è 
passato a Visual Studio anzichè ad Access. Ogni tanto mi dice ... passa 
a Visual Studio! La mia risposta è sempre la medesima, sono poco capace 
con Access, figuriamoci se passo in VS... Ecco perchè volevo capire la 
differenza tra i due pur programmando in Visual Basic.
 
Ciao e grazie.
 
Roberto
 
 
-- 
RoBort


non ti ha consigliato male.
 
prossimo step, scansiona direttamente dal tuo software gli scontrini 
cosi non devi farti il lavoro di abbinamento a mano ;-)
 
ciao
BFS
 
 

 
 
 
Non mi so neanche "allacciare le scarpe" con Access, figuriamoci cosa 
farei con VB anche se avevo iniziato a seguire dei tutorial... E poi non 
voglio lasciare il mio db anche se rudimentale mi dà modo di 
contabilizzare le spese casalinghe...
 
Intendi scansire gli s.f. e recuperare solamente i dati occorrenti come 
descrizione, quantità, prezzo unitario etc. etc. ?! Guarda, questo tipo 
che conosco me ne aveva parlato, però se non erro bisogna avere lo 
scanner che lavora in tale modalità che ora non ricordo quale sia. Il 
mio scanner una multifunzione Epson XP860 non ha tale funzione... 
Comunque se è questo che intendi c'avevo pensato...
 
Potrei anche in base alla ragione sociale, creare delle sottodirectory 
in Allegati. In tal modo gli s.f. sarebbero più ordinati e non tutti 
come ora all'interno di un'unica cartella. Per fare questo dovrei 
Googlare alla ricerca!
 
Ciao
 
-- 
RoBort

 
 
 
Mi riferivo al formatp pdfA... Ho fatto un po' di confusione su quanto 
scritto in precedenza...
 
 
-- 
RoBort