Newsgroup: it.comp.appl.access
Titolo: StampePdf e Mail non vanno cambiando server

Ciao a tutti,
 
ho fatto tempo fa un programma in A2003 che generava delle stampe in pdf 
utilizzando le librerie di Lebans e le inviava via mail utilizzando la 
mapi32.dll e il codice scritto da @Alex.
 
Ora il server su cui gira andrï¿œ dismesso e ho fatto delle prove sul 
nuovo server (w2008 r2 64bit).
 
Nï¿œ la generazione in pdf nï¿œ l'invio mail funziona piï¿œ.
 
Io ho copiato la mapi32.dll. dynapdf.dll e strstorage.dll (la mapi c'ï¿œ 
anche in system2 e syswow64) nella cartella del programma.
 
Cosa ho dimenticato?
 
grazie
Nicoletta

Anche Access ï¿œ a 64 bit? A me funzionano tutti i componenti a 32 bit, ma 
anche Access lo ï¿œ.


Nicoletta has brought this to us :

Se stai usando come client di posta Outlook 2003, ti conviene scrivere 
quattro righe di codice VBA in Access per aprire un'istanza Outlook e 
far tutto in famiglia Office.
Con buona pace delle librerie esotiche...
 
Bruno
 
 


Access 2003.
Non riesco a registrare le dll mi dï¿œ errore 'DllRegisterServer entry 
point was not found'
 

 Cosa ho dimenticato?
 
 
Mah, credo che la cosa migliore si riscrivere la faccenda appoggiandosi a 
una Printer .PDF.
Nella documentazione di PDFCreator (che funziona anche su sistemi a 64 bit) 
trovi esempi di codice VB per la creazione di PDF da Report.
Un'alternativa a pagamento, ma pi� leggera e altamente affidabile (anche in 
Terminal server) �:  
http://neevia.com/
 
 
Per l'invio, ti dir� che a me funziona mapi32 su Win 2008 64 bit. Tuttavia 
la cosa migliore � affidarsi ad Outlook attraverso automazione OLE, come ti 
suggerisce Bruno Campanini.
 
Saluti.
 
 

 una Printer .PDF.
 
 
Naturalmente se utilizzi Access < 2007, altrimenti la generazione pu� essere 
nativa. 
 
 


Il problema ï¿œ che non sto sviluppando un nuovo programma, ho solo 
cambiato server e non vorrei essere costretta a mettere le mani su un 
codice che ha sempre funzionato.
Come mai non riesco a registrare le dll di Lebans?
Come mai la mapi32.dll non mi funziona?
Sono queste le domande che mi pongo, altrimenti magari potrei di nuovo 
trovare problemi con w2012 o altro.
Capisco i suggerimenti per le alternative (sempre bene accetti per il 
futuro) ma cercavo una soluzione per il presente.
 
Nicky
 

 ma cercavo una soluzione per il presente.
Che, da quel che appare allo stato della discussione, non esiste.
Quindi... rassegnati.
 
Potresti inviarmi il tuo codice di mailing da Access?
Sono in grado di testarlo con Office 2003/32 e 2010/64,
con W7/W2008-R2/W2012-Datacenter (64 bit) e con XP/32 bit.
 
Bruno
 
 

 futuro) ma cercavo una soluzione per il presente.
 
 
 
Le librerie di Lebans hanno diversi anni sul groppone, nel frattempo il 
(geniale) creatore ha abbandonato Access e il supporto ai lavori sviluppati.
Quindi, non mi pare lungimirante proseguire su quella strada.
 
Ciao.
 
 
 
 
 

 Ciao.
 
MAPI funziona sempre ovviamente in quanto è il SERVER OLE di MAPI
istanziato LateBinding che si preoccupa della conversione delle
chiamate a 32/64...
 
Cosa MOLTO diversa sono le routine di Lebans, che invece non offrono
un'interfaccia OLE, quindi sono dichiarazioni di DLL Standard/Activex
e non sono compatibili.
 
Stephen purtroppo non sviluppa più, e non verranno riconvertite.
Credo che se contattato sia disponibile per i sorgenti, almeno a me
alcuni li ha forniti anche non pubblicati... tuttavia parlo di 4 anni
fà...
 
Conconrdo con l'idea di appoggiarsi ad un PDF(VirtualPrinter) in
accoppiata con MAPI.
 
Ciao
@Alex


 
Ti dir� che con MAPI ho incontrato un problema seccante, di cui ho trovato 
testimonianza pure sul ng:
 
https://groups.google.com/forum/?fromgroups#!topic/it.comp.appl.access/fXZ3ecu7lvs
 
 
In pratica, non c'era modo di far sparire quel terribile messaggio d'avviso 
di Outlook ('un programma sta tentando d'inviare un messaggio...')
 
A meno di:
 
1- Utilizzare per l'invio l'automazione OLE e non MAPI
2- Installare questo:  
http://www.mapilab.com/outlook/security/
 
 
A tal proposito non ho fatto ulteriori verifiche con Outllook 2010/13: il 
problema permane o hanno inserito qualche opzione nel prodotto per eliminare 
l'avviso?
 
Comunque, a proposito d'invio tramite automazione OLE, tu avevi sviluppato 
del codice che sfruttava Outlook con associazione tardiva: una figata  ;-)
E' una soluzione che in giro non si trova (mi pare almeno) e penso che tu 
non l'abbia mai pubblicata sul sito comune.
In tal caso dovresti provvedere: funziona ed � un'ottima soluzione.
 
Ciao!
 
 
 
 

 l'avviso?
 
Tutti problemi che si evitano usando l'accoppiata Access-Outlook.
Cioï¿œ aprendo in Access una sessione di Outlook ed eseguendo da quella 
tutte le funzioni di mailing.
Per l'avviso "un programma sta tentando..." mi pare si elimini con:
Outlook-->File-->Option-->Trust Center-->Trust Center 
Settings-->Programmatic Access-->Never Warm Me about suspicious 
activity.
 
Bruno
 
 


le librerie di lebans non vanno registrate
io le uso con Axp senza problemi sia su win7 64bit hce su win8 64bit
 
ciao
 
 

 Settings-->Programmatic Access-->Never Warm Me about suspicious activity.
 
 
Grazie per la segnalazione   ;-)
 
 
 

 Ciao!
 
Ciao Simone, sono a conoscenza del problema, e se non ricordo la
soluzione più banale era il CLICKYES, ma è una porcata.
Ovviamente appoggiarsi direttamente a MSO è un'altra cosa, che non
reputo sempre possibile, basta pensare in grosse aziende dove ad
esempio usano Lotus...
 
Sui miei esempi io ho pubblicato TUTTO, non nel SC perchè come sai è
MORTO da tempo, anche il mio sito, ma grazie al WebMaster di un forum,
mi ha concesso il Mirroring
e tutti i contenuti ci sono... con i difetti del Mirror... non è più
dinamico, nel senso che non posso più aggiornarlo, e non si fanno più
ricerche...
 
Tutto il materiale tuttavia del mio vecchio dominio, ha avuto un'altro
supporto di ospitalità, da Massimiliano(MA) che con Salvino(sant'uomo)
ha provveduto a pubblicare tutto il mio armamentario... e quello
contiene anche alcun news.
 
http://mirror.masterdrive.it/alessandrobaraldi/
 
http://www.accessgroup.it/
 
 
Ormai, mi sono arenato... ma tu vedo che sei attivissimo, è molto che
non sento Silvio, chissà se legge ed esce allo scoperto...!
 
Ciao
@Alex

Sui miei esempi io ho pubblicato TUTTO,
 
 
Quasi tutto, quello mi pare proprio che manchi   ;-)
 
Ciao, Simone
 
 

 Ciao, Simone
 
Sai che non so di cosa parli....?
E' pur vero che ho perso un HD pieno di lavori da A2 ad A2000 a causa
Crash, ma non ricordo il lavoro di cui parli... non è che ti riferisci
al MailSender fatto con WinSock(Ocx) ....?
 
Ciao
@Alex


 
Ecco cosa intendo:
 
 
 
'Invia Mail tramite Office Automation con associazione "tardiva" della 
libreria OutLook
Public Function SendMailOLE(sSubject As String, _
                            sTo As String, _
                            SCc As String, _
                            SCCO As String, _
                            sAttach As String, _
                            sMessage As String) _
                            As Long
 
   On Error GoTo Err_Send
 
   Const olMailItem = 0
   Dim OApp        As Object
   Dim OItem       As Object
 
 
   Set OApp = GetOutlook()
   Set OItem = OApp.CreateItem(olMailItem)
 
   With OItem
          .To = sTo
          .Cc = SCc
          .BCC = SCCO
          .Subject = sSubject
          .Body = sMessage
          If sAttach <> vbNullString Then .Attachments.Add sAttach
          .Send
   End With
 
   Set OItem = Nothing
   Set OApp = Nothing
 
   Exit Function
 
Err_Send:
   MsgBox Err.Number & " " & Err.Description, vbCritical, ""
 
End Function
 
 
Private Function GetOutlook() As Object
 
  ' The GetOutlook() function sets the Outlook Application
  ' and Namespase objects and opens MS Outlook
  On Error Resume Next
 
  Dim mOutlookApp   As Object
 
  Set mOutlookApp = GetObject("", "Outlook.application")
 
  ' If Outlook is NOT Open, then there will be an error.
  ' Attempt to open Outlook
  If Err.Number > 0 Then
         Err.Clear
         Set mOutlookApp = CreateObject("Outlook.application")
 
         If Err.Number > 0 Then
                MsgBox "Could not create Outlook object", vbCritical
                Exit Function
         End If
  End If
 
  ' Return the Success Flag as the value of GetOutlook()
  Set GetOutlook = mOutlookApp
 
End Function
 
 

 Crash, ma non ricordo il lavoro di cui parli... non è che ti riferisci

Adesso ho capito..., ma forse lo ritenevo talmente elementare che non
servisse una pubblicazione specifica...
;-)
 
In tutti i casi è migliorabile, ad esempio un'array di Stringhe per
gli Attachment..., la gestione HTML o RFT....
Per i lavoratori volenterosi....
 
@Alex


 
 
E sbagliavi: la routine GetOutlook() non � banale e risponde a un'esigenza 
importantissima: sfruttare Outlook senza sporcare i riferimenti del FE.
 
 
 
 

 importantissima: sfruttare Outlook senza sporcare i riferimenti del FE.
 
Si è corretto... sai che io le cose semplici le sottovaluto... ;-)
dandole per scontate...
dovendomi divertire ed essendo pagato a righe di codice, devo
incentivare cose complicate e
con tanto codice.... ehehehehe
 
@Alex