Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Textfeld füllen nach Auswahl von 2 Kobinationsfeldern

Begonnen von Senate1987, März 20, 2018, 15:37:10

⏪ vorheriges - nächstes ⏩

Senate1987

Hallo
Ich habe ein Formular mit unter anderem 2 Kombinationsfeldern welche aus der Tabelle tblVonZu Namen aussuchen sollen welche Absender und Empfänger sein sollen.
Darin befinden sich insgesamt 46 Einträge.
In einer 2. Tabelle (tblAdressen) befinden sich nun die selben 46 Einträge (In zwei Feldern kommutativ also Von und Zu) mit dem Emailadressen die zu diesem Weg gehören.
Nun will ich diese in einem Textfeld ausgeben lassen und habe es da mit DLookUp versucht, hat aber nicht im geringsten geklappt.
Weiss da vielleicht einer Rat?

Jonny

Hallo,
wieso du zwei Tabellen hast kann ich nicht nachvollziehen. Wenn in der Tabelle tblVonZu das gleiche steht wie in der Tabelle tblAdressen kann etwas nicht in Ordnung sein.

Gruß
Johann

Beaker s.a.

Vielleicht zeigst du uns deinen gescheiterten Versuch?

edit: und nach #1 zeigst du am Besten auch gleich ein Bild des Beziehungsfensters.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Senate1987

Beziehungsfenster gibt es nicht

Die zweite Tabelle dient nur dazu die Emailadressen raus zu suchen. Aufbau als Beispiel





ID123456
VonAAABBC
NachBCDCDD
Mailali@lu.debli@lu.decli@lu.dedli@lu.deeli@lu.defli@lu.de


Jonny

Ist etwas merkwürdig was du willst. Keine Beziehung geht eigentlich nicht und warum die doppelte Pflege der Tabellen?
Aber wenn du nur die Mail-Adresse sehen willst dann mach doch das Kombifeld auf die Tabelle tblAdressen. Das Kombifeld hat dann zwei Spalten. Einmal den Primärkey (ausgeblendet) und die Spalte Mail-Adresse.
Gruß Johann

Senate1987

ZitatAber wenn du nur die Mail-Adresse sehen willst dann mach doch das Kombifeld auf die Tabelle tblAdressen. Das Kombifeld hat dann zwei Spalten. Einmal den Primärkey (ausgeblendet) und die Spalte Mail-Adresse.
Nicht ganz, ich will die Emailadresse(n) anzeigen lassen die zu der ausgewählten Kombination aus Sender und Empfänger passt

Jonny

Also wenn ich es richtig verstehe dann wird im ersten Kombifeld eine Adresse ausgewählt (Sender) und im zweiten Kombifeld ebenfalls eine Adresse ausgewählt (Empfänger).
Welche Tabelle ist eigentlich die Datenquelle für das Formular?
Was die beiden Tabellen sollen verstehe ich trotzdem nicht.
Gruß Johann

Senate1987

Ah ja ok habe mich da etwas falsch ausgedrückt, also Sender und Empfänger die man hier auswählt sind nicht diejenigen die Emails bekommen sollen. Es ist mehr als Start und Ziel des Pakets zu sehen. In der zweiten Tabelle stehen dann die Emailadressen der Orte die sich auf dem Weg des Pakets befinden. Deswegen auch die 2 Tabellen.

MzKlMu

Hallo,
ist die 2.Tabelle wirklich als Matrix aufgebaut, also die IDs in Spalten ?
Wenn ja, wäre das für eine Datenbank ungeeignet.
Und Von und Nach besteht ja bestimmt nicht aus einem Buchstaben, was dann auch wieder eine Tabelle erforderlich machen würde.

Und eine Datenbank ohne Beziehungen darf es eigentlich nicht geben.
Beziehungen sind das A+O einer DB.
Gruß Klaus

Senate1987

