Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-12-2012, 23:51   #1
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
Invio automatico email da Access 2010 con Outlook

Buongiorno a tutti.
Nello studio veterinario nel quale lavoro, abbiamo la seguente necessità. Vorremmo inviare delle email in automatico ai nostri clienti quando si avvicina il termine per la vaccinazione annuale del loro animale.

Utilizziamo Access 2010 per la contabilità di cassa e Outlook come gestore di posta elettronica.In sostanza vorremmo che a scadenze regolari (ad esempio una volta al mese) il programma selezioni i nominativi corretti nel database clienti, crei un messaggio personalizzato (con nome cliente, nome animale, data ultimo vaccino, ecc) e lo invii.

Non vi chiedo di indicarmi passo a passo la procedura, anche perchè sono completamente digiuno di Access, programma che non ho mai utilizzato. Vorrei solo sapere se la cosa è fattibile con tali programmi o se consigliate una soluzione diversa. Magari se potete darmi una traccia da cui iniziare.
Mi sembra di aver capito che probabilmente ci vorrà anche un po' di programmazione tramite VBA per l'invio delle email. Vero? Anche qui purtroppo non so nulla.

Grazie.
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2012, 22:32   #2
Braccop
Senior Member
 
L'Avatar di Braccop
 
Iscritto dal: Jan 2002
Messaggi: 2690
ti serve un software fatto ad hoc. outlook e' fuori dall'equazione.

ti consiglio di scaricarti visual c# express e farlo con quello, o al limite visual basic express se ti e' + congeniale.

l'idea di base e' che il software debba aprire il database access, fare una query apposita che selezioni i clienti con vaccinazioni in scadenza, e per ogni record invii una mail (tramite un server, ovviamente) generata direttamente nel codice del programma.

tale software poi dovrebb essere schedulato per l'esecuzione (operazioni pianificate di windows) ogni tot giorni
__________________
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders
Braccop è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2012, 23:09   #3
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
Ciao e grazie mille per le informazioni.
Credo di aver afferrato bene l'idea di base. Nei prossimi giorni vedrò cosa riesco a ricavare da visual c# express.
Ho detto di essere abbastanza smanettone ma purtroppo la mia conoscenza dei linguaggi di programmazione è bassissima. Partendo praticamente da zero e leggendo apposite guide, pensi sia fattibile la cosa o mi consigli di lasciar perdere?
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2012, 23:47   #4
Braccop
Senior Member
 
L'Avatar di Braccop
 
Iscritto dal: Jan 2002
Messaggi: 2690
se hai dei rudimenti di programmazione e sql probabilmente si, dopotutto non e' difficile come programma
__________________
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders
Braccop è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2012, 18:25   #5
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
In questo giorno ho setacciato la rete e mi sono studiato i principi base di Access. Sto pensando, almeno per ora, di lasciar perdere l'automazione dell'invio mail, e di creare invece un pulsante abbinato ad una macro VBA che faccia il lavoro.

Mi sono creato un database fittizio a casa con:
- Tabella clienti con tutti i dati necessari
- Maschera per l'inserimento di nuovi clienti
- Query per la ricerca dei pazienti con vaccino in scadenza

Vorrei ora creare per l'appunto (tramite VBA) un pulsante che invii a tutti gli indirizzi email della query un email personalizzato con i dati del cliente (nome animale, data ultimo vaccino, ecc) inseriti all'interno del testo.

Qualcosa del tipo:
"Gentile cliente, dai dati in nostro possesso risulta che il suo <<animale>> <<nome animale>> ha effettuato l'ultima vaccinazione in data <<data vaccinazione>>. La invitiamo dunque a prendere contatto presso il nostro studio ecc ecc"

Al termine dell'invio bisognerebbe anche aggiornare uno specifico campo della tabella clienti relativo all'avvenuto invio dell'email onde evitare invii doppi.

Mi sembra di aver capito che il cuore del codice sta nel comando DoCmd.SendObject ma non riesco a capire come fare ad inserire i dati necessari all'interno dell'email.
Immagino che bisogni prima estrarre dalla query gli indirizzi email da immettere nel campo Bbc ed inserire gli altri dati da inserire nel testo del messaggio.

Chi mi dà qualche spunto da cui partire?
Grazie
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"

Ultima modifica di Dottor Gonzo : 14-12-2012 alle 18:27.
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2012, 21:04   #6
Braccop
Senior Member
 
L'Avatar di Braccop
 
Iscritto dal: Jan 2002
Messaggi: 2690
ma non ti conviene onestamente eh... ti do' una base da cui partire, con c#

gli using vanno in testa, il resto va dentro al codice della funzione principale da cui vuoi lanciare la procedura

Codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.IO;

