Newsgroup: it.comp.appl.access
Titolo: Automazione Access-Excel

Salve ragazzi, ho un problema...
qualcuno sa spiegarmi perchč se copio un file
Premesso che FileModello ha un solo foglio...
Private Sub GeneraXlsFileFattura(FileName As String)
Copy FileModello, FileName
End Sub
oppure cosě
Private Sub GeneraXlsFileFattura(FileName As String)
Dim workXL As EXcel.Workbook
Set workXL = GetObject(CurrentProject.Path & FileModello)
workXL.SaveAs FileName
workXL.Close
Set workXL = Nothing
End Sub
quando apro FileName
non compare nessuno sheet.
HTH
Luca
l dot petteruti @ libero dot  it


Ciao,
io ti suggerisco il metodo che "preferisco": esso utilizza una funzione 
delle API di windows...ovviamente  ce ne sono di molto più semplici
Funzione SHFileOperation
Declare Function SHFileOperation Lib "Shell32.dll" _ Alias 
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
La funzione SHFileOperation, fornita da Shell32.dll consente di  copiare, 
spostare,cancellare o rinominare file.
Tutte le funzionalità sono governate dai parametri passati alla funzione 
tramite la struttura SHFILEOPSTRUCT.
Parametri:
lpFileOp  'contiene le informazioni sul tipo di operazione che la funzione 
deve eseguire. Tali informazioni vengono assegnate dai membri della 
struttura SHFILEOPSTRUCT.
La funzione ritorna zero se si conclude con successo.
Struttura SHFILEOPSTRUCT
Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String ' usato solo se FOF_SIMPLEPROGRESS
End Type
      hwnd Handle alla dialog box utilizzata per mostrare le informazioni 
sullo stato dell'operazione. Se il membro fFlags include il valore 
FOF_CREATEPROGRESSDLG questo parametro sarà l'handle della finestra genitore 
per la progress dialog box creata dal sistema.
      wFunc Descrive il tipo di operazione da realizzare può essere uno dei 
seguenti valori. FO_MOVE = &H1 Sposta il file specificato in pFrom, nella 
locazione specificata da pTo
            FO_COPY = &H2 Copia il file specificato in pFrom, nella 
locazione specificata da pTo
            FO_DELETE = &H3 Cancella il file specificato in pFrom (pTo è 
ignorato.)
            FO_RENAME = &H4 Rinomina il file specificato in pFrom
      pFrom   è una stringa terminata da due caratteri Null che contiene il 
percorso ed il nome del file origine, è possibile utilizzare i caratteri 
jolly ad es *.* per selezionare più file
      pTO è una stringa terminata da due caratteri Null che contiene il 
percorso di destinazione  (ignorato in caso di FO_COPY)
      fFlags Flag di controllo dell'operazione, può essere uno dei seguenti 
Flags o la combinazione di essi. FOF_MULTIDESTFILES  = &H1  Indica che il 
membro pTo specifica una destinazione multipla dei file (una per ogni file 
origine) piuttosto che una unica directory dove verranno messi tutti i file 
origine.
            FOF_CONFIRMMOUSE = &H2  Flag non implementato
            FOF_SILENT  = &H4  Non mostra la progress dialog box
            FOF_RENAMEONCOLLISION  = &H8 Assegna al file processato un nuovo 
nome (ad es. Copia 1 di....) in un'operazione di spostamento, copia, o 
rinomina se il file di destinazione già esiste.
            FOF_NOCONFIRMATION  = &H10  Sovrascrive o cancella il file senza 
chederne conferrma
            FOF_WANTMAPPINGHANDLE  = &H20  Assegna l'handle al membro 
hNameMappings. L' handle deve essere liberato usando la funzione 
SHFreeNameMappings .
            FOF_CREATEPROGRESSDLG  = &H0 handle della finestra genitore per 
la progress dialog box creata dal sistema.
            FOF_ALLOWUNDO  = &H40  Consente le operazioni di ripristino per 
i file cancellati ed inviati al cestino.
            FOF_FILESONLY  = &H80  Realizza l'operazione solo sui file nel 
caso sia stato specificato come file di origine (*.*).
            FOF_SIMPLEPROGRESS  = &H100 Mostra la progress dialog box, ma 
