Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: nimora am August 23, 2015, 01:00:46

Titel: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 23, 2015, 01:00:46
Hallo,

ich stehe irgendwie gerade auf dem Schlauch, vielleicht liegt es aber auch an der Uhrzeit.

ich habe eine "Kundentabelle" mit "name, vorname, texttyp und anrede". anrede ist verknüpft mit der zweiten Tabelle "Anrede" und enthält "Herr, Frau, Mr., Mrs.". Eine weiter Tabelle namens "Texte" liegt vor und als Inhalt liegt da nur ein Text-Typ vor. Also TypA und TpyB. hiermit ist das Feld aus Kundentabelle "texttyp" verkmüpft.

ich möchte in der Kundentabelle nun neben dem Namen die Anrede und den Texttyp auswählen können. Aus dieser Auswahl soll nun aus einer Tabelle "Texte" der richtige Text ausgewählt werden und zwar definiert durch Herr/Frau für deutsche Texte und durch Mr./Mrs. für englische Text und noch durch den Text-Typ. es gibt also zwei texte auf englisch und zwei auf deutsch und je nach auswahl, soll der richtige text ausgewählt werden.

und hier ist der Punkt, an dem ich gerade nicht weiterkomme. Wie verknüpfe ich die Tabelle "Texte" mit den anderen, damit sich das, vielleicht mittels qry erzeugen ließe.

Für ein paar Denkanstöße wäre ich wirklich dankbar :)

Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: DF6GL am August 23, 2015, 09:12:55
Hallo,

kannst Du mal ein konkretes Beispiel zeigen?

Ich befürchte eine falsche Normalisierung...  Wenn anhand der Anrede ein bestimmter Text gewählt werden soll, so ist das Feld "Texttyp" in der Kundentabelle falsch platziert.   Allenfalls kann eine Feld "Kundensprache" in Tabelle "Kunden" dazu dienen, die Anreden passend einzuschränken und in Folge einer dann ausgewählten Anrede der entspr. Text "geholt" werden.

PS:  "Name" als Name für ein Feld sollte tunlichst vermieden werden....  --->  Keine reservierten Wörter bei der Benamsung von eigenerstellten Objekten benutzen.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am August 23, 2015, 09:50:21
Hallo,
ergänzend:
Für die Sprache legt man eine extra Tabelle mit einer Zahl als Primärschlüssel. Und diese Zahl wird als Fremdschlüssel in der Anredetabelle passen zur Anrede gespeichert. Der Texttyp in der Kundentabelle entfällt ersatzlos. Die Wahl der richtigen Anrede bestimmt automatisch auch die passende Sprache.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 23, 2015, 15:15:43
danke euch beiden.

DF6GL, das mit der Normalisierung kann gut sein. Finde aber gedanklich nicht den Ansatz, dass die Normalisierung stimmt.

@MzKlMu, ich habe Anrede und Sprache mal kombiniert, da ich der Meinung bin, dass man da mit einer Tabelle beides bedienen kann und eine weitere für den Sprachcode aus meiner Sicht zu viel wäre. Ich mag mich irren.
Aber wie du sagts, dass der Texttyp im Kunden entfällt, passt nicht ganz. die Anredesprache regelt auch die Textsprache, aber es gibt pro Sprache auch verschiedene Texte, die ich im Kunden schon auswählen können muss.

Anbei mal die beispiel-DB.

wie gesagt, ich müchte im kunden durch die Auswahl der Anrede nicht nur die Anrede selbst, sondern auch gleich die Sprache der folgenden Texte definieren. und es gibt verschiedene Texte, die ich ebenfalls in der kundenansicht auswählen können möchte. ausgehend von der in der anrede versteckten sprache, soll aus dem gewählten Text noch die richtige textsprache gewählt werden.

und das Gedankenexperiment bzw. die Kombi aus beidem bekomme ich gerade nicht hin.

Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: DF6GL am August 23, 2015, 17:12:05
Hallo,


Zitatdas mit der Normalisierung kann gut sein. Finde aber gedanklich nicht den Ansatz, dass die Normalisierung stimmt.

dann beschäftige Dich mal mit u. st. Links 1 und 1a...