System.Data.OleDb.OleDbConnection conn = null;
System.Data.OleDb.OleDbDataReader reader = null;

System.Data.OleDb.OleDbCommand cmd;

String dbpath = "c:\\database\\";
String dbpass = "eventualepassword";

conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbpath + "database.mdb; Jet OLEDB:Database Password=" + dbpass + ";");
conn.Open();

cmd = new System.Data.OleDb.OleDbCommand("SELECT * FROM CLIENTI WHERE ecc ecc", conn);
reader = cmd.ExecuteReader();

while (reader.Read())
{
// codice che invia le mail qui dentro

}

reader.Close();

conn.Close();
__________________
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders
Braccop è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2012, 17:10   #7
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
Grazie per il suggerimento.

Intanto però, avendo voglia di imparare un po' il vba, mi sono messo a studiare durante il fine settimana.
Sono giunto ad una prima versione del codice, che sembra funzionare a dovere. In sostanza la routine apre la query per la ricerca dei vaccini in scadenza, copia gli indirizzi email, compone il messaggio di posta elettronica, lo invia tramite outlook, aggiorna il database (cambia il campo "richiamo inviato") e scrive un messaggio di conferma.

Ecco il codice:

Codice:
Option Compare Database
Option Explicit

Private Sub Comando172_Click()

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim ConteggioRecord As Long
    Dim indirizzo As String
    Dim Paziente As String
    Dim NomePaziente As String
    Dim UltimoRichiamo As Date
    Dim olApp As Object
    Dim objMail As Object
    Dim objOutlook As Outlook.Application
    Dim objOutlookMsg As Outlook.MailItem
    
    ' Apre la query "ricerca vaccini in scadenza
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Ricerca vaccini in scadenza")
    
    ' Va avanti in caso di errore
    On Error Resume Next

    ' Controlla se Outlook è aperto
    Set olApp = GetObject(, "Outlook.Application")

    ' Se Outlook non è aperto, apre una nuova istanza
    If Err Then
    Set olApp = CreateObject("Outlook.Application")
    End If

    ' Conteggio record presenti nella query
    ConteggioRecord = rst.RecordCount
    
    ' Se nessun record crea messaggio apposito
    If ConteggioRecord = 0 Then
      MsgBox "Nessun vaccino in scadenza", vbInformation
    
    ' Altrimenti inizia loop
    Else
      rst.MoveLast
      rst.MoveFirst
      Do Until rst.EOF
      ConteggioRecord = ConteggioRecord + 1
        
    'Crea una nuova mail
    Set objMail = olApp.CreateItem(olMailItem)
    
    ' Imposta indirizzo destinatario
    indirizzo = rst![email]
    
    ' Imposta tipo animale
    Paziente = LCase(rst![Animale])
    
    ' Imposta il nome animale
    NomePaziente = rst![Paziente]
    
    ' Imposta data ultimo vaccino
    UltimoRichiamo = rst![Data vaccino norm]

    ' Compila il messaggio email
    With objMail
    .BodyFormat = olFormatPlain
    .To = indirizzo
    .Subject = "Richiamo vaccini prova 3.0"
    .body = "Gentile cliente," & vbCrLf & _
    vbCrLf & _
    "Dai dati in nostro possesso risulta che il suo " & Paziente & " " & NomePaziente & " ha effettuato l'ultima vaccinazione in data " & UltimoRichiamo & "." & _
    vbCrLf & "La invitiamo dunque a prendere contatto presso il nostro studio per fissare un appuntamento per il richiamo annuale." & vbCrLf & _
    vbCrLf & _
    " Centro Veterinario Girard & Gabucci"
    .Send

    End With
    
    ' Modifica campo "richiamo inviato"
    rst.Edit
    rst![richiamo inviato] = True
    rst.Update
    
    ' Passa al record successivo
    rst.Update
    rst.MoveNext
    Loop
    
    ' Messaggio di conferma
    ConteggioRecord = ConteggioRecord - 1
    MsgBox "Inviati correttamente " & ConteggioRecord & " richiami."
    End If
    
    'Chiude query e database
    rst.Close
    db.Close
    Set rst = Nothing
    Set db = Nothing
    Close
    
    
End Sub
Ho fatto alcuni test e, come dicevo, sembra funzionare bene.
Magari qualcuno sa dirmi se ho commesso errori grossolani?

Il passo successivo sarebbe effettivamente automatizzare la procedura. Non so se sia possibile direttamente tramite le operazioni pianificate di Windows oppure sia per l'appunto necessario crearsi un software ad hoc tramite C#.
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2013, 15:01   #8
Isabella_AA
Junior Member
 
Iscritto dal: Nov 2013
Messaggi: 2
Buongiorno Dottor Gonzo,
sei riuscito a risolvere il problema? Abbiamo le stesse necessità con la differenza che io sono quasi totalmente digiuna di linguaggi di programmazione vba... il codice va incorporato nel file Access o come eseguibile?

Grazie in anticipo
Isabella_AA è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2013, 15:24   #9
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
Ciao Isabella.
Il progetto dell'invio automatico delle email era in realtà parte integrante di un progetto più complesso che prevedeva l'allestimento di un gestionale completo dello studio veterinario. Vale a dire gestione dei dati di clienti, pazienti, cartelle cliniche, farmaci e loro prezzi, fatturazioni e pure invio automatico di email.

Il lavoro, seppur praticamente finito e funzionante, è ormai fermo da parecchi mesi. In sostanza non mi sentivo pronto ad assumermi la responsabilità di far gestire l'attività commerciale ad un programma da me creato in poche settimane, partendo completamente da zero. Ho provato a richiedere l'appoggio di qualche esperto in materia, ma non è per nulla facile.

Detto questo, il mio consiglio è il seguente. Se ti interessa imparare il funzionamento di Access e di vba, studia più che puoi
In rete si trova parecchio materiale in merito. Iscriviti ai forum dedicati e fai domande. Io ho fatto così e sono rimasto sorpreso delle nozioni che ho imparato in breve tempo.

Per ciò che riguarda l'invio automatico di email la questione è abbastanza complessa. Farlo con Access è possibile, malgrado molti sostengano il contrario. Io ci sono riuscito con il codice che ho esposto sopra. Il codice è lanciato in seguito al click di un apposito pulsante presente nella schermata di Access che gestisce il tutto. Il linguaggio è parte integrante del programma ed è possibile programmarlo direttamente in Access.

È comunque una cosa piuttosto complessa da fare. Ma se ti leggi un minimo di materiale sul tema, dovresti in breve tempo capire la logica e riprodurre ciò che ho fatto ed adattarlo alle tue esigenze.
Non posso darti indicazioni più precise, perché non mi dedico più alla questione da parecchio tempo e faccio davvero fatica a ricordare il significato di tutto ciò che ho scritto prima

Ci sono evidentemente anche altre alternative. In rete si trovano ad esempio diverse applicazioni a pagamento per la gestione di una mailing list, sicuramente molto più complesse ed affidabili di un codice amatoriale

Se hai la possibilità di affrontare la spesa e se non hai voglia o tempo di dedicarti allo studio nerd di linguaggi di programmazione, ci farei più di un pensiero.

Spero di esserti stato utile. Se hai bisogno altre informazioni, chiedi pure.
In bocca al lupo per il tuo progetto!
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2013, 17:24   #10
Isabella_AA
Junior Member
 
Iscritto dal: Nov 2013
Messaggi: 2
Grazie Dott. Gonzo; in effetti sto muovendo i primi passi nella direzione suggerita, ho dato un'occhiata al visual basic editor e comincio lontanamente ad intuire alcune dinamiche di funzionamento...
Ho creato il database e inserito il codice... ma non riesco ad eseguirlo.... magari qualcuno del forum può aiutarmi in quest'ultimo passaggio....
Isabella_AA è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2013, 19:11   #11
Dottor Gonzo
Senior Member
 
L'Avatar di Dottor Gonzo
 
Iscritto dal: Feb 2008
Messaggi: 1661
Per eseguire il codice, devi abbinarlo ad un evento.

La prima riga del mio codice (Private Sub Comando172_Click()) si riferisce proprio a questo. Quando il comando 172 (un pulsante immesso nella schermata di Access) viene premuto, viene eseguito il codice che segue.

Se non ricordo male, esiste anche la possibilità di testare il codice mentre lo stai componendo.
Più di così non riesco ad aiutarti, perché è quasi un anno che non tocco Access...
__________________
" Lascia l'ascia di guerra ed accetta l'accetta dell'amicizia"
Dottor Gonzo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Il remake di Assassin's Creed IV: Black ...
Tutti i robot aspirapolvere in offerta s...
Amazon Haul spinge la promo di San Valen...
Offerte hardware Amazon per l'upgrade de...
iPhone 17e dovrà fare i conti con...
Offerte Amazon sugli iPhone di ultima ge...
DJI Mini 5 Pro Combo Fly More scende a 8...
Ubisoft potrebbe licenziare ancora ma se...
Samsung Galaxy S26: un leak anticipa col...
Aetherflux e Lockheed Martin insieme per...
SpaceX sta proseguendo i test della terz...
Axiom Space ha mostrato un nuovo video d...
Realme: la trasformazione in sub-brand d...
PlayStation 6 si farà attendere: ...
BWT Alpine chiude la prima tornata di pr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v