Nein natürlich ist die 2. Tabelle nicht so aufgebaut sondern umgekehrt.
Und ich hab nur A B und C geschrieben um jetzt nicht lange mit Ortschaftsnamen zu kommen. In der 1 Tabelle stehen 46 Ortschaften und in der 2. stehen 1035 Beziehungen zwischen der 1. und 2. Ortschaft die man im Kombinationsfeld aussucht mit den dazugehörigen Emailempfängern.

Jonny

Das bedeutet also das die Beziehung zwischen den Ortsnamen ist.
Dann zeige doch mal dein DLookUp. Wahrscheinlich ist die Syntax falsch.
Gruß Johann

Senate1987

Private Sub cboxNach_AfterUpdate()
    Dim Sender As String
    Dim Empfaenger As String
       
    Sender = Me.cboxVon
    Empfaenger = Me.cboxNach
   
    Me.Text13.ControlSource = DLookup([Adressen], [tblAdressen], "Sender" & "Empfaenger" = [tblAdressen].[Von] & [tblAdressen].[Nach])
End Sub

Dies führt zum Fehler im angehängten Screenshot

MzKlMu

#12
Hallo,
ZitatNein natürlich ist die 2. Tabelle nicht so aufgebaut sondern umgekehrt.
Und warum stellst Du es dann falsch dar und verleitest damit zu überflüssigen Antworten ? Solche Sachen verstehe ich nicht. Der der Dir hilft sitzt doch nicht vor Deinem Monitor, der glaubt erst mal alles was Du schreibst.
Stehen in der 2.Tabelle die Ortsnamen im Klartext, oder stehen da Schlüsselzahlen.
Kalrtext wäre natürlich auch nicht so gut.
Und die Emailadressen stehen in der 2.Tabelle ? Also 1035 Emailadressen ?
Und wo wird dann die gefundene Kombination (bzw. die Emailadresse) gespeichert ?

Wenn das richtig aufgebaut ist, braucht es zum Auffinden der Kombination auch kein DLookup. Und natürlich wären hier auch Beziehungen notwendig.
Die Beziehungen sollten wie im Bild aussehen.
Mit dem 1.Kombi sucht man den 1.Ort, das 2.Kombi macht man vom 1. abhängig und sucht den 2. Ort. Der Primärschlüssel dieser Kombination ergibt eindeutig die EMailadresse und nur dieser PS wird in der Zeiltabelle gespeichert, nicht die Emailadresse selbst. Für das ganze Vorhaben braucht es kein DLookup. Und kaum VBA.
Du hast das von vorn herein falsch angefangen.

Beziehungen siehe Bild.



Gruß Klaus

Senate1987

Die stehen in Klartext in der 2. Tabelle, war halt so einfacher rauszufinden welche Adressen ich eingeben muss in die Tabelle.
Genau, in der 2. Tabelle sind die Felder ID, Von, Nach, Adressen.
Die gefundene Kombination soll eigentlich nirgends gespeichert werden sondern danach nur als Empfänger im do.cmd SendObject verwendet werden, ich will die Daten nur anzeigen lassen damit die Anwender auf den ersten Blick sehen ob die Empfänger für die Email so stimmen.

ZitatWenn das richtig aufgebaut ist, braucht es zum Auffinden der Kombination auch kein DLookup. Und natürlich wären hier auch Beziehungen notwendig
Wie würdest du es denn aufbauen?

MzKlMu

Hallo,
ZitatWie würdest du es denn aufbauen?
Ich habe oben noch ein Bild ergänzt und auch noch weiteren Text geschrieben, bitte noch mal lesen.

ZitatDie gefundene Kombination soll eigentlich nirgends gespeichert werden sondern danach nur als Empfänger im do.cmd SendObject verwendet werden,
Aber das was Du mit SendObject sendest muss doch gespeichert sei, oder nicht ?
Und dort gehört ein Feld rein für die Emailadresse, als Fremdschlüssel.
In meinen Beziehungsbild oben wäre dann die Datentabelle das was mit SendObject gesendet wird.
Gruß Klaus