non mostra i nomi dei files.
             FOF_NOCONFIRMMKDIR  = &H200 Non conferma la creazione di una 
directory se l'operazione richiede che ne sia creata una.
      fAnyOperationsAborted  Questo valore riceve TRUE se l'utente annulla 
l'operazione prima che essa sia completata, altrimenti riceve FALSE.
      hNameMappings  Handle all'oggetto filename mapping che contiene un 
array della struttura SHNAMEMAPPING . Ogni struttura contiene il vecchio ed 
il nuovo nome del path per ogni file che è stato spostato, copiato, 
rinominato. Questo membro è utilizzato solo se fFlags inclue 
FOF_WANTMAPPINGHANDLE.
      lpszProgressTitle Contiene una stringa da usare come titolo per la 
progress dialog box. Questo membro viene usato solo se è incluso il flag 
FOF_SIMPLEPROGRESS.
Es. di utilizzo
In un modulo dichiari la  funzione, la struttura e le costanti
      Public Const FO_COPY As Long = &H2
      Public Const FOF_NOCONFIRMATION = &H10
      Type SHFILEOPSTRUCT
         hwnd As Long
         wFunc As Long
         pFrom As String
         pTo As String
         fFlags As Long
         fAnyOperationsAborted As Long
         hNameMappings As Long
         lpszProgressTitle As String
      End Type
 Public Declare Function SHFileOperation Lib "Shell32.dll" _
   Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Allinterno dell'evento click di una maschera inserisci il seguente codice
Private Sub cmdCopia_Click()
    Dim Destinazione, FileOriginee As String
    Dim ritorno As Long
    Dim fileoperazione As SHFILEOPSTRUCT
    Destinazione = "C:\Documents and Settings\Amministratore\Desktop\"
    FileOrigine = "c:\db.mdb"
    With fileoperazione
        .hwnd = Me.hwnd
        .wFunc = FO_COPY
        .pFrom = FileOrigine
        .pTo = Destinazione
        .fFlags = FOF_NOCONFIRMATION
    End With
        ritorno = SHFileOperation(fileoperazione)
           If ritorno <> 0 Then
               MsgBox "Si è verificato il seguente errore: " & 
Err.LastDllError
                Exit Sub
             Else
               MsgBox "Il file è stato copiato con successo!"
         End If
End sub
Buona serata
Gaspare
http://www.studioieducation.com

 ha scritto nel messaggio 
news:KBB2e.16833$IN.3...@twister2.libero.it...

Ciao,
in sintesi 

 ha scritto nel messaggio 
news:KBB2e.16833$IN.3...@twister2.libero.it...

Ciao,
in sintesi in un modulo dichiari la  funzione, la struttura e le costanti




Private Sub cmdCopia_Click()


    FileOrigine = "c:\db.mdb"

        ritorno = SHFileOperation(fileoperazione)
           If ritorno <> 0 Then
               MsgBox "Si č verificato il seguente errore: " &
Err.LastDllError
                Exit Sub
             Else
               MsgBox "Il file č stato copiato con successo!"



A questo punto il problema consiste nel fatto che a monte non salvi il file 
nella maniera in cui lo vorresti visualizzare...prova un pň a rivedere la 
procedura che utilizzi per salvare il file e verifica (manualmente) che 
prima di copiarlo contenga quello che a te interessa...
Notte
Gaspare

 ha scritto nel messaggio 
news:AiD2e.715642$b5.32...@news3.tin.it...

Ti ringrazio infinitamente della dritta ma ottengo lo stesso risultato.



Il file sicuramente contiente ciň che mi interessa (ho fatto varie prove)
ora mi compare l'errore 6 della tua funzione, considera che una volta ha 
pure funzionato (ho fatto la prova con un .doc nella stessa cartella.)
...e adesso errore 6 anche con il doc.
Proprio non riesco a capire dov'č il problema
Approfitto per fare una domanda sulla funzione che mi hai mandato
E' possibile sostituire hwnd della maschera con quello di access in modo da 
poter spostare la funzione in un modulo e poterlo riutilizzare in piů punti 
diversi ( compresi altri moduli) ?

 ha scritto nel messaggio 
news:YeO2e.17593$IN.3...@twister2.libero.it...

