![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Ich habe drei Tabellen (Felder in Klammern):
- Hauptkategorie (HauptkategorienNr) - Unterkategorie (HauptkategorienNr, UnterkategorienNr) - Produkt (ProduktNr, HauptkategorienNr, UnterkategorienNr) Im (zur Tabelle „Produkt“ erstellten) Formular „Produkt“ sollen nach der Eingabe der HauptkategorienNr nur solche UnterkategorienNr eingegeben werden, die in der Tabelle „Unterkategorie“ der eingegebenen HauptkategorienNr zugeordnet worden sind. Kann ich das mit Beziehungen auf Tabellenebene erreichen oder muss ich im Formular „Produkt“ für das Feld „UnterkategorienNr“ ein eigenes Auswahlformular programmieren? |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Mit Beziehungen wirst du das nicht hinbekommen.
Ich würde nen VBA Code schreiben, der bei der Eingabe/Auswahl der Hauptkategorie das Feld zur Unterkategorieauswahl aktualisiert, sodass nur mehr die richtigen Unterkategorien ausgewählt werden können. mfg Thomas |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Danke T.dot für die Antwort.
Wenn es interessiert, ich habe unter http://www.office-loesung.de/ftopic6700_0_0_asc.php ein Beispiel für abhängige Kombinationsfelder gefunden. |
![]() |
![]() |
![]() |
#4 |
Jr. Member
![]() Registriert seit: 27.01.2006
Beiträge: 22
|
![]() Geht auch ganz ohne VBA. Einfach ein Kombinationsfeld für die Unterkategorie verwenden, "Nur Listeneinträge" auf "Ja" stellen und als Datensatzherkunft "SELECT * FROM Unterkategorie WHERE HauptkategorienNr = [Feldname]" verwenden, wobei "Feldname" der Name des Eingabefeldes ist. Habs jetzt nicht getestet, sollte aber so gehen und auch automatisch aktualisiert werden. Kein Coden nötig!
|
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Hallo rado!
Ich habe versucht, Deinen Tipp zu verwenden. Leider ohne Erfolg. Ich habe jetzt drei Tabellen BundeslandTab, BezirkTab und OrtTab angelegt. In der OrtTab kann man den Ort eingeben, dann das Bundesland und danach sollten im Feld Bezirk nur Bezirke des aktuellen Bundeslandes ausgewählt werden können. Es werden aber immer alle Bezirke (auch von anderen Bundesländern) angezeigt. Im Anhang findest Du die Tabelle OrtTab in der Entwurfsansicht, wobei zum Feld Bezirk die Eigenschaften angezeigt werden. Neben der Eigenschaft Datensatzherkunft steht folgendes Select-Statement: SELECT BezirkTab.Bezirk FROM BezirkTab WHERE BezirkTab.Bundesland=[Bundesland]; |
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Ich würds mal in einem Formular probieren, wär mir ned so sicher, dass man des beim Tabellenentwurf so festlegen kann (auch wenns theoretisch gehen müsste).
Wenn ich Zeit hab test ichs mal... mfg T. |
![]() |
![]() |
![]() |
#7 |
Jr. Member
![]() Registriert seit: 27.01.2006
Beiträge: 22
|
![]() Ich hab dabei auch an ein Formular gedacht. Wenn Du kein Formular verwenden willst, dann fällt mir momentan auch keine Lösung ein.
|
![]() |
![]() |
![]() |
#8 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Ich habe jetzt ein Formular erstellt und ein Kombinationsfeld mit entsprechendem Select-Statement hinzugefügt.
Leider wieder ohne Erfolg. |
![]() |
![]() |
![]() |
#9 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() So, ich hab mir das jetzt nur kurz angeshen, aber es macht den Anschein als würde nur beim ersten Formularaufruf (bzw. bei einem Refresh) der Select neu ausgeführt. Daher musst du es wohl so oder so über VBA lösen.
mfg Thomas |
![]() |
![]() |
![]() |
#10 |
Jr. Member
![]() Registriert seit: 27.01.2006
Beiträge: 22
|
![]() Eh klar, ich hatte ein Brett vorm Kopf. Natürlich müsste man den Refresh per VBA machen, aber dann kann man das ganze auch gleich in VBA lösen.
Es gibt aber noch eine andere Variante: Verwende einfach ein Unterformular. Das kannst Du über beliebig viele Felder mit dem Hauptformular verknüpfen und das wird automatisch refresht. Hätte mir eigentlich früher einfallen können... Ob ein Unterformular oder VBA-Code geschickter ist, muss man im Einzelfall entscheiden. Wenn man nur ein einziges abhängiges Feld hat, ist VBA meiner Meinung nach wahrscheinlich besser, da übersichtlicher. Aber wenn man mehrere Felder hat und die alle per VBA ändern bzw. aktualisieren müsste, dann macht ein Unterformular wahrscheinlich mehr Sinn. Man spart sich den Code und kann jedes Formular an die Datenquelle binden - hat dann also nicht mehrere Datenquellen in einem Formular. Das schafft in umfangreicheren Projekten auf jeden Fall Übersicht. CU rado |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|