Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: ---> Neu: Office 2010 Forum <-
Mehrere Update abfragen in einem
zurück: Palettenzettel weiter: Tabellen bei Laden der Access-DB autom. importieren Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
BlueLu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. März 2010, 00:06
Rufname:

Mehrere Update abfragen in einem - Mehrere Update abfragen in einem

Nach oben
       Version: Office 2007

Einen schönen Samstag Abend allerseits!

Möchte gerne einen Newsletter mit einer persönlichen Anrede aus meiner Datenbank verwirklichen.
Hab dazu von jeder Person das Geschlecht(also 'M' oder 'W').

Zudem hab ich jetzt auch noch 3 Spalten Anrede, Anrede-DE, Anrede-EN erstellt, die entsprechend geupdated werden sollte.
Eine zusätzliche Schwierigkeit ist, dass auch mehrere Sprachen vorhanden sind. Diese hole ich mir ganz simpel aus der Spalte Nation ('D', 'A', 'CH', 'NL', 'I', ...)

Hab mit Innerjoins, mehreren UPDATES probiert, in der SUFU nix passendes gefunden, aber mein Ansatz wäre so in etwa:
Code:
//Abfrage 1:
UPDATE cmf1
SET    fanrede-DE = 'Sehr geehrter Herr'
WHERE  fsex = 'M'
OR     fnat = 'D'
OR     fnat = 'A'

//Abfrage 2:
UPDATE cmf1
SET    fanrede-DE = 'Sehr geehrte Frau'
WHERE  fsex = 'W'
OR     fnat = 'D'
OR     fnat = 'A'

//Abfrage 3:
UPDATE cmf1
SET    fanrede-EN = 'Dear Mr'
WHERE  fsex = 'M'
AND    fnat <> 'D'
OR     fnat <> 'A'

//Abfrage 4:
UPDATE cmf1
SET    fanrede-EN = 'Dear Mrs'
WHERE  fsex = 'W'
AND    fnat <> 'D'
OR     fnat <> 'A'

//Abfrage 5: (Die wichtigste von allen)
Irgendwie alle zusammen, sodass Geschlecht und Sprache in der richtigen Form sind.
Am Ende sollte dann also bei fanrede-DE die deutsche Anrede mit dem richtigen Geschlecht bzw. bei fanrede-EN die englische Anrede mit dem richtigen Geschlecht stehen.
Die fanrede sollte die komplett richtige Anrede beinhalten (Sprache und Geschlecht).

Dies hat den Grund, da es ein sehr alter Datenstamm ist, mit oftmals schlampiger Eingabe und ich so anfangs die deutsche und englische Version im gleichen Mail schicken möchte.

Zusammengefasst:
Code:
SELECT fname, fvname, fsex, fanrede, fanrede-DE, franrede-EN
FROM   cmf1
WHERE  UPDATE1
OR     UPDATE2
OR     UPDATE3
OR     UPDATE4
AND    UPDATE5
ist das irgendwie möglich?

danke schon im Voraus!
Marmeladenglas
komme zurecht


Verfasst am:
14. März 2010, 08:34
Rufname:


AW: Mehrere Update abfragen in einem - AW: Mehrere Update abfragen in einem

Nach oben
       Version: Office 2007

Hi,
so ganz kann ich dir nicht folgen.
Wozu gibt es drei Felder der Anrede ?
Dachte anhand des Geschlechts und der Nation, soll der Person eine Anredeform zugeordnet werden ?
Wenn ich von deinen Abfragen ausgehe, bliebe je eins der 3 Felder leer. Bzw.
in welchem Feld würde die Anrede eines Italieners geupdatet ??
Im Prinzip ist es nicht zwangsläufig die Anreden in deiner TAbelle zu speichern.
Über entsprechende Select-Abfrage könnte hier die Zuordnung erfolgen.
BlueLu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. März 2010, 18:43
Rufname:

AW: Mehrere Update abfragen in einem - AW: Mehrere Update abfragen in einem

Nach oben
       Version: Office 2007

Hi Marmeladenglas.

Also die drei Felder der Anrede haben nur Momentan Bedeutung, da ich die ersten Mails beidsprachig rausschicken möchte, sodass die User dann selber Ihre Daten updaten.

Italienisch ist <> D oder A und somit Englisch.

Wie kann ich dann die 3 Abfragen kombinieren? Oder zumindest, dass ich eine richtige Anrede herbekomm?
ebs17
Learning by Doing - Bastler


Verfasst am:
14. März 2010, 19:20
Rufname:
Wohnort: Reinsberg

AW: Mehrere Update abfragen in einem - AW: Mehrere Update abfragen in einem

Nach oben
       Version: Office 2007

Statt sich in zusätzlichen, aber eigentlich unnützen Feldern zu verlieren, ist es sicher übersichtlich, sich in einer eigendefinierten Funktion die passende Anrede aus vorhandenen Daten zu berechnen:
Code:
Public Function ErmittleAnrede(ByVal Nation As String, ByVal Geschlecht As String) As String
   Dim sRes As String
   Select Case Nation
      Case "D", "A"
         If Geschlecht = "M" Then
            sRes = "Sehr geehrter Herr"
         Else
            sRes = "Sehr geehrte Frau"
         End If
      Case "E"
         ' ...
      Case "I"
         ' ...
   End Select
   ErmittleAnrede = sRes
End Function

Die einfache Erweiterungsfähigkeit ist erkennbar.
Statt der Hardcodierung könnte man sich die Anreden auch aus einer Tabelle holen und damit eine Datenpflege durch einen Nutzer ermöglichen.
Die Abfrage dann:
Code:
SELECT T.fname, T.fvname, T.fsex, T.fnat, ErmittleAnrede(T.fnat, T.fsex) AS fanrede
FROM   cmf1 AS T

_________________
Mit freundlichem Glück Auf!

Eberhard
BlueLu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. März 2010, 22:24
Rufname:


AW: Mehrere Update abfragen in einem - AW: Mehrere Update abfragen in einem

Nach oben
       Version: Office 2007

Vielen Dank ebs!

Hat super geklappt!! Razz
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen




Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Update Textfeld in Formular 20 dwarf 423 21. Feb 2010, 18:31
dwarf Update Textfeld in Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Problem mit Abfragen 18 Blade01 423 16. Feb 2010, 18:07
Blade01 Problem mit Abfragen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragen: Ausgabe wie im Entwurf 20 Kerstin83 519 09. Jan 2010, 12:59
Marmeladenglas Abfragen: Ausgabe wie im Entwurf
Keine neuen Beiträge Access Tabellen & Abfragen: Problem mit INNER JOIN und UPDATE 8 Merrick 211 09. Sep 2009, 12:38
Merrick Problem mit INNER JOIN und UPDATE
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl(*)-Abfragen zusammenfügen 3 Janblablub 108 18. Apr 2009, 11:54
Willi Wipp Anzahl(*)-Abfragen zusammenfügen
Keine neuen Beiträge Access Formulare: In Formular Ergebnisse aus anderen Abfragen einbeziehen 0 gaststefan 104 04. Feb 2009, 14:45
gaststefan In Formular Ergebnisse aus anderen Abfragen einbeziehen
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus zwei Abfragen zusammen zählen 11 SunShine080 413 12. Sep 2008, 22:19
Willi Wipp Werte aus zwei Abfragen zusammen zählen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage aus 4 Abfragen zusammenfügen 5 Toni Makkaroni 2289 07. Apr 2008, 14:41
Teabag Abfrage aus 4 Abfragen zusammenfügen
Keine neuen Beiträge Access Berichte: Anzahl Datensätze mehrerer Abfragen anzeigen 4 hikx76 1438 15. Feb 2008, 15:57
hikx76 Anzahl Datensätze mehrerer Abfragen anzeigen
Keine neuen Beiträge Access Programmierung / VBA: MySQL (Update)Abfrage bringt laufzeitfehler 3219 -.- 4 Saiya 1019 17. Dez 2007, 20:34
Engel07 MySQL (Update)Abfrage bringt laufzeitfehler 3219 -.-
Keine neuen Beiträge Access Hilfe: Seit Update auf SP3 spinnt Access 03 (-> Listenfeld!) 4 toxicman 2251 17. Dez 2007, 00:30
toxicman Seit Update auf SP3 spinnt Access 03 (-> Listenfeld!)
Keine neuen Beiträge Access Programmierung / VBA: Mit Button nächsten Datensatz aus RowSource abfragen 1 Matt1981 208 27. Sep 2007, 10:28
Matt1981 Mit Button nächsten Datensatz aus RowSource abfragen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum