🙏 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. 🤗

Schaltfläche in Formular für Mail und für Homepage (gelöst)

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Tim
Beiträge: 21
Registriert: Mi 25. Jul 2012, 19:46

Schaltfläche in Formular für Mail und für Homepage (gelöst)

Beitrag von Tim » Mi 25. Jul 2012, 19:55

Hallo,

ich habe eine Adressdatenbank, die unter anderem E-Mailanschriften und Homepageadressen enthält. Im Formular sind entsprechende Felder für E-mail und Homepage. Ich möchte nun im Formular Schaltflächen einbauen, die bei Klick Thunderbird bzw. Firefox mit den entsprechenden Adressen öffnen (oder eben Standardmailprogramm bzw. Standardbrowser). Irgendwelche Automatismen für Betreff, Anrede, Anhang etc. brauche ich nicht. Ich arbeite mit Mac Lion.

Ich bin völlig ahnungslos, was Makros betrifft. Bitte also eine Schritt-für-Schritt-Erklärung für Dummies. Danke! Alles, was ich bisher gefunden habe, hat - sicher wegen meiner Unbedarftheit - nicht funktioniert.

Tim
Zuletzt geändert von Tim am Sa 28. Jul 2012, 10:10, insgesamt 1-mal geändert.
Libre Office 6.0.2.1 - Mac OS 10.14

harald235

Re: Schaltfläche in Formular für Mail und für Homepage

Beitrag von harald235 » Mi 25. Jul 2012, 22:18

Hallo Tim,

Die benötigten Makros für die Schaltfläche findest Du hier:
http://www.libreoffice-forum.de/viewtop ... =10#p14352 und nachfolgende Beiträge.

Und auch hier:
http://www.libreoffice-forum.de/viewtop ... 857#p14333 und nachfolgende Beiträge.

Das Makro wird den Schaltflächen-Eigenschaften zugeordnet unter Reiter (Karteikarte) "Ereignisse" - "Aktion ausführen". Damit sollte es klappen.

Gruß harald

Tim
Beiträge: 21
Registriert: Mi 25. Jul 2012, 19:46

Re: Schaltfläche in Formular für Mail und für Homepage

Beitrag von Tim » Sa 28. Jul 2012, 10:07

Hallo,

habe es hinbekommen. Danke! Danke auch an RobertG für dieses wunderbare Makro:

Code: Alles auswählen

SUB Website_Aufruf
	REM Aufruf einer Website oder des Mailprogramms mit einer vorgegebenen Mailadresse
	DIM oDoc AS OBJECT
	DIM oDrawpage AS OBJECT
	DIM oForm AS OBJECT
	DIM oFeld AS OBJECT
	DIM oShell AS OBJECT
	DIM stFeld AS STRING
	oDoc = thisComponent
	oDrawpage = oDoc.Drawpage
	REM Lage des Feldes in dem entsprechenden Formular aufsuchen
	oForm = oDrawpage.Forms.getByName("Formular")
	oFeld = oForm.getByName("Webadresse")
	REM Den Text aus der Dateiauswahl auslesen
	stFeld = oFeld.Text
	IF stFeld = "" THEN
		EXIT SUB
	END IF
	IF InStr(stFeld,"@") THEN
		stFeld = "mailto:"+stFeld
	ELSEIF InStr(stFeld,"http://") THEN
		stFeld = convertToUrl(stFeld)	'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
	ELSE	
		stFeld = "http://"+stFeld		
		stFeld = convertToUrl(stFeld)	'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
	END IF
	REM Start des Files mit der entsprechenden URL-Verbindung
	oShell = createUnoService("com.sun.star.system.SystemShellExecute")
	oShell.execute(stFeld,,0)
END SUB
Bei
oForm = oDrawpage.Forms.getByName("Formular")
oFeld = oForm.getByName("Webadresse")
müssen entsprechend der Name des Formulars und des Feldes, in dem die Webadresse steht, eingefügt werden.
Ich habe daraus zwei Makros gemacht, ein Makro mit dem Feldnamen der Webadresse, und ein zweites mit dem Feldnamen der Mailanschrift. Dazu zwei Buttons für Mail und Homepage mit der Eigenschaft:
Aktion ausführen -> entsprechendes Makro zuweisen.

Tim
Libre Office 6.0.2.1 - Mac OS 10.14

