Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tomm85 am September 26, 2020, 00:47:32

Titel: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 00:47:32
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 :)
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 00:51:23
bzw. eigentlich so... (Anlage)
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: DF6GL am September 26, 2020, 10:18:35
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
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 12:03:03
@DF6GL:

Danke für Deine Antwort. Ich habe soeben Punkt eins umgesetzt (s. Anlage) und mach mich jetzt an die nächsten Steps.
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 12:25:39
Also, nochmal: Sehr toll beschrieben - riesen Dank!
2020-09-26 access02.PNG


hmm, das DropDown bleibt noch leer.
2020-09-26 access03.PNG

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.
2020-09-26 access04.PNG

@"altes Feld":
... und das original Kombinationsfeld muss ich vermutlich dann abschließend noch in ein Textfeld umwandeln, korrekt?
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: DF6GL am September 26, 2020, 12:44:35
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];
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 12:49:39
ah, okay, ich dachte Du meinst damit die TABELLE.FELDNAME ...
wird erledigt.
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 12:57:10
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.
2020-09-26 access05.PNG


Das original Feld heißt = AnsprechP
Das neue Feld = cmbAnsprechP
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: Beaker s.a. am September 26, 2020, 13:33:51
Hallo Tom,
Das AfterUpdate brauchst du doch gar nicht, - binde das Kombi
an das Tabellenfeld (FK des A-Part.) und gut ist.
gruss ekkehard
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: DF6GL am September 26, 2020, 13:34:13
Hallo,

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


@Ekkehard:  das alte war und bleibt gebunden, das neue darf nicht gebunden werden.
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 14:23:18
@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...
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 14:40:39
@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?

2020-09-26 access10.PNG

2020-09-26 access11.PNG
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 16:32:36
@Beaker s.a. : "FK des A.-Part" => was ist damit gemeint?
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: MzKlMu am September 26, 2020, 16:40:29
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.
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 17:04:03
@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 :-\
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: MzKlMu am September 26, 2020, 19:09:55
Hallo,
Zitatund das Forum Office-Lösungen (sagte mir noch etwas von früher) scheint wohl gänzlich tot .
Nein, ist es nicht. Da gibt es einen Nachfolger als provisorisches Forum (aber schon seit 2014) und wird es auch noch eine Weile geben.

http://www.office-loesung.de/p/viewforum.php?f=161
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 26, 2020, 19:25:36
@Forum: Ah, okay, ist mir auf der Startseite nicht aufgefallen

gut zu wissen - aber ich werde es da natürlich nicht nochmal posten  ;)

Danke für den Hinweis
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: Beaker s.a. am September 27, 2020, 12:30:26
Hallo Tom,
Zitatja, okay, probiere ich auch gleich mal ... mal sehen, was das ergibt.
Brauchst du nicht probieren, mein Hinweis war ja nicht richtig,
siehe #9
gruss ekkehard
Titel: Re: Wert aus Formular-Feld an SQL-Statement übergeben
Beitrag von: tomm85 am September 27, 2020, 12:35:42
 doch doch, Dein Hinweis unter #9 war ja richtig... ich - wie Du vermutet hattest - übersehen, einen der Namen richtig anzupassen.

Wollte das andere auch probieren, um zu schauen, was das so macht - zum einen, um mit der ganzen Materie besser vertraut zu werden, zum anderen um meine Formulierungen zu verschärfen für den Fall, dass es nicht das ergibt, was ich bezwecken wollte ... sprich, ich mich undeutlich ausgedrückt habe ;-)

In jedem Fall sind Deine Hilfe und Deine Hinweise genau das, was ich mir wünschte. Deshalb Daumen hoch für den Support!