Eintrag für mehrere Datensätze gleichzeitig anwenden

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von F3K Total »

Hallo,
das geht entweder per Makro oder per Extras/SQL ... mit dem entsprechenden SQL-Befehl.
Beispiel
  • Tabelle: Mailings
  • Spalte: Mailing erhalten (BOOLEAN)
  • Spalte: Datum (DATE)
SQL-Befehl

Code: Alles auswählen

Update "Mailings" set "Mailing erhalten" = true;
Update "Mailings" set "Datum" = CURRENT_DATE
oder z.B.

Code: Alles auswählen

Update "Mailings" set "Mailing erhalten" = true;
Update "Mailings" set "Datum" = '2013-11-08'
Man kann diese Befehle auch per Makro absetzen und natürlich, analog einer Abfrage, auch filtern, ein Beispiel

Code: Alles auswählen

Update "Mailings" set "Mailing erhalten" = true,  "Datum" = CURRENT_DATE where UPPER("Name") like UPPER('sch')||'%'
um alle Namen die mit sch Sch SCH SCh ... beginnen, zu erwischen.
Hier noch ein vergleichbares Makro:

Code: Alles auswählen

Sub S_Update_Mailings
    sName = inputbox("Bitte Anfangsbuchstaben eingeben","Update Mailings")
    oController = thisDatabaseDocument.CurrentController
    if not oController.isconnected then oController.connect
    oConnection = oController.ActiveConnection
    SQLStatement = oConnection.createStatement
    sSQL = "Update ""Mailings"" set ""Mailing erhalten"" = true,  ""Datum"" = CURRENT_DATE where UPPER(""Name"") like UPPER('"+sName+"')||'%'"
    SQLStatement.executeUpdate(sSQL)
    msgbox "Allen Namen die mit '"+sName+"' beginnen, erfolgreich aktualisiert"
End Sub
HTH R
gurkenhobel
Beiträge: 4
Registriert: Sa, 09.11.2013 13:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von gurkenhobel »

Hallo F3K Total,

danke dir! Das ist absolut klasse!! Ich hab jetzt mal noch ein bisschen weiter gesponnen...

Man stelle sich vor, es gäbe nicht nur ein Mailing, sondern mehrere, z.B. monatlich. Diese stehen in einer eigenen Tabelle "Mailings" und werden in der (eigenen) Tabelle (bzw. Formular) "Adressen" als Abfrage in einem Subformular angezeigt - allerdings nur diejenigen Mailings, die die entprechende Adresse tatsächlich empfangen hat.

Nach meiner "Logik" könnte das so funktionieren:
In der Tabelle Mailings müssten über ein Skript Einträge generiert werden, mit dem entsprechend verknüpften Schlüssel - d.h. in der Mailing-Tabelle muss die Spalte "Adress_ID" entalten sein. Erhalten 100 (von 500) Kontakte das Mailing, müssten in der Mailing-Tabelle 100 Datensätze generiert werden, jeweils mit der entsprechenden "Adress_ID" .

Könnte das so klappen, oder geht das auch einfacher?

Danke und viele Grüße
Dany
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von F3K Total »

Hi,
ich würde es etwa so machen (grober Plan):
  • Jede Adresse hat in der Adresstabelle ein bollean-Feld, was je nach Mailing/Gruppe des Kontaktes mit o.a. SQL oder Makro auf Ja/Nein gesetzt wird.
    D.H. der Kontakt, der ein "Ja" hat, ist fürs nächste Mailing vorgesehen.
  • Dann gibt es eine Tabelle sagen wir "MailingDefinintion" in der die Mailings definiert sind und je eine MailingID haben.
  • Wieder per SQL/Makro kannst Du dann allen, die in der Adresstabelle markiert sind, pro Mail-Aktion in der Tabelle Mailings eine Zeile mit KontaktID, MailingID und Datum eingetragen.
Und natürlich kannst Du die Mailings dann in einem Unterformular je Kontakt anzeigen lassen.
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von F3K Total »