Ciao,
lascia perdere la precedente funzione...puoi utilizzare la seguente...
In un modulo inserisci
---------------
Public Function copiafile(ByVal orig As String, ByVal destin As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(orig) = True Then
     fs.CopyFile orig, destin
      MsgBox "File copiato con successo!"
     Exit Function
End If
Set fso = Nothing
MsgBox "Il file non č stato copiato -> verifica di aver inserito in maniera 
esatta origine e destinazione !"
End Function
----------------
Per richiamarla in qualunque posto, all'interno dello stesso db, utilizza il 
seguente codice:
--------------------------
Dim origine, destinazione As String
Dim lunghezza As Long
origine = InputBox("Inserisci il file da copiare completo di path")
If (origine <> Empty) Then
  origine = Trim$(origine)
Else
   MsgBox "Devi inserire il file da copiare"
   Exit Sub
End If
destinazione = InputBox("Inserisci il path di desinazione del file ")
If (destinazione <> Empty) Then
  destinazione = Trim$(destinazione)
  lunghezza = Len(destinazione)
  If Right(destinazione, lunghezza - 1) = "\" Then
    destinazione = destinazione
  Else
    destinazione = destinazione & "\"
  End If
Else
   MsgBox "Devi inserire la destinazione del file"
   Exit Sub
End If
  Call copiafile(origine, destinazione)
---------------------------------
Penso che sia superfluo commentarti quello che faccio...puoi documentarti se 
vuoi..
Se qulacosa non va fammi sapere
Gaspare 

 ha scritto nel messaggio 
news:KBB2e.16833$IN.3...@twister2.libero.it...

(per la cronaca) Come mai non utilizzi fogli excel modello (.xlt)?
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:d2gj3a$ii0$1...@canarie.caspur.it...

Sto provando...
Ho cominciato cosě
Public Sub LoadModelFile(NomeModelFile As String)
    ShellExecute 0, "New", NomeModelFile, "", "", 1
End Sub
cosě apro il file xlt con cartel1.xls e poi?
come mi aggancio al file aperto?
P.S. nella Sub GeneraXlsFileFattura FileModello č proprio un xlt...
Luca

 ha scritto nel messaggio 
news:oRP2e.1143049$35.42...@news4.tin.it...

Ti ringrazio č tutto chiaro come il sole...
Luca 


Ho provato a leggere il discorso ma non ho capito cosa vuoi fare; vuoi 
aprire un foglio excel basato su un modello e impostargli (salvandolo) 
subito il path e nome file?
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:d2gmne$keq$1...@canarie.caspur.it...

Ciao Sergio,
da quello che ho capito l'obiettivo č copiare 1 file di excel da dentro 
access... 

 access...
Mhmm... Se fosse cosě che ciazzeccherebbe l'automazione?
Il mistero si infittisce...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:d2gtv6$nnr$1...@canarie.caspur.it...

Ciao :-) 

>
Vi chiarisco le idee e forse me le chiarisco pure io...  ;-)
Devo fatturare...
immagazinare in access le info delle fatture.
Ora devo conservare le fatture in excel (l'azienda fattura cosě)
Quindi fatturo, stampo e immagazzino le info attraverso access.
Ho una cartella modelli con dentro xlt della fattura.
Ora nel form Nuova Fattura immetto i dati
e quando vado a salvare ho bisogno di
aprire il modello (o copiarlo) in xls dentro la cartella Fatture\Emesse\
e salvarci dentro i dati...
E' piů chiaro?


Mo' sě; dovrebbe bastare questo esempio:
Dim oApp As Excel.Application
Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Add "nomeModello"
oApp.ActiveWorkbook.SaveAs "c:\fatture\emesse\nomeFile"
oApp.Visible = True
Set oApp = Nothing
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:g%T2e.18180$IN.4...@twister2.libero.it...

Un esempio di automazione con excel lo trovi sul sito comune 6.48 Esempio di 
automazione con MSExcel.
http://www.sitocomune.com
Per il resto, dopo aver fatturato, selezioni le celle del foglio di excel 
che ti interessa archiviare e quindi apri la tabella e li archivi nei campi
Gaspare 

 ha scritto nel messaggio 
news:NGU2e.718380$b5.32...@news3.tin.it...

Effettivamente hai le idee piů chiare di ieri quando ti ponevi l'obiettivo 
di copiare un file ...continua cosě --> "CHI LA DURA LA VINCE" ;-)