Hallo an Alle!
Stehe wieder mal auf dem Schlauch und komme nicht weiter.
Zu meinem Problem:
Tabelle:'tblStempelungen' (n), StempelungsID (Primärschlüssel) , StempelungsgrundID (Fremdschlüssel)
Tabelle:'tblStempelungsgruende' (1), StempelungsgrundID (Primärschlüssel) --> 1,Einsatz; 2,Uebung; 3,Stelle
Nun soll im Formular 'frmStempelungen' ein Stempelungsgrund aus einer Optionsgruppe ausgewählt werden!
Opt = Me!StempelungsgrundID
Soweit so gut!
??? ??? ??? Wie schaffe ich es, dass mit VBA nicht die ID (1, 2, 3) der Stempelung, sondern der Text (Einsatz, Uebung, Stelle), der in 'tblStempelungsgruende' enthalten ist, ausgelesen werden kann?
Dieser Text wird dann als Teil eines Textes per Email versendet
(funktioniert bereits, nur eben statt der ID-Nummer soll eben der dazugehörige Text stehen,
damit der E-Mail-Adressat auch versteht worum es geht!)
Danke schon mal im Voraus
Pergus
Hallo,
am einfachsten erstellst Du eine Abfrage mit beiden Tabellen (und der Beziehung). Dann hast Du auch das Feld mit dem Text.
Hallo MzKlMu,
ich danke Dir für Deinen wertvollen Tipp! :)
Habe eine kürzere Lösung von database, die auch zur Lösung des Problems geführt hat! ;)
Zur Ansicht seine Antwort: 8)
http://www.access-o-mania.de/forum/index.php?topic=14030.0 (http://www.access-o-mania.de/forum/index.php?topic=14030.0)
Gruß Pergus
Hallo,
ZitatHabe eine kürzere Lösung von database,
ohne seine Lösung schmälern zu wollen, aber meine Lösung wäre noch kürzer, nämlich Länge 0.
Es wird überhaupt kein VBA gebraucht. Mit einer Abfrage geht das immer und zu jeder Zeit automatisch, ohne eine einzige Zeile VBA.
Hallo MzKlMu,
danke für Dein Interesse an mein Problem! Hast natürlich absolut Recht ;)
Bitte entschuldige, habe mich falsch ausgedrückt.
Ich meinte nicht die Länge der VBA-Code, sondern eigentlich die Anzahl an Abfragen, die ich versuche zu minimieren und
(mit Hilfe von Access-Profis 8) , wie Du einer bist!) so weit wie möglich mit VBA zu lösen!
Grüsse aus Südtirol
Pergus
Hallo,
Zitatdie ich versuche zu minimieren und .....so weit wie möglich mit VBA zu lösen!
Damit tust Du Dir aber keinen Gefallen, es ist nicht gut, etwas was man mit SQL (Abfragen) machen kann mit VBA zu erledigen. Datenbanksprache ist SQL und nicht VBA. Mit VBA programmiert man die Oberfläche. Datenbearbeiteung mit SQL.
Gerade DLookup() ist eine der großen Performancebremsen.
Da liegen Welten dazwischen. Je nach Anzahl der Datensätze natürlich.
Und dann solltest Du auch die Flexibilität nicht vergessen. Mit Dlookup() muss jedes Feld bearbeitet werden. Mit der Abfrage hast Du gar nichts mehr zu tun.
Verzichte daher niemals auf SQL wenn es damit geht.
Nur noch als zusätzliche Hinweise.
Hallo MzKlMu,
ich danke Dir für die Ratschläge, die ich in Zukunft beherzigen werde!!! ;)
Gruß aus Südtirol
Pergus
Hallo, und guten Morgen,
ZitatDieser Text wird dann als Teil eines Textes per Email versendet
In der Annahme, dass der Versand der Mail ebenfalls per VBA passieren wird ist VBA ohnehin schon im Spiel.
Grundsätzlich stimmt natürlich die Argumentation von MzKlMu in Bezug auf SQL bzw. Abfragen.
Im gegenständlichen Fall käme man aber auch bei Verwendung einer Abfrage nicht umhin VBA einzusetzen - eben wegen der Mail-Geschichte. ::)
Hallo Peter,
ich wollte keinesfalls die DLookup Lösung schlecht machen. Im vorliegenden Fall dürfte auch Tempo eine eher untergeordnete Rolle spielen.
Und mit der Email Sache hast Du auch recht.
Am meisten hat mich diese Aussage von Ihm gestört:
Zitatsondern eigentlich die Anzahl an Abfragen, die ich versuche zu minimieren und so weit wie möglich mit VBA zu lösen!
Es ist ganz sicher eine falsche Lösung statt Abfragen VBA zu verwenden, bzw. Abfragen zu Gunsten von VBA minimieren zu wollen.
Ziel in einer Datenbank muss es sein, soweit möglich Abfragen (SQL) zu verwenden und nicht VBA.
Das wollte ich eigentlich rüberbringen.
Hallo,
@MzKlMu
Zitatich wollte keinesfalls die DLookup Lösung schlecht machen
Alles klar Klaus, ich hätte das auch nicht so interpretiert ... ;) ;D
Du hast schon recht, bei umfangreicheren Tabellen sollte man sich diese Art der Werteermittlung auf jeden Fall mehr als einmal überlegen.
Im gegenständlichen Fall beinhaltet die Tabelle 3 DS daher ist auch - wie du schon angemerkt hast - die Geschwindigkeit nicht relevant.
In Bezug auf die Verwendung von SQL bin ich dennoch ganz und gar auf deiner Linie!
LG