🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Mail aus Base mit Daten schicken per Makro

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: Mail aus Base mit Daten schicken per Makro

Beitrag von pingpong » Di 8. Apr 2014, 20:19

Ja danke,
das meiste habe ich verstanden. Aber das Wichtigste ist: Es läuft!!!
So gut wie Alles konnte ich umsetzen. Jetzt muss ich das Teil erstmal ein paar Tage laufen lassen. Da wird es bestimmt noch die ein oder andere Änderung geben. Evtl brauche ich noch so etwas wie einen Text, der groß in dem einen Formular erscheint, wenn in der Datenbank etwas in dem anderen Formular eingegeben wurde. Ich kann das mit den Check-Feldern machen, aber die sind zu klein. Wie auch immer, jetzt läuft´s erstmal.
Vielen Dank und hier das Makro, wie es jetzt läuft:

Code: Alles auswählen

rem
SUB Mail_Neufertigung
   REM Mailaufruf mit mailto:Empfänger?subject=...&body=...&cc=...&bcc=...
   REM Die letzten beiden Eingaben sind im Formular nicht aufgeführt
   REM Anhänge sind laut Definition von "mailto" nicht definiert. Manchmal funktioniert allerdings "attachment="
   DIM oDoc AS OBJECT
   DIM oDrawpage AS OBJECT
   DIM oForm AS OBJECT
   DIM oFeld1 AS OBJECT
   DIM oFeld2 AS OBJECT
   DIM oFeld3 AS OBJECT
   DIM oFeld4 AS OBJECT
   DIM oFeld5 AS OBJECT
   DIM oFeld6 AS OBJECT
   DIM oFeld7 AS OBJECT
   
   
   DIM oShell AS OBJECT
   DIM stFeld1 AS STRING
   DIM stFeld2 AS STRING
   DIM stFeld3 AS STRING
   DIM stFeld4 AS STRING
   DIM stFeld5 AS STRING
   DIM stFeld6 AS STRING
   DIM stFeld7 AS STRING
   
   
   oDoc=thisComponent
   oDrawpage=oDoc.Drawpage
   REM Lage des Feldes in dem entsprechenden Formular aufsuchen
   oForm=oDrawpage.Forms.getByName("Neufertigungformular")
   oFeld1=oForm.getByName("Datum")
   oFeld2=oForm.getByName("Kunde")
   oFeld3=oForm.getByName("Zeichnung")
   oFeld4=oForm.getByName("Sachbearbeiter")
   oFeld5=oForm.getByName("Beschreibung")
   oFeld6=oForm.getByName("Auftrag")
   oFeld7=oForm.getByName("Stück Ausschuss")
   oFeld8=oForm.getByName("Stück gesamt")
   
   stFeld2=oFeld2.Text
   stFeld3=oFeld3.Text
   stFeld5=oFeld5.Text
   stFeld6=oFeld6.Text
   stFeld7=oFeld7.Text
   stFeld8=oFeld8.Text
   

   
   IF stFeld2 = "" THEN
      msgbox "Kein Kundenname vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
   EXIT SUB
   END IF
   
   IF stFeld3 = "" THEN
      msgbox "Keine Zeichnungs-Nr.vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"   
   EXIT SUB
   END IF
   
   IF stFeld5 = "" THEN
      msgbox "Keine Beschreibung vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"  
   EXIT SUB
   END IF
   
   IF stFeld6 = "" THEN
      msgbox "Keine Auftrags-Nr.vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"   
   EXIT SUB
   END IF
   
   IF stFeld7 = "" THEN
      msgbox "Keine Ausschuss Stückzahl eingetragen." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
   EXIT SUB
   END IF
     
   IF stFeld8 = "" THEN
      msgbox "Keine Gesamt Stückzahl eingetragen." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
      EXIT SUB
   END IF
   
   oControl = oForm.getByName("Sachbearbeiter")
   stEintrag = oControl.ValueItemList( oControl.SelectedItems(0) )
   
   
   
   stAdresse="elkepopelke@bb.de"
   stAdresseCC="ding@bums.de"
   
   REM Die Konvertierung zu URL ist notwendig, da sonst Sonderzeichen und Zeilenumbrüche nicht übernommen werden
   REM Die überflüssigen Einträge file:/// werden dabei wieder herausgeschnitten
   stFeld1=Mid(ConvertToUrl(oFeld3.Text),9)
   stFeld2=Mid(ConvertToUrl(oFeld2.Text),9)
   stFeld3=Mid(ConvertToUrl(oFeld3.Text),9)
   stFeld5=Mid(ConvertToUrl(oFeld5.Text),9)
   stFeld6=Mid(ConvertToUrl(oFeld6.Text),9)
   stFeld7=Mid(ConvertToUrl(oFeld7.Text),9)
   stFeld8=Mid(ConvertToUrl(oFeld8.Text),9)
   
   
   
   REM Start des Files mit der entsprechenden URL-Verbindung
   oShell = createUnoService("com.sun.star.system.SystemShellExecute")
   oShell.execute("mailto:"+stAdresse+"?subject="+"Neufertigung "+stFeld2+" "+"Auftrag "+stFeld6+"&body="+"Neufertigung "+stFeld7+" von "+stFeld8+" Stück. "+"Beschreibung: "+stFeld5+" - entschieden von: "+stEintrag+"&cc="+stAdresseCC+"",,0)
END SUB

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Mail aus Base mit Daten schicken per Makro

Beitrag von RobertG » Di 8. Apr 2014, 22:46

Hallo pingpong,

Du hast Teile des mailto-Befehls nicht mit ConvertToUrl bearbeitet. Prüfe einmal, ob Du da keine Schwierigkeiten bekommst, z.B. mit dem Wort "Stück".

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

Re: Mail aus Base mit Daten schicken per Makro

Beitrag von Freischreiber » Di 22. Apr 2014, 19:39

Hallo,

wäre es mit diesem Makro auch möglich, an eine in dem hier
http://www.libreoffice-forum.de/downloa ... hp?id=1945
enthaltenen Formular markierte Mailadresse eine Mail zu erzeugen?

Dort wird die aktuell markierte Mailadresse verwendet, um mit einem Textfield-Makro Platzhalter in einem Textdokument auszufüllen.

Irgendwie müßte das Mail-Makro beigebracht bekommen, aus dem Unterformular FormKontakt die aktuell markierte Mailadresse zu holen, und aus dem Hauptformular Name und Anrede, und daraus eine Mail zu erzeugen.

Problem ist mal wieder, daß ich ihm das nicht beibringen kann, da meine Programmierkenntnisse in dieser Makrosprache gegen Null gehen :(

Ich verspreche aber, denjenigen, der es schafft/macht, für den Informatik-Nobelpreis vorzuschlagen ;)

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten