|
Mehrere Update abfragen in einem
|
| Autor |
Nachricht |
BlueLu
Im Profil kannst Du frei den Rang ändern
Verfasst am: 14. März 2010, 00:06 Rufname:
|
|
| 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:
|
| |
| 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:
|
|
| 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
|
|
| 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:
|
| |
| Version: Office 2007 |
|
Vielen Dank ebs!
Hat super geklappt!!
|
|
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 |
 |
Access Programmierung / VBA: Update Textfeld in Formular |
20 |
dwarf |
423 |
21. Feb 2010, 18:31 dwarf  |
 |
Access Tabellen & Abfragen: Problem mit Abfragen |
18 |
Blade01 |
423 |
16. Feb 2010, 18:07 Blade01  |
 |
Access Tabellen & Abfragen: Abfragen: Ausgabe wie im Entwurf |
20 |
Kerstin83 |
519 |
09. Jan 2010, 12:59 Marmeladenglas  |
 |
Access Tabellen & Abfragen: Problem mit INNER JOIN und UPDATE |
8 |
Merrick |
211 |
09. Sep 2009, 12:38 Merrick  |
 |
Access Tabellen & Abfragen: Anzahl(*)-Abfragen zusammenfügen |
3 |
Janblablub |
108 |
18. Apr 2009, 11:54 Willi Wipp  |
 |
Access Formulare: In Formular Ergebnisse aus anderen Abfragen einbeziehen |
0 |
gaststefan |
104 |
04. Feb 2009, 14:45 gaststefan  |
 |
Access Tabellen & Abfragen: Werte aus zwei Abfragen zusammen zählen |
11 |
SunShine080 |
413 |
12. Sep 2008, 22:19 Willi Wipp  |
 |
Access Tabellen & Abfragen: Abfrage aus 4 Abfragen zusammenfügen |
5 |
Toni Makkaroni |
2289 |
07. Apr 2008, 14:41 Teabag  |
 |
Access Berichte: Anzahl Datensätze mehrerer Abfragen anzeigen |
4 |
hikx76 |
1438 |
15. Feb 2008, 15:57 hikx76  |
 |
Access Programmierung / VBA: MySQL (Update)Abfrage bringt laufzeitfehler 3219 -.- |
4 |
Saiya |
1019 |
17. Dez 2007, 20:34 Engel07  |
 |
Access Hilfe: Seit Update auf SP3 spinnt Access 03 (-> Listenfeld!) |
4 |
toxicman |
2251 |
17. Dez 2007, 00:30 toxicman  |
 |
Access Programmierung / VBA: Mit Button nächsten Datensatz aus RowSource abfragen |
1 |
Matt1981 |
208 |
27. Sep 2007, 10:28 Matt1981  |
| |
|