Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Wert aus Formular-Feld an SQL-Statement übergeben

Begonnen von tomm85, September 26, 2020, 00:47:32

⏪ vorheriges - nächstes ⏩

tomm85

Hallo werte Access-Helfer,

ich möchte in einem Unterformular (neues Angebot anlegen) nur die Werte in einer DropSown-Box angezeigt bekommen, die zu diesem Hauptformular (Kontakte dieses Kunden) gehören; s. Anlage.

Soweit ich das jetzt herausgefunden habe, geht das - bspw. auch in der reinen Datenbank-Tabellen-Ansicht per Nachschlage-Assistent - nicht, da zum Zeitpunkt der Anlage zwar die KundeID in der Zeile steht, aber noch nicht wirklich in der Datenbank ist. So bin ich auf das Thema Input-Parameter bzw. Parameter gestoßen.

1.) Ich vermute, das ist der einzige Weg, richtig?
2). Ich hatte schon das hier gefunden (https://administrator.de/forum/access-vba-formularfelder-auslesen-kopieren-178054.html), aber das brachte mich nicht richtig weiter.
3.) Bin ich, was VBA angeht, leider ziemlich blank. Sofern die Lösung tatsächlich in VBA liegt, freue ich mich über den gesamten Code inkl. End-Sub usw.

Dankeschön :)

tomm85


DF6GL

Hallo,

mit nur einem Kombifeld geht das nicht (richtig).


Zunächst:   Ändere überall "Name" in z. B. "Kontaktname" und hänge "-f" an die Fremschlüsselfeldnamen an  (in Tabelle "Angebot" ---> "Angebot_KundenID_f", dito in "Kontakt"--> "Kontakt_KundenID_f").



Das vorhandene Kombi erhält als Datensatzherkunft:  Select KontaktID, KontaktName From Kontakt

Platziere ein zweites ungebundenes Kombi ("cmbAnsprechP") neben das erste und verkleinere die Breite solange, bis nur der Aufklapppfeil übrig bleibt.

Datensatzherkunft :  Select KontaktID, KontaktName From Kontakt Where Kontakt_KundenID_f = [Angebot_KundenID_f]

Spaltenbreiten: 0cm ; 4cm
Gebundene Spalte:  1
Spaltenanzahl: 2



 Als "Beim Hingehen"-Ereignisprozedur :


Sub cmbAnsprechP_Enter()
  Me!cmbAnsprechP.Requery
  Me!cmbAnsprechP.Dropdown
End Sub


Als "Nach Aktualisierung"-Ereignisprozedur:

Sub cmbAnsprechP_AfterUpdate()
  Me!AnsprechP = Me!cmbAnsprechP
End Su
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

tomm85

@DF6GL:

Danke für Deine Antwort. Ich habe soeben Punkt eins umgesetzt (s. Anlage) und mach mich jetzt an die nächsten Steps.

tomm85

Also, nochmal: Sehr toll beschrieben - riesen Dank!
Sie dürfen in diesem Board keine Dateianhänge sehen.


hmm, das DropDown bleibt noch leer.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Dem neuen / ungebundenem Kombinationsfeld habe ich den Namen "cmbAnsprechP" gegeben.
Den Select habe ich wie folgt angepasst:
SELECT KontaktID, Kontaktname FROM tblKontakt WHERE [tblKontakt.KundeID_f] = [tblAngebot.KundeID_f];
Die beiden Ereignis-Prozeduren habe ich eingefügt.
Sie dürfen in diesem Board keine Dateianhänge sehen.

@"altes Feld":
... und das original Kombinationsfeld muss ich vermutlich dann abschließend noch in ein Textfeld umwandeln, korrekt?

DF6GL

Hallo,

Zitatund das original Kombinationsfeld muss ich vermutlich dann abschließend noch in ein Textfeld umwandeln, korrekt?


nein...


Die Fremdschlüssel-Feldnamen hast Du noch nicht vernünftig umbenannt...


sollte ergeben:

... WHERE Kontakt_KundeID_f = [Angebot_KundeID_f];
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

tomm85

ah, okay, ich dachte Du meinst damit die TABELLE.FELDNAME ...
wird erledigt.

tomm85

ah, okay, ich dachte Du meinst damit die TABELLE.FELDNAME ...
wird erledigt.

...


Wow, das begeistert mich schon mal.

Drop-Down funktioniert, nur beim Klicken gibt noch den Debugger.
Sie dürfen in diesem Board keine Dateianhänge sehen.


Das original Feld heißt = AnsprechP
Das neue Feld = cmbAnsprechP

Beaker s.a.

Hallo Tom,
Das AfterUpdate brauchst du doch gar nicht, - binde das Kombi
an das Tabellenfeld (FK des A-Part.) und gut ist.
gruss ekkehard
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)

DF6GL

Hallo,

vermutlich heißt das "alte" Kombifeld nicht so...


@Ekkehard:  das alte war und bleibt gebunden, das neue darf nicht gebunden werden.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

tomm85

@DF6GL :

Einfach "Krass!! ...es funktioniert" ...ich wiederhole meine Faszination :-)
und in der Tat, das "alte Feld" hatte noch "_f" hinten dran ... hatte ich übersehen  ;D

Geht das auch noch mit einem weiteren UFo, allerdings in der Datenblatt-Ansicht?
Ich bastele das mal kurz...

tomm85

@Beaker s.a. : ja, okay, probiere ich auch gleich mal ... mal sehen, was das ergibt.

Zurück zur gleichen Funktion im UFo (s. Anlage): geht das oder geht das nicht, weil man mit den KombiBoxen da nicht so tricksen kann?

Sie dürfen in diesem Board keine Dateianhänge sehen.

Sie dürfen in diesem Board keine Dateianhänge sehen.

tomm85


MzKlMu

Hallo,
Du solltest Dich auf ein Forum beschränken. Gleichzeitig in verschiedenen Foren zu fragen wird nicht gern gesehen und verstößt auch gegen die Regeln in beiden Foren.
Gruß Klaus

tomm85

@MzKlMu : ja, verstanden :)

mir war nicht klar, welches besser / bekannter ist - ich denke diese Überlegung ist nachvollziehbar. Hier bin ich ja jetzt sehr glücklich.

und das Forum Office-Lösungen (sagte mir noch etwas von früher) scheint wohl gänzlich tot ... letzter Beitrag 2014 :-\