Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Email aus Formular heraus

Begonnen von dobby110, September 28, 2015, 13:22:46

⏪ vorheriges - nächstes ⏩

dobby110

Formulareigenschaften - Vor Aktualisierung finde ich noch.
Der Rest sagt mir gar nichts.
Ich arbeite komplett mit den Generatoren und habe leider keine VBA Kenntnisse.
Daher weiß ich jetzt nicht genau was du damit meinst oder was ich da rein schreiben muss.

dobby110

Ich habe mal das Internet durchsucht und folgenden Code gefunden. Hilft der mir weiter?

Ich muss aber nur vier Felder prüfen und natürlich beginnen die nicht alle mit "txt" :-(

Depot
Nummer
Bezeichnung
und
Grund Reklamation
heissen die vier Felder


   Dim ctl As Control
    Dim check as boolean

    check = true
   
    For Each ctl In Me.Controls
   
        If Left(ctl.Name, 3) = "txt" Then
            If IsNull(ctl) Then
                MsgBox "nicht befüllt"
                check = false
            End If
        End If
    Next

    'Prüfen auf Vollständigkeit und Reaktion
    If check = False Then
       
        MsgBox "Es wurden nicht alle benötigten Informationen erfasst ....", vbExclamation,"Datenspeicherung"
        Exit Sub

    Else

         'Code fürs Speichern ausführen   

    End If

DF6GL

Hallo,

bei "Formulareigenschaften - Vor Aktualisierung "   klick auf die rechts stehenden 3 Pünktchen, wähle anschliessend "Code-Generator" aus, falls das Fenster erscheint und schreibe in die vorbereitete Prozedur im aufpopenden VBA-Editor den entspr. Code hinein...

etwa so:

Sub Form_BeforeUpdate (Cancel as Integer)  '  Prozedurrumpf schon generiert

If IsNull(Me!Depot) Then
Msgbox " Feld Depot nicht ausgefüllt"
Cancel = True
End if

If IsNull(Me!Nummer) Then
Msgbox " Feld Nummer nicht ausgefüllt"
Cancel = True
End if

'usw..

End Sub

dobby110

Hallo,

also es funktioniert alles prima. Habe allerdings noch eine weitere Frage.
Hier mal ein Teil von meinem VBA Code

Dim strBody As String, strBetreff As String
strBetreff = "Neue Reklamation"

CreateEmailWithOutlook "DB_Test@test.de", strBetreff, strBody


Wie kann ich denn noch einen Empfänger in CC einfügen?
Sollte doch sicher auch kein Problem sein, oder?

MaggieMay

Hallo,
ZitatWie kann ich denn noch einen Empfänger in CC einfügen?
dazu musst du die Prozedur um einen entsprechende Parameter erweitern und diesen im Code berücksichtigen.
Freundliche Grüße
MaggieMay

dobby110

Verstehe ich jetzt leider nicht ...

also so wie ich den Betreff und die Felder die ich per Mail mitschicken möchte, führe ich noch in einer Zeile den "CC-Empfänger" auf?

strBetreff = "Neue Reklamation"

Das würde dann so aussehen?

strCC = "BB_Empfaenger@test.de"

und in dem Code führe ich dann noch "strCC" hinzu?

CreateEmailWithOutlook "DB_Test@test.de", strBetreff, strCC, strBody

Wenn dem so ist, wäre nur noch die Frage, ob ich das CC Feld auch mit "strCC" richtig anspreche?

Der komplette Code sieht dann so aus?

Dim strBody As String, strCC As String, strBetreff As String

strCC = "BB_Empfaenger@test.de"
strBetreff = "Neue Reklamation"

CreateEmailWithOutlook "DB_Test@test.de", strBetreff, strCC, strBody

MaggieMay

Hi,

soweit OK, nur musst du die Prozedur "CreateEmailWithOutlook" noch insoweit anpassen, dass sie den zusätzlichen Parameter aufnehmen kann und bestimmungsgemäß verwendet.

Wenn man bereits eingesetzte Funktionen nachträglich erweitert, fügt man die zusätzlichen Parameter sinnvollerweise als optional hinzu, damit der bestehende Code weiterhin unverändert laufen kann. Andernfalls muss der Funktionsaufruf überall angepasst werden.

Beispiel:
Public Function CreateEmailWithOutlook( _
    MessageTo As String, _
    Subject As String, _
    MessageBody As String, _
    Optional strCC As String = "")


und dann im Code:
        .CC = strCC

Der Aufruf sähe dann so aus:
CreateEmailWithOutlook "DB_Test@test.de", strBetreff, strBody, strCC
Freundliche Grüße
MaggieMay