Newsgroup: it.comp.appl.access
Titolo: invio di fax da access con  la stampante fax di windows xp

vorrei poter inviare da access un report attraverso il fax di windows xp ma
senza dover scegliere la stampante fax dal men u a tendina delle stampanti e
senza poi dover fare la procedura guidata di invio fax, ho visto degli
esempi che usano winfax 10.0 sul sito comune ma vorrei evitare di volerlo
comprare
quindi vi chiedo sapete se è possibile inviare in stampa un report
direttamente passando come parametro il numero di fax e quindi trasmettere
subito il tutto senza fare la procedura guidata?
Grazie a tutti.

 ha scritto nel messaggio
news:cbokq4$ssg$1...@lacerta.tiscalinet.it...

Se WinXp ha il servizio fax puoi utilizzare quello;
es.
On Error GoTo inviaFax_err
'--> creo il file di log
Dim nomeFileLog As String
nomeFileLog = "C:\liste\logFaxInvio_" & Format(Date, "ddmmyyyy") & ".txt"
Open nomeFileLog For Output As #1
'--> dichiarazione oggetti
Dim oFso As Scripting.FileSystemObject, oDoc As Object
Dim oFax As FaxServer, oFaxDoc As FaxDoc, JobId As Variant
'--> dichiarazione variabili
Dim numeroFaxDaComporre As String, posInizio As Integer
'--> creazione oggetti
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFax = CreateObject("FaxServer.FaxServer")
'--> inizio impostazione server fax
Print #1, "'--> inizio impostazione server fax"
With oFax
    .Connect "" '<-- creo una connessione (al pc), se stringa nulla é il pc
locale
    .ArchiveDirectory = "C:\Documenti\Fax\Fax inviati" '<-- directory dove
posizionare i fax inviati
    .ArchiveOutboundFaxes = 1 '<-- salvataggio di una copia del fax nella
cartella
    .Branding = 1 '<-- scrivi intestazione del fax nel documento
    .DirtyDays = 5 '<-- giorni per ritentare l'invio se non riuscito
    .Retries = 1 '<-- numero ore per ritentare l'invio (del fax) non
riuscito
    .RetryDelay = 5 '<-- numero minuti per ritentare l'invio (del fax) non
riuscito
    .ServerCoverpage = 0 '<-- non invio la pagina di informazioni
    .UseDeviceTsid = 1 '<-- invio l'identificativo del fax che trasmette
End With
Print #1, "'--> fine impostazione server fax" '<-- fine impostazione server
fax
'--> ciclo per ogni documento nella cartella dei fax
Print #1, "'--> ciclo per ogni documento nella cartella dei fax"
For Each oDoc In oFso.GetFolder("C:\liste\FaxDaInviare\").Files
'--> inizio creazione documento fax
'--> creazione documento fax
    Set oFaxDoc = oFax.CreateDocument("C:\liste\FaxDaInviare\" & oDoc.Name)
'--> inizio impostazione e invio documento fax
    posInizio = InStr(1, oDoc.Name, "_") + 1 '<-- posizione carattere
underscore
    numeroFaxDaComporre = Mid(oDoc.Name, posInizio) '<-- tolgo i numeri
prima del carattere underscore
    numeroFaxDaComporre = Left(numeroFaxDaComporre,
Len(numeroFaxDaComporre) - 4) '<-- tolgo l'estensione del file e il punto
    With oFaxDoc
        .FaxNumber = "0" & numeroFaxDaComporre '<-- numero del fax
        Print #1, numeroFaxDaComporre & "'<-- numero del fax da comporre"
        On Error Resume Next '<-- verifica errore invio fax
        JobId = .Send '<-- invio fax
        Print #1, "'<-- invio fax: " & oDoc.Name
        If Err.Number <> 0 Then '<-- se si é verificato un errore
            Print #1, "Errore: " & Application.AccessError(Err.Number) & "
su invio fax: " & oDoc.Name & ", JobId: " & JobId
        Else
            Print #1, "Fax: " & oDoc.Name & ", JobId: " & JobId & "...
Inviato."
        End If
    End With
'--> fine impostazione documento fax
    On Error GoTo 0 '<-- ripristino la gestione degli errori
'--> fine creazione documento fax
    Set oFaxDoc = Nothing
Next
On Error GoTo 0 '<-- reimposto la gestione degli errori
inviaFax_exit:
    Print #1, "Disconnessione dal server fax."
    oFax.Disconnect '<-- disconnetto il server fax
    Print #1, "'--> distruggo gli oggetti"
'--> distruggo gli oggetti
    Set oFso = Nothing
    Set oFax = Nothing
    Print #1, "Invio fax terminato."
    Close #1
    Exit Sub
inviaFax_err:
    Print #1, "Disconnessione dal server fax."
    Print #1, "'--> distruggo gli oggetti"
'--> distruggo gli oggetti
    Set oFso = Nothing
    Set oDoc = Nothing
    Set oFax = Nothing
    Set oFaxDoc = Nothing
    Set JobId = Nothing
    Print #1, Application.AccessError(Err.Number), vbCritical + vbOKOnly,
"Routine InviaFax - Errore"
    Close #1
la routine
- invia tutti i file presenti in una cartella "C:\liste\FaxDaInviare\"; i
file hanno nel nome il numero di telefono del fax, es. 06656566_docFax.doc;
- utilizza un file di testo come log per le operazioni;
- salva una copia dei fax inviati nella cartella "C:\Documenti\Fax\Fax
inviati";
Prima di utilizzare il codice devi avviare il servizio fax...
Ciao.
-- 
Sergio MAZZA

 Sergio MAZZA
Grazie Sergio, é una bomba.
Ciao
Galliano.