Hallo,
habe nochmal drüber nachgedacht.
Ich glaube, das geplante Vorgehen ist nicht gut.
Mit einer Datenbank arbeitet man eigentlich anders.
z.B mit den Tabellen:
Adressen
Gruppen
Adressen_Gruppen
Maildefinition
Mails_Gruppen
  • Allen Personen (Adressen) werden in einer Tabelle Adressen_Gruppen ihre Gruppen zugeordnet, dabei kann eine Person in unterschiedlichen Gruppen sein, pro Gruppe aber nur einmal vorkommen.
  • In einer Tabelle Maildefinition wird pro Mail eine Zeile eingetragen
  • In einer Tabelle Mails_Gruppen werden die gerade eingetragenen Mails den Gruppen zugeordnet.
    Beispiel: Mail Thema "Urlaub in den Bergen, Wandern, Lesen, Erholung pur"
    Könnte z.B. für die Gruppen "Sportler" und "Leser" interessant sein, also wird diese Mail diesen beiden Gruppen zugeordnet.
  • Durch diese Konstellation kann man nun über verschiedene Abfragen
    • Alle Mails pro Person
    • Alle Personen pro Mail (und wenn man ihre EMailadressen in der DB hinterlegt hat, kann man die Mail per Serienbriefassistent verschicken)
    • Alle Personen pro Gruppe
    • Alle Gruppen pro Person usw.
    darstellen und z.B. zum versenden verwenden.
Anbei ein Beispiel.

Gruß R
Dateianhänge
Adressen_Mailings.odb
(156.45 KiB) 133-mal heruntergeladen
gurkenhobel
Beiträge: 4
Registriert: Sa, 09.11.2013 13:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von gurkenhobel »

Servus F3K Total,
zuallererst mal 1000 Dank dir und deiner Hilfsbereitschaft! Das ist ein Hammer!

Ich habe mir dein Beispiel natürlich angesehen und bin begeistert!

Eine kleine Schwäche hat deine Lösung, glaub ich... Nämlich wenn sich die Gruppenzugehörigkeit einer Adresse ändert. Wächst ein junger Mann aus "Jungen" raus und wird "Männer", dann fallen die Mailings, die an sein "Jungen"-Dasein verschickt wurden aus der Liste raus, oder? Von da betrachtet, war der erste Ansatz doch nicht so schlecht, einen direkten Bezug zwischen Adress-ID und Mailing_ID herzustellen. Zerbreche mir schon ne Weile den Kopf, wie man das vernünftig machen könnte

Eine ganz einfache (saublöde OT-?) Frage hab ich auch noch: Wie bekommst Du denn die Listenfelder in eine Tabelle rein?

Dank' Dir für deine tolle Hilfe und beste Grüße aus Nürnberg,
Dany
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von F3K Total »

Hi,
ja ich habe da auch so ein paar Schwächen entdeckt, bin mir ehrlich gesagt auch nicht mehr so sicher
Vielleicht gibt es jemanden im Forum, der Erfahrung mit solchen Datenbanken hat und uns einen Tipp für den besten Weg sagen kann?
Ich habe daran gedacht, zu jeder Gruppenzugehörigkeit ein Anfangs- und ggf. ein Enddatum auszuwerten.
gurkenhobel hat geschrieben:Wie bekommst Du denn die Listenfelder in eine Tabelle rein?
-> Entwurfsmodus, Rechtsklick auf Spaltenkopf im Tabellenkontrollfeld, ersetzen durch ...
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eintrag für mehrere Datensätze gleichzeitig anwenden

Beitrag von F3K Total »

Na,
jetzt ist mir was gelungen, die Views waren echt kein Pappenstiel.
Denke die Methode funzt!
Man kann jede Person zeitbezogen Gruppen zuordnen, jede Mail wiederum verschiedenen Gruppen, und angezeigt werden nur die zum Zeitpunkt des Maildatums aktiven Personen.

Gruß R
Dateianhänge
Adressen_Mailings.odb
(166.85 KiB) 129-mal heruntergeladen
Antworten