Oktober 22, 2021, 20:47:29

Neuigkeiten:

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


OpenArgs im Kombinationsfeld

Begonnen von J.D, September 19, 2021, 10:32:21

⏪ vorheriges - nächstes ⏩

J.D

Hi Forum,

ich öffne ein Formular mit OpenArgs.
Der wert KundenId wird mir auch wie erwartet im entsprechenden Feld angezeigt.

Nun habe ich dort auch ein Kombinationsfeld welche mir die einträge für die KundenId anzeigen soll.
WHERE (((Kunden.KundenID)=[Me].[KundenID]) AND...

Leider muss ich beim öffnen des Forms immer die KundenID manuell eingeben.
Hierfür gibt es doch sicherlich eine lösung!?

MFG J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

DF6GL

Hallo,



prinzipiell; ohne Errorhandling und ohne weitere Kenntnis der Hintergründe:


Sub Form_Load()

   Me!Kombifeld1.Rowsource = "Select ...... WHERE Kunden.KundenID=" & Me.Openargs & " AND...  "

End Sub

J.D

Zitat von: DF6GL am September 19, 2021, 11:43:41Hallo,

prinzipiell; ohne Errorhandling und ohne weitere Kenntnis der Hintergründe:


Sub Form_Load()

   Me!Kombifeld1.Rowsource = "Select ...... WHERE Kunden.KundenID=" & Me.Openargs & " AND...  "

End Sub

erst mal danke für die Antwort.
Also so wie ich das sehe entferne ich die abfrage aus dem Kombiefeld und trage es dann beim laden im Form ein...

Private Sub Form_Load()

If Not IsNull(Me.OpenArgs) Then Me!KundenID = Me.OpenArgs

...
   
      Me!aktiveadresse.RowSource = "SELECT Kunden.KundenID, Kunden.KundenNR, Kunden.KundenNachname, Kunden.KundenAnrede, Kunden.KundenName, Kunden.KundenPrivat, Kunden.Kunden_TrägerID, Kunden.Kunden_Strasse, Kunden.Kunden_PLZ, Kunden.Kunden_Ort, Kunden.Kunden_Tel, Kunden.Kunden_Mob, Kunden.Kunden_Stundensatz, Kunden.Kunden_Kilometer, Kunden.Kunden_Abrechnung_von, Kunden.Kunden_Bemerkung, Kunden.UStFrei, KundenAdressen.ID, KundenAdressen.KundenID, KundenAdressen.KName, KundenAdressen.KNachname, KundenAdressen.KStrasse, KundenAdressen.KPlz, KundenAdressen.KOrt, KundenAdressen.KAktuelle_Adresse"
FROM Kunden LEFT JOIN KundenAdressen ON Kunden.KundenID = KundenAdressen.KundenID
WHERE (((Kunden.KundenID=" & Me.Openargs & " ) AND ((KundenAdressen.KAktuelle_Adresse)=True));"
End Sub

Aber ich bekomme die Abfrage im Form nicht hin das es nicht mehr ROT schrift ist und das es funktioniert..
Kannst du mir da bitte nochmals behilflich sein?

mfg J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

ebs17

ZitatLeider muss ich beim öffnen des Forms immer die KundenID manuell eingeben.
Man darf davon ausgehen, dass die Maßnahmen in den diskutierten Ereignisprozeduren zu spät für die ersten Datenherkunftszuweisung erfolgen. Also sollte die Start-Datenherkunft ohne Parameter auskommen:
WHERE 1 = 0So hat man ein leeres Recordset, und alles funktioniert.

Durch Auswerten von OpenArgs und Neusetzung der Datenherkunft bekommst Du dann das, was Du sehen willst, das anfängliche leere Recordset wird man nicht wahrnehmen.

If Not IsNull(Me.OpenArgs) Then ...Diese Prüfung ist auf jeden Fall gut und wäre bei mir obligatorisch, weil man da das Formular auch ohne OpenArgs z.B. in einer weiteren Verwendung oder beim Testen fehlerfrei öffnen kann.

OpenArgs sind schon beim Form_Open, dem ersten Ereignis, verfügbar. Ein verändertes Verhalten könnte man testen.
Mit freundlichem Glück Auf!

Eberhard

Maxel

Es sollte bei der Weiterverarbeitung beachtet werden, dass OpenArgs einen String-Ausdruck zurückgibt.
Gruß
Maxel

DF6GL

September 19, 2021, 12:47:43 #5 Letzte Bearbeitung: September 19, 2021, 12:58:49 von DF6GL
Hallo,

Knackpunkt hier dürte die falsche Syntax sein...

Zudem ist zu fragen, warum für ein Kombifeld(!)  eine dermaßen lange Selectliste benötigt wird und die KundenID einem (gebundenen ??) Textfeld zugewiesen wird.



Das Anführungszeichen hinter KundenAdressen.KAktuelle_Adresse   ist falsch. 

ZitatMe!aktiveadresse.RowSource = "SELECT Kunden.KundenID, Kunden.KundenNR, Kunden.KundenNachname, Kunden.KundenAnrede, Kunden.KundenName, Kunden.KundenPrivat, Kunden.Kunden_TrägerID, Kunden.Kunden_Strasse, Kunden.Kunden_PLZ, Kunden.Kunden_Ort, Kunden.Kunden_Tel, Kunden.Kunden_Mob, Kunden.Kunden_Stundensatz, Kunden.Kunden_Kilometer, Kunden.Kunden_Abrechnung_von, Kunden.Kunden_Bemerkung, Kunden.UStFrei, KundenAdressen.ID, KundenAdressen.KundenID, KundenAdressen.KName, KundenAdressen.KNachname, KundenAdressen.KStrasse, KundenAdressen.KPlz, KundenAdressen.KOrt, KundenAdressen.KAktuelle_Adresse
FROM Kunden LEFT JOIN KundenAdressen ON Kunden.KundenID = KundenAdressen.KundenID
WHERE (((Kunden.KundenID=" & Me.Openargs & " ) AND ((KundenAdressen.KAktuelle_Adresse)=True));"



oder hier auch:
ZitatMe!aktiveadresse.RowSource = "SELECT Kunden.KundenID, Kunden.KundenNR, Kunden.KundenNachname, Kunden.KundenAnrede, Kunden.KundenName, Kunden.KundenPrivat, Kunden.Kunden_TrägerID, Kunden.Kunden_Strasse, Kunden.Kunden_PLZ, Kunden.Kunden_Ort, Kunden.Kunden_Tel, Kunden.Kunden_Mob, Kunden.Kunden_Stundensatz, Kunden.Kunden_Kilometer, Kunden.Kunden_Abrechnung_von, Kunden.Kunden_Bemerkung, Kunden.UStFrei, KundenAdressen.ID, KundenAdressen.KundenID, KundenAdressen.KName, KundenAdressen.KNachname, KundenAdressen.KStrasse, KundenAdressen.KPlz, KundenAdressen.KOrt, KundenAdressen.KAktuelle_Adresse
FROM Kunden LEFT JOIN KundenAdressen ON Kunden.KundenID = KundenAdressen.KundenID
WHERE (((Kunden.KundenID=" & Me!KundenID & " ) AND ((KundenAdressen.KAktuelle_Adresse)=True));"

und optimiert (code-formatiert  bis auf Reduktion der Selectliste):
ZitatMe!aktiveadresse.RowSource = "SELECT Kunden.KundenID, KundenNR, KundenNachname, KundenAnrede, KundenName,  " & _
" KundenPrivat, Kunden_TrägerID, Kunden_Strasse, Kunden_PLZ, Kunden_Ort, Kunden_Tel, " & _
" Kunden_Mob, Kunden_Stundensatz, Kunden_Kilometer, Kunden_Abrechnung_von, Kunden_Bemerkung,  " & _
" UStFrei, ID, KundenAdressen.KundenID, KName, KNachname, KStrasse,  " & _
" KPlz, KOrt, KAktuelle_Adresse  " & _
" FROM Kunden LEFT JOIN KundenAdressen ON Kunden.KundenID = KundenAdressen.KundenID  " & _
" WHERE Kunden.KundenID=" & Me!KundenID & "  AND KAktuelle_Adresse=True"

J.D

Danke euch allen, der letzte Code von Franz hat funktioniert...

Sonntag gerettet...

MFG einen schönen Sonntag euch!
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2