online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon mike_the_nike vom 25.02.2020, 13:10 Options

Access: vom einzelnen Datensatz abhängige kombifeldeinträge

Will in einem Formular alle modelle (z.B Jackenmodelle) mit verschiedenen Eigenschaften anzeigen lassen.
Das klappt.
aber wie kann ich darin ein Kombifeld (z.B. Farbe) haben, das dem User nur die jeweils (vom Modell abhängigen) möglichen Farben anzeigt?


Antwort schreiben

Antwort 1 von lleopard vom 26.02.2020, 13:03 Options

Hallo Mike,

das ist doch ganz einfach...

& eigentlich nur die Frage wie du es darstellen willst!

zB kannst du doch wiederum ein Kombifeld anlegen. Beschreibung Farbe zB.

Erstmal stellst du die Eigenschaft sichtbar auf False.

Dann, wenn der User/Client ein Model ausgesucht hat, prüfst du ob es zu diesem Model unterschiedliche Einträge für die Farbe gibt. Das setzt voraus, daß es zu jedem Model einen Eintrag gibt (also pro Model und Farbe eine Zeile in der Quelltabelle)

Dein Suchstring sähe dann so aus:

Kombifeld Model: "Jacke Velours von xy"

Nun schaust du nach wieviele Modelle in deiner Tabelle stehen.

dim ssq as String
dim Suchstring as String

Suchstring = Kombifeld.Value

ssql = "Select * FROM [Quelle] WHERE Model ='" & Suchstring & "'"

dim dbs as dao.Database
dim rs as dao.Recordset
dim cc as long, Ergebnis as string

Ergebnis = ""
set dbs = Currentdb
set rs = dbs.OpenRecordset (ssql)
rs.movelast
cc = rs.RecordCount
if cc = 0 Then Exit Sub 'Keine Einträge also raus
Farbe.Visible = true 'Wenn es also Einträge gibt, Farbkombifeld einblenden

'So, und nun gehen wir die Datensätze alle durch:
do While rs.eof = false
Ergebnis = Ergebnis & rs!Farbe & ";"
rs.movenext
loop
'Wenn die schleife beendet ist, übergeben wir die Farbeinträge an das Kombifeld Farbe:
Farbe.Rowsource = Ergebnis
'Und beenden alle geöffneten Verweise:
set dbs = Nothing
rs.Close
Set rs = Nothing

Und das hinterlegst du als Ereignis nach Aktualisierung bei dem Kombifeld Model.

Gruß leo

Antwort 2 von lleopard vom 26.02.2020, 13:04 Options

dim ssq as String

war falsch,... das l vergessen.

also:

dim ssql as String

dann sollte es passen! :-)

Antwort 3 von lleopard vom 26.02.2020, 13:06 Options

und nach

rs.movelast

cc = rs.Recordcount

mußt du noch hinzufügen, bevor es in die Schleife geht:

rs.movefirst

Sonst findet er nix,....

Lauter Fehler... mann o mann

Antwort 4 von lleopard vom 26.02.2020, 13:07 Options

möglicherweise löst rs.movelast bei 0 Einträgen auch einen Fehler aus...

Du kannst auch gleich nach

set rs...

schreiben:

if rs.bof then exit sub

Das sollte das Problem beheben.

...

tsts

Am besten schreibst du aber unter Sub ...
On Error Resume Next

Das hebelt diese Art Fehler aus.

Ähnliche Themen

Automatische Datumeingabe in Access
schluri  17.01.2007 - 119 Hits - 1 Antwort

Access Suchfeld erstellen
Access_Hilflose  24.03.2007 - 767 Hits -

Automatisch aktualisieren
Mrfivejunior  29.07.2007 - 112 Hits - 10 Antworten

datum in access
morpheus__85  05.09.2007 - 105 Hits - 24 Antworten

Abfangen eines nicht markierten Datensatzes im Listenfeld
Jack1109  21.11.2007 - 122 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026