Gundo
Beiträge: 53
Registriert: So 1. Jul 2012, 10:23

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von Gundo » Mi 8. Aug 2012, 09:40

Hallo,

Ist ja interessant. Mal angenommen ich hätte in meiner Datenbank ein Feld mit der Emailadresse, und ich möchte z.B. zu Ostern allen Kunden "Fohe Ostern wünschen" (Thunderbird), das funktioniert mit diesem Makro ?

Es müssten dann Serienmails mit Betreff und Nachricht versendet werden. Betreff und Nachricht müssen ja vorher definiert werden. Per Filter müsste dann vorher festgestellt werden, welcher Kunde überhaupt eine Emailadresse angegeben hat. Auch besteht die Möglichkeit das es Kunden gibt die solche Mails gar nicht empfangen möchten. Die müssten dann auskgeklammert werden. Und natürlich das Zusammenspiel mit Thunderbird sollte einwandfrei funktionieren. Das stelle ich mir alles sehr kompliziert vor. Noch ist das nicht aktuell für mich, wurde aber schon als Wunsch für die Zukunft geäußert.

Gruß Gundo

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

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von RobertG » Mi 8. Aug 2012, 20:42

Hallo Gundo,
Gundo hat geschrieben: Ist ja interessant. Mal angenommen ich hätte in meiner Datenbank ein Feld mit der Emailadresse, und ich möchte z.B. zu Ostern allen Kunden "Fohe Ostern wünschen" (Thunderbird), das funktioniert mit diesem Makro ?
Es müssten dann Serienmails mit Betreff und Nachricht versendet werden. Betreff und Nachricht müssen ja vorher definiert werden. Per Filter müsste dann vorher festgestellt werden, welcher Kunde überhaupt eine Emailadresse angegeben hat. Auch besteht die Möglichkeit das es Kunden gibt die solche Mails gar nicht empfangen möchten. Die müssten dann auskgeklammert werden. Und natürlich das Zusammenspiel mit Thunderbird sollte einwandfrei funktionieren. Das stelle ich mir alles sehr kompliziert vor. Noch ist das nicht aktuell für mich, wurde aber schon als Wunsch für die Zukunft geäußert.
Wenn Du direkt eine Mail per Base erstellen willst, ist das vorliegende Makro nicht das, was Du suchst. Das Makro öffnet bei einem Klick auf die Mailadresse direkt Deinen Thunderbird und setzt die Adresse dort als Adressaten ein. Genauso kannst Du das Makro nutzen, um mit Firefox und einer Webadresse ins Netz zu gehen.
Was Du suchst, das ist etwas, das neben der Adresse an viele andere Adressen geht. Und das muss speziell auf Mails zugeschnitten sein. Hier hilft dann der folgende Weg:

Code: Alles auswählen

SUB Mail_Aufruf
	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 oShell AS OBJECT
	DIM stFeld1 AS STRING
	DIM stFeld2 AS STRING
	DIM stFeld3 AS STRING
	DIM stFeld4 AS STRING
	oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	REM Lage des Feldes in dem entsprechenden Formular aufsuchen
	oForm=oDrawpage.Forms.getByName("Formular")
	oFeld1=oForm.getByName("E_Mail_Adresse")
	oFeld2=oForm.getByName("E_Mail_Betreff")
	oFeld3=oForm.getByName("E_Mail_Inhalt")
	stFeld1=oFeld1.Text
	IF stFeld1 = "" THEN
		msgbox "Keine Mailadresse vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
		EXIT SUB
	END IF
	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
	stFeld2=Mid(ConvertToUrl(oFeld2.Text),9)
	stFeld3=Mid(ConvertToUrl(oFeld3.Text),9)
	REM Start des Files mit der entsprechenden URL-Verbindung
	oShell = createUnoService("com.sun.star.system.SystemShellExecute")
	oShell.execute("mailto:"+stFeld1+"?subject="+stFeld2+"&body="+stFeld3,,0)
END SUB
Du siehst zu Beginn, was Du alles an den Mailaufruf anhängen kannst. Etwas problematisch bei einem Rundbrief ist natürlich die Geschichte mit den vielen Mailadressen, die dann an alle möglichen Leute gehen. Am besten machst Du also eine Feld in Dein Formular, in dem durch Abfrage nur Deine Mailadresse liegt und alle anderen kommen, durch Komma getrennt, in ein Feld, das als "bcc" eingelesen wird.

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

Gundo
Beiträge: 53
Registriert: So 1. Jul 2012, 10:23

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von Gundo » Do 9. Aug 2012, 10:31

Hallo Robert,

Danke für die Info. Ich hoffe das die Serienmailfunktion in nächster Zeit nicht eingebaut werden muß. Mir ist das doch etwas zu tricky.

Gruß Gundo

Meile
Beiträge: 6
Registriert: Mo 7. Apr 2014, 14:08

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von Meile » Mo 7. Apr 2014, 14:18

Hallo Gemeinde,
ich arbeite an einer Mitgliederverwaltung und stehe nun vor diesem Problem.
Eine Email an einzelne Mitglieder kann ich mit Hilfe der hier bereits aufgezeigten Wege verschicken, nun würde ich gerne einen Button einbauen, der meine Emailsoftware öffnet und alle vorhandenen Emailadressen einfügt.
Dazu müsste ich im Grunde ja nur die Spalte auslesen, in denen die Emailadressen der Mitglieder hinterlegt sind und diese dann bei

Code: Alles auswählen

oShell.execute("mailto:"+stFeld1+"?subject="++"&body="+,,0)
hinter "mailto:" statt stFeld1 einfügen.
Nur kann ich suchen wie ich will, ich finde keine Möglichkeit, sämtliche Emailadressen auszulesen. Hilft hier eine besondere Formulierung von findColumn? Oder gehe ich das mit einer Schleife an?
Hat jemand eine Idee und kann mir Helfen?

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

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

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

Hallo Meile,

die verschiedenen Adressen kannst Du am besten per SQL direkt auslesen. Mit der aktuellen Spalte erwischt Du nur den Datensatz, der gerade im Formular angezeigt wird. Das ist dann so etwas wie

Code: Alles auswählen

If NOT (oDatenquelle.isConnected()) Then
oDatenquelle.connect()
End If
oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement()
stSql = "SELECT ""Mailadresse"" FROM ""Name""
oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql)
stFeld1 = ""
WHILE oAbfrageergebnis.next
stMail = oAbfrageergebnis.getString(1) + "," ' Der normale Trenner von mailto ist ein Komma. Es soll auch Programme geben, die an dieser Stelle nur mit einem Semikolon funktionieren - bitte vorher testen.
stFeld1 = stFeld1 + stMail
WEND
Allerdings würde ich folgenden Fehler nicht machen, den alle mir bekannten Behörden machen: Sämtliche Empfänger ins CC oder gar noch als direkten ersten Mailempfänger aufschreiben. Die eigenen Mailadresse als Empfänger und alle anderen Adressaten nach bcc schreiben ist da wohl angebrachter.

Edit1: Ich habe den Code geändert, da der Trenner zwischen den Mails in der Regel ein Komma sein muss, kein Semikolon. Siehe dazu den nachfolgenden Beitrag.

Gruß

Robert
Zuletzt geändert von RobertG am Mi 9. Apr 2014, 19:40, insgesamt 1-mal geändert.
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

Meile
Beiträge: 6
Registriert: Mo 7. Apr 2014, 14:08

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von Meile » Mi 9. Apr 2014, 11:24

Hallo Robert,
vielen Dank für die Hilfe, das funktioniert jetzt ohne Probleme. Musste nochmal etwas tüfteln, da zu Beginn immer nur eine Adresse im Emailprogramm auftauchte, nachdem ich aber darauf gekommen bin, das Semikolon durch ein Komma zu ersetzen, klappt das jetzt prima. Habe die Mitglieder auch bcc gesetzt. Fantastisch.
Nochmals vielen Dank!

Freundliche Grüße
Meile

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

Re: Schaltfläche in Formular für Mail und für Homepage (gelö

Beitrag von RobertG » Mi 9. Apr 2014, 19:37

Hallo Meile,

gut dass es mit dem Komma klappt. Ich hatte das nicht so auf dem Schirm. Soll aber Mailprogramme geben, die auf ein Komma nicht richtig reagieren. ich habe gerade noch im Netz von einer der Outlook-Versionen gelesen, die das nicht standardkonforme Semikolon haben will.
Wichtig ist ja, dass es erst einmal in Deinem Bereich klappt. Ich werde jetzt noch meinen Code aus dem vorhergehenden Beitrag ändern - falls jemand darüber stolpert und nicht den ganzen Thread liest ...

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


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