Newsgroup: it.comp.appl.access
Titolo: Copiare una selezione di file da una cartella a un'altra

Ciao, non ne esco più... aiutatemi per favore,
 
Ho creato una maschera basata su una query dove ho un elenco di DDT emessi nella data odierna. Il numero di questi DDT è anche il nome del file pdf relativo di ciascuno. Voglio copiare questi file da un percorso a un altro e cercando nel NG ho trovato codice che ho adattato (sperando di fare giusto) alla soluzione di quanto sto cercando di fare.
Ora (finalmente) non ricevo più nessun errore di parametri o operatori mancanti o    
altri errori che mi sono imbattuto, ma non mi copia alcun file.
Mi date un aiuto voi per favore, cosa mi manca per ottenere quanto cerco di fare?
 
 
Private Sub Comando5_Click()
Dim rst As DAO.Recordset
Dim strSQL As String
 
strSQL = "SELECT pickin.DataUscita, pickin.NrDDT FROM pickin GROUP BY pickin.DataUscita, pickin.NrDDT HAVING pickin.DataUscita =" & [Forms]![M_DdteCmr_DelGiorno]![Data]
 
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
Do Until rst.EOF
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.copyfile "Y:\DDTeCMR\" & rst!pickin.NrDDT & ".pdf", "Y:\DDTeCMR\Temp\"
rst.MoveNext
Loop
rst.Close
 
 
Grazie infinite
 
Andrea


https://www.vbsedit.com/html/94e39f9a-c7bf-42be-ae71-5768f034e070.asp
 
 
in questo caso (file)destination è da indicare per intero
 
... •If destination is a directory, an error occurs ...


E' indicato per intero, mi hanno già funzionato quei percorsi.

 E' indicato per intero, mi hanno già funzionato quei percorsi.
 
 
allora è da riscontrare il risultato della selezione della query
 
-scrivendo la query con il QBE e tenendo aperta la form
-scorrendo il codice passo passo e riscontrando il valore di rst!pickin.NrDDT 
 
c'è da scartare l'eventualità di un errore di sintassi per il criterio con la data
(qualificatore assente ?)


Ho fatto il debug del codice passo passo e quando arrivo all'istruzione
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
posizionandomi col cursore sopra a rst mi dà rst = Nothing
poi continuando il debug con F8 mi va alla riga subito sotto per poi saltare direttamente a rst.Close.
 
Credo che non faccia proprio il recordset... 
 

 Credo che non faccia proprio il recordset...
 
il criterio data abbisogna del qualificatore #,
ma in SQL può esserci la mancata corrispondenza 
(data "nativa" statunitense ?)
 
quindi, possibil criteri:
 
pickin.DataUscita =#" & [Forms]![M_DdteCmr_DelGiorno]![Data] & "#"
 
pickin.DataUscita =" & clng([Forms]![M_DdteCmr_DelGiorno]![Data]) 
 
con il campo Data della form M_DdteCmr_DelGiorno definito, appunto, come data


Si, mi sa che hai individuato il problema.
Con 
pickin.DataUscita =" & clng([Forms]![M_DdteCmr_DelGiorno]![Data]) 
non ottengo nessun risultato, ma con
pickin.DataUscita =#" & [Forms]![M_DdteCmr_DelGiorno]![Data] & "#"
ottengo come risultato la data americana e non quella italiana con il mese e il giorno invertiti. Credo che siamo sulla strada giusta e ora bisogna fargli capire che la data che voglio è quella in formato italiano gg/mm/aaaa.

Credo che siamo sulla strada giusta e ora bisogna fargli capire che la data che voglio è quella in formato italiano gg/mm/aaaa.
 
allora guarda qui
https://www.iprogrammatori.it/forum-programmazione/access/access-modifica-formato-delle-date-t29038.html
 
 
 e segui i consigli di Alex


Ho trovato da me. Modificato in questo modo:
pickin.DataUscita =#" & Format([Forms]![M_DdteCmr_DelGiorno]![Data], "mm/dd/yyyy") & "#"
 
Grazie infinite, non mi sdebiterò mai, ma grazie!
 
Andrea