Zitatda ich der Meinung bin, dass man da mit einer Tabelle beides bedienen kann und eine weitere für den Sprachcode aus meiner Sicht zu viel wäre. Ich mag mich irren.

Du irrst.  Ganz einfach.   Siehe konkrete Beschreibung von Klaus.


Zitatund das Gedankenexperiment bzw. die Kombi aus beidem bekomme ich gerade nicht hin

Wird auch so nicht funktionieren...  siehe Normalisierungsregeln..
Wenn Du diese (immer wieder)  ignorierst, eierst Du permanent im Kreise.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 23, 2015, 17:43:22
hast du in meine beispiel-db reingesehen? euren lehrauftrag in allen ehren, aber gib mir bitte einen hinweis, an welcher stelle es dort hapert bzw. der Normalisierung widerspricht, damit ich einen Anhaltspunkt habe.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am August 23, 2015, 19:14:35
Hallo,
Zitatpasst nicht ganz. die Anredesprache regelt auch die Textsprache, aber es gibt pro Sprache auch verschiedene Texte,
doch, das passt. 100%, sobald die Anrede ausgewählt ist liegt über den Fremdschlüssel zur Sprache automatisch auch die Sprache eindeutig fest. In einer Abfrage mit den 3 Tabelle (Daten, Anrede und Sprache) hast Du im Datensatz auch die Sprache. Ein zusätzliches Feld ist da völlig überflüssig.
Eine Sprachtabelle ist nicht zwingend erforderlich aber zu empfehlen, aber die Sprache muss mindestens als Feld in die Tabelle mit der Anrede. Du brauchst nur ein einziges Kombi zur Auswahl der Anrede. Damit ist alles erschlagen.

Ich würde es Dir einbauen, aber ich habe keine Möglichkeit ACCDBs zu öffnen, da ich nur Access2003 (MDB) habe.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 23, 2015, 19:37:53
Danke dir.

ist nicht schlimm, dass du es nicht bauen kannst. Ich will es ja auch verstehen und das geht am besten, wenn man es selber macht. Ich habe ja nur um die Denkanstöße gebeten, die du mir jetzt gegeben hast. Ich habe es zwar noch nicht ganz verstanden, aber ich werden mir noch mal die Normalisierungsregeln ansehen, auch wenn ich dies schon gemacht habe und gemeint habe, sie angewendet zu haben.

Ich muss mir die Kommentare noch mal in ruhe ansehen und versuchen umzusetzen. Wenn es nur die spräche wäre und es nur einen Text in DE und einen in EN gäbe, dann wäre alles klar. Ich stocke da, wo neben der Sprache noch auf unterschiedliche Texte der jeweiligen Sprache zugegriffen werden muss. :(
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am August 23, 2015, 20:22:52
Hallo,
ZitatIch stocke da, wo neben der Sprache noch auf unterschiedliche Texte der jeweiligen Sprache zugegriffen werden muss.
Wo stehen denn diese Texte, in einer extra Tabelle ?
Wenn ja, wie ist denn da die Sprache hinterlegt ?

Kannst Du mal ein Bild der Beziehungen hier posten ?
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 23, 2015, 20:58:09
bisher habe ich es nur so angelegt, wie es in der beziehungstabelle zu sehen ist. ich überlege, ob es wie im zweiten bild zu sehen machen. dass ich letztlich doch manuell auswähle, welcher text und damit zusammen gleich die sprache (TexttypA-C und denn ob DE oder EN)

aber eigentlich hätte ich schon lieber dynamisch. Theoretisch ausgedrücke möchte ich eine abfrage, die pfüft, welche Anrede ausgewählt ist und welcher texttyp und sich dann die anrede entsprechend der sprache und des geschlechts (sehr geehrter Herr, sehr geehrte Dame, Dear Mr., Dear Mrs.) wählt und dann prüft, welcher texttyp ist ausgewählt und welche Sprache, um dann den passenden Text in passender sprache auszuwählen. ich habe versuche dazu eine abfrage zu erzeugen, konnte aber schon die bedingungen nicht richtig setzen. wäre doch nciht eine sql-Anweisung in der abfrage hilfreich?
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am August 23, 2015, 23:55:35
Hallo,
alleine das Wort Texttyp ist schon ziemlich verwirrend. So wie das jetzt ist kann das nicht stimmen. Das erkennst Du schon daran, dass Du eine englische Anrede und deutsche Texte verwenden könntest. Und das darf nicht sein. Da ist in jedem Falle eine Tabelle für die Sprache notwendig. Jetzt habe ich aber den Sinn der Texte (Texttypen) noch nicht verstanden.
So wie ich das verstehe, hast Du einfach Texte in verschiedenen Sprachen.
Ist das richtig ? Und von den Texten, werden da alle benötigt oder nur eine Auswahl wie bei der Anrede ?
Oder erläutere das mal besser.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am August 24, 2015, 22:00:57
also gemeint ist es wie folgt:

Kunden können zwei verschiedene Arten von antworten auf ihre anfrage bekommen. Sagen wir ein text für normale kunden, ein text für vip-kunden. bei jeden kunden möchte ich entscheiden, was er ist, "normal" oder "vip". jweils der normal, als auch der vip-text liegen in deutsch und in englisch vor. wenn ich also einen kunden als vip definiere, muss noch entschieden werden, in welcher sprache er seinen text bekommen. da von der sprache auch die Anrede im jeweiligen text abhängt, wollte ich das verbinden. über die anrede definiert sich nicht nur die anrede sondern auch die sprache und daraus ergibt sich, welchen text der kunden bekommen.

war das so verständlich?
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am August 24, 2015, 23:42:57
Hallo,
die Zusammenhänge sind mir immer noch nicht klar. Ein Kunde hat eine Anrede in der entsprechenden Sprache.
Aber wie ist das mit den Texten, hat ein Kunde nur einen Text (entweder VIP oder normal) in der entsprechenden Sprache ?

Wie sehen denn solche Texte typischerweise aus (in deutsch) für VIP und normal ?

Anbei mal ein Vorschlag für Tabellen und Beziehungen.
Sobald eine Anrede gewählt ist liegt automatisch auch die Zahl (Schlüsselzahl) für die Sprache fest. Damit kann man dann die Texte der Texttabelle filtern.

Siehe Bild.

Ob das passt hängt auch vor Deiner neuen Antwort auf meine Fragen ab.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 03, 2015, 15:27:31
Hallo MzKIMu,

danke für die Antwort und sorry für die späte Antwort, es war viel los in der letzten woche.

ein Kunden hat eine anrede - das ist richtig
diese unterscheidet sich nur in der sprache.

jedem kunden kann auch nur ein text zugeordnet werden - vip oder normal,
aber auch hier mit der Unterscheidung der Sprache.

die texte unterscheiden sich in den angebotenen konditionen. vip´s bekommen bessere.

in deiner grafik kann ich dem kunden eine anrede id verpassen. wenn man das mit "Frau, Herr, Mrs. und Mr." füllt, ergibt sich draus die sprache. aber nicht die identifikation des SpracheID_F. es sei denn, ich definiere in der tabelle anrede vorher für Frau und Herr die entsprechende SprachID_F. soweit klar und aus der sprache definiert sich auch die textsprache. nur aber nicht, welchen text der kunde bekommen soll. als Beispie TextVIP oder TextNormal. Genau das ist mein gedanklicher Knackpunkt. ich muss irgendwie zwei bedingungen definieren (sprache und text-typ), wobei der text-typ zusätzlich von der sprache abhängt.

Ich weiss auch nicht, wie ich es anders erklären soll. nur so wie schon gesagt. kunde wird in datenbank abgelegt, über die anrede definiert sich die sprache. zusätzlich kann für jeden kunden ein text-typ definiert werden.

problem, wie kann ich abfragen/definieren, dass die anrede in einer nachricht sich aus dem sprachcode ergibt und der text-typ und die sprache des text-typs ebenfalls korrekt gewählt wird.

Kunde1, Mr., TextVIP
Kunde 2, Frau, TextVIP
Kunde 3, Mrs., TextNormal
Kunde 4, Herr, TextNormal

Schreiben an Kunde 1:

Dear Mr., english VIPText

Schreiben an Kunde 2:

Sehr geehrte Frau, deutscher VIPText

Schreiben Kunde 3:

Dear Mrs., english NormalText

Schrebien Kunde 4:

Sehr geehrter Herr, deutscher NormalText

Ist das so klar? :(
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am September 03, 2015, 17:06:37
Hallo,
mein Datenmodell passt so. Sobald die Anrede in der entsprechenden Sprache festgelegt ist, hast Du automatisch auch den entsprechenden Text festgelegt.
Zitataber nicht die identifikation des SpracheID_F.
Aber natürlich liegt die fest. Du wählst doch eine bestimmte Anrede und damit liegt auch die SpracheID_F eindeutig fest. In einem Kombi kannst Du dann die Texte zur Auswahl anbieten mit einem Kriterium das auf die 2.Spalte des Kombis zur Auswahl der Anrede verweist. Und das ist die zur Anrede passende Sprache.
Das funktioniert genau passend zu Deinen Wünschen, jede Wette.
Ich baue Dir das nachher mal zusammen.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 03, 2015, 20:53:18
das wäre spitze
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 09, 2015, 15:26:58
habe jetzt dein beziehungsdiagramm nachgebaut, funktioniert alles, bis auf die auswahl der Texte. Ich kann über die Verknüpfung zwar in den texten die sprache wählen, aber wie kann ich ohne verknüpfung in der tabelle kunden den text auswählen? Ich kann zwar ein Verknüpfungsfeld in "Kunden" mit Bezug auf "Texte" anlegen, aber hier bekomme ich dann nur eine liste aller Texte. Das soll so eben nicht sein. Ich möchte in kunde definieren können Herr oder Mr. (ergibt anrede  und sprache) und ich möchte definieren können, ist es ein VIp-Kunde oder ein normaler. dann will ich per button ne mail schicken. der inhalt der mail definiert sich über die sprache/die anrede und den kundenstatus, sodass sich der Inhalt der Mail daraus generiert.

und das ist die ganze zeit der punkt, an dem ich nicht weiterkomme. oder meintest du das irgend wie so?

im anhang die db und ein Foto des Diagramms, wie es mir vorstelle, nur dass dort die korrekte beziehung zu den texten fehlt. der text definiert sich ja aus der sprache und aus kundenTyp. die Anrede hingegen definiert sich aus anrede.

und das ist es, was ich mit dem Titel des Threads meine. der Text entsteht aus zwei bedingungen, kundenTyp und Sprache.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am September 09, 2015, 18:30:37
Hallo,
ich habe keine Möglichkeit Accdb's anzusehem. Ich habe nur Access2003 (MDB).

Was ist denn jetzt der Kundentyp, ist das VIP und Normal ?

Wenn ja, so sollten so die Tabellen und Beziehungen anders aufgebaut sein.
Ich wollte das ja zusammenbauen, habe es dann aber vergessen, sorry. Habe es jetzt mal nachgeholt. Anbei mein Vorschlag. Schaue Dir auch die Tabelle mit den Anreden an, da ist eine weitere Spalte zur Erzeugung der Briefanrede eingebaut. Du kannst so in der Abfrage auch die Anrede für die Mail erstellen. Wenn Du im Formular mal den Status änderst VIP/Normal ändern sich auch automatisch die entsprechende Briefanrede.

Zitat von: nimorader Text entsteht aus zwei bedingungen
Nein, der Text entsteht aus einer Bedingung, der Sprache.

DB anbei (MDB).
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MaggieMay am September 09, 2015, 19:57:26
Hallo,

ich verstehe nicht, wieso die Sprache und der Kundentyp (VIP/normal) nicht Teil der Kundentabelle ist.
Das wäre doch die einfachste Lösung. Oder willst du tagesabhängig wählen können, in welcher Sprache du die Kunden anschreibst?!  ???
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am September 09, 2015, 20:20:04
Hallo,
Zitat von: MaggieMayich verstehe nicht, wieso die Sprache und der Kundentyp (VIP/normal) nicht Teil der Kundentabelle ist.
Dann bräuchte man aber in der Kundentabelle 3 Kombis:

1. Auswahl der Sprache
2. Auswahl der Anrede, abhängig von Sprache
3. Auswahl des Typs, abhängig von Sprache

Also 2 abhängige Kombis.

Bei meinem Vorschlag definiert sich die Sprache über die Anrede.
Das abhängige Kombi für den Typ hat die Sprache der Anrede als Kriterium. Ergibt ein abhängiges Kombi.

Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MaggieMay am September 09, 2015, 21:18:31
@Klaus:
Nein, das sehe ich anders, in der Kundentabelle braucht's halt nur die Sprache und den Typ, alles andere ergibt sich daraus.
ZitatBei meinem Vorschlag definiert sich die Sprache über die Anrede.
Umgekehrt macht es für mich eher Sinn.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 09, 2015, 21:19:41
Stimmt, du konntest die db ja nicht öffnen. Habe es jetzt anhand deines Modells und einer weiteren Tabelle Texte nun so hinbekommen, dass es genau so läuft wie ich es will. im Kunden definiere, wie auch bei dir anrede/sprache und den KundenTyp (VIP, Normal), was über die verknüpfung bewirkt wird. in einer abfrage soll mir dann pro person die anrede und der passende text, je nach sprache und typ ausgeben. anbei die Tabellen für dich und die db für andere, die vielleicht auch mal das problem haben und ein Beispiel brauchen.

Ich danke dir herzlich, dass du mit mir standhaft geblieben bist ;) habe wieder viel gelernt, nicht nur das hier, sondern auch viel drum herum. besten Dank also!
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 09, 2015, 21:23:16
:) macht mich nicht wuschig.

ich neige eher zu Klaus darstellung. da anrede und sprache bei jedem kunden eingestellt werden muss, ist es für mich mittels anrede einfacher, da muss ich nur eine sache einstellen. wenn ich die anrede auf Herr stelle, sprache dann aber separat auf englisch, dann passt das schon wieder nicht, ganz davon ab, dass es für einen beobachter/nutzer komisch aussieht. so steht von anfang an, Herr oder Mr. da. ist für mich eindeutiger.

beim Kundentyp ginge es schon eher, da es perspektivisch aber noch mehr als nur diese beiden werden, ist eine auslagerung in eine extra tabelle doch wieder besser, oder
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MaggieMay am September 09, 2015, 21:53:28
Ich bleibe dabei, die Sprache gehört zum Kunden, es sei denn...
Zitat von: MaggieMay am September 09, 2015, 19:57:26Oder willst du tagesabhängig wählen können, in welcher Sprache du die Kunden anschreibst?!
Die Antwort darauf wurde mWn noch nicht gegeben.

PS:
Nach meiner Theorie werden natürlich noch ein paar Zwischentabellen benötigt.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MzKlMu am September 09, 2015, 23:17:05
Hallo,
@MaggieMay
wie kommst Du auf tageweise ?
Und zu was noch ein paar Zwischentabellen ?

Es wird die Anrede bestimmt und damit liegt automatisch auch die Sprache fest. Das ist doch nichts anderes wie wenn ich die Sprache separat festlegen würde, auch da könnte ich doch ständig die Sprache wechseln, auch tageweise.
Außerdem benötigst Du mit separater Sprache ein extra Kombi, also insgesamt 3 und davon 2 abhängig.

Was gefällt Dir an meinem Vorschlag nicht ?

Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MaggieMay am September 09, 2015, 23:43:32
Sorry, aber ich sehe das völlig anders - vielleicht auch falsch, weil ich nicht sämtliche bisher zu diesem Thema geposteten Beiträge gelesen habe.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: nimora am September 10, 2015, 19:49:21
richtig, nur so hat man doch 3 attribute zu vergeben. mit der kombi anrede und sprache zusammen plus texttyp spart man sich doch eine, oder nicht?

bei dir muss ich entscheiden: sprache, geschlecht, texttyp.
bei Klaus: anrede, texttyp.

ergebnis bei beiden: text je typ und sprache mit korrekter anrede.
Titel: Re: Abfrage über zwei Bedingungen
Beitrag von: MaggieMay am September 10, 2015, 22:58:01
Texttyp heißt "VIP" oder "Standard"? Wie kommt denn da die Sprache des Textes mit hinein?