vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
E-Mailversand Access bzw. suchen und einfügen 
Autor: human440
Datum: 19.06.08 17:17

Hallo,

ich habe ein etwas größeres Problem. Es ist bestimmt nicht sehr elegant, bin über jede Hilfe sehr dankbar.
Eine Exceltabelle soll mit Werten aus einer Datenbankabfrage gefüllt werden und daraufhin möglichst automatisch per E-Mail verschickt werden.

Outlook 2003, Access 2003 (aber Datenbank im 2000er Format gespeichert)

Bisher habe ich folgendes:

Ein Formular mit zwei Kombinationsfeldern bei denen die Datensatzherkunft manuell eingegeben wurde – es steht also keine direkte Tabelle dahinter.
In den beiden Feldern können aus dem Dropdownmenü Werte gewählt werden. Diese werden mit einer Aktualisierungsabfrage in der Tabelle tExport (Spalten: Abteilung und Kostenstelle) jedes Mal neu hinterlegt.

Die Abfragen qGK_Report_Excel und qGK_BewegKost werden anhand dieser in tExport hinterlegten Werte gefiltert und in ein Excelfile geschossen. Das funktioniert soweit auch. Jetzt habe ich das Makro in VBA konvertiert:

Option Compare Database
 
'------------------------------------------------------------
' m_GK_Report_xls_transfer
'
'------------------------------------------------------------
Function m_GK_Report_xls_transfer()
On Error GoTo m_GK_Report_xls_transfer_Err
 
    DoCmd.SetWarnings False
    ' qxls_Export_Steuerung_aktualisieren
    DoCmd.OpenQuery "qxls_Export_Steuerung_aktualisieren", acViewNormal, acEdit
    ' Transfertyp: Exportieren / Dateiformat: Microsof Excel 8.0 / 
    ' Tabellenname: qGK_Report_Excel / Dateiname: O:\ber\2008\BMS\GK_Report.xls 
    '  / Feldnamen: Ja / Bereich: leer
    DoCmd.TransferSpreadsheet acExport, 8, "qGK_Report_Excel", _
      "O:\ber\2008\BMS\GK_Report.xls", True, ""
    ' Transfertyp: Exportieren / Dateiformat: Microsof Excel 8.0 / 
    ' Tabellenname: qGK_BewegKost / Dateiname: O:\ber\2008\BMS\GK_Report.xls  / 
    ' Feldnamen: Ja / Bereich: leer
    DoCmd.TransferSpreadsheet acExport, 8, "qGK_BewegKost", _
      "O:\ber\2008\BMS\GK_Report.xls", True, ""
    ' Transfertyp: Exportieren / Dateiformat: Microsof Excel 8.0 / 
    ' Tabellenname: tSteuerung_zeit / Dateiname: O:\ber\2008\BMS\GK_Report.xls  
    ' / Feldnamen: Ja / Bereich: leer
 
m_GK_Report_xls_transfer_Exit:
    Exit Function
 
m_GK_Report_xls_transfer_Err:
    MsgBox Error$
    Resume m_GK_Report_xls_transfer_Exit
 
End Function
Und einen VBA Code für den E-Mailversand hinzugefügt. Dieser funktioniert ebenfalls eigenständig, aber hinzukopiert zum o.g. Code wird nur der E-Mailversand durchgeführt.

Sub Schaltfläche1_BeiKlick()
  ' Aufruf Unterprogramm "senden"
  Call senden
End Sub
 
 
Private Sub senden()
  ' Outlook Applikation
  Dim ool As Outlook.Application
  Dim oInspector As Outlook.Inspector
  Dim oMail As Outlook.MailItem
  Dim myattachments As Variant
 
 
  Dim MailAdress
  MailAdress = "xyz@web.de"
 
 
  ' Verweis zu Outlook + neue Nachricht
  Set ool = CreateObject("Outlook.Application")
  Set oMail = ool.CreateItem(olMailItem)
  Set myattachments = oMail.Attachments
 
  ' Befreff-Zeile
  oMail.Subject = "Stand dieser Liste: " & _
    Format(Date, "Long Date") & " !"
 
  ' An-Zeile (Empfänger)
  oMail.To = MailAdress   ' "g.huber@unilog.at"
  oMail.Recipients.ResolveAll
  oMail.Display
 
  ' Texteingabe (Nachricht selbst)
  oMail.Body = "Hier die Exceldatei, bitteschön..."
 
 
  ' Anhang
  ' Der vollständiger Pfad muß angegeben sein.
  ' Es können auch weitere Dateien angegeben werden.
  ' Hierzu einfach mit myattachments.Add "???" fortsetzen.
  myattachments.Add "D:\_o\Ber\2008\GK_Report.xls"
 
' oMail.Save
' oMail.Send
 
  ' Speicher freigeben
  Set ool = Nothing
  Set oInspector = Nothing
  Set oMail = Nothing
End Sub
Meine Fragen sind jetzt:

Wieso funktionieren sie nicht in Kombination?

Wie kann ich die E-Mailadresse an der Stelle MailAdress = "xyz@web.de" automatisch aus einer Datenbanktabelle einfügen lassen? Der Wert aus tExport.Abteilung soll hierfür mit der Tabelle tEmail (Spalten: Abteilung, EMail) verglichen werden und bei Übereinstimmung soll die entsprechende Emailadresse eingefügt werden.

Schon mal vielen Dank
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
E-Mailversand Access bzw. suchen und einfügen1.048human44019.06.08 17:17
Re: E-Mailversand Access bzw. suchen und einfügen527human44020.06.08 13:43

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel