collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 81
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14419
  • stats Beiträge insgesamt: 71647
  • stats Themen insgesamt: 9667
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Kombinationsfeld abhängig von einem anderen Kombifeld  (Gelesen 466 mal)

Offline Maro68

  • Newbie
  • Beiträge: 12
Kombinationsfeld abhängig von einem anderen Kombifeld
« am: Juni 03, 2019, 17:46:53 »
Hallo zusammen,
ich baue gerade eine Verwaltung für unseren Kegelverein.
Dazu gibt es u.a. eine Tabelle
Mannschaften mit folgenden Feldern: MaId (=Primärschlüssel), Ma_Kürzel, Ma_Bezeichnung, Ma_Liga
Weiterhin eine Tabelle Mitglieder mit den Feldern:
Mi_ID (=Primärschlüssel), Mi_VName, Mi_NName, Mi_Geschlecht.
Die beiden Tabellen stehen in keinem direkten Zusammenhang.

Mein Formular für die Mannschaftsaufstellung besteht aus Hauptformular und Unterformular. Das HF enthält u.a. das Feld Ma_Kürzel, womit man erkennt ob es eine Herren oder Damenmannschaft ist.
Das UF enthält u.a. das Kombinationsfeld Mi_Nr mit dem ich mir die Mitglieder des Vereins auswählen kann.

Problem:
Ich möchte, dass
wenn im HF im Feld Ma_Kürzel ein H steht für Herrenmannschaft, mir dann auch nur männliche Mitglieder (Mi_Geschlecht = m) zur Auswahl im Kombifeld des UF angeboten werden.
Analog bei Ma_Kürzel = D für Damenmannschaft, mir dann auch nur weibliche Mitglieder (Mi_Geschlecht = m) zur Auswahl im Kombifeld des UF angeboten werden.

Ich komme nicht weiter, weder mit SQL-Anweisung noch mit VBA-Code.
Sollte eigentlich ganz einfach sein, wenn man weiß wie  ::)

Martin Rother
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23754
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #1 am: Juni 03, 2019, 21:26:55 »
Hallo,

Zitat
Die beiden Tabellen stehen in keinem direkten Zusammenhang.


das lässt schon mal die Alarmglocken läuten...


Der Tabellenaufbau ist m. E. unvollständig.  Es fehlt eine Zuordnungstabelle für die Mitglieder zu einer Mannschaft (tblManschaftMitglieder).

Diese Tabellen werden in (relationale) referenzielle Beziehung gesetzt.

Weiterhin wäre in tblMitglieder das Geschlecht mit "D" und "H" anstatt mit "w" und "m" gekennzeichnet sein.

Das Unterformular hat zukünftig als Datenherkunft die Tabelle tblManschaftMitglieder (MaMitID, MaMit_MitID_f ,   etc)  und wird über die entspr. Schlüsselfelder verknüpft.

Das Auswahlkombi im UFO erhält sodann als Datensatzherkunft:

Zitat
Select MitID, Mit_Nachname & ", " & Mit_Vorname From tblMitglieder Where Mit_Geschlecht = Parent!Ma_Kürzel order by Mit_Nachname
Steuerelementinhalt:  MaMit_MitID_f



Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #2 am: Juni 04, 2019, 15:26:11 »
Hallo Franz,

ich habe die Situation nochmal im beigefügten Dokument beschrieben mit Screenshots der vorhandenen Beziehungen und dem betroffenen Formular, sowie dem Aufbau der Zuordnungstabelle.

Die Where-Klausel funktioniert nicht so einfach wie vorgesehen.

Ich hoffe, es ist im Dokument verständlich erklärt, was ich meine.

Gruß
Martin
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23754
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #3 am: Juni 04, 2019, 19:22:21 »
Hallo,

nun, mir ist es nicht verständlich...  Die gezeigten Beziehungen sind nicht nachvollziehbar.



M. E. sollte es so aussehen:


Es gibt viele Mitglieder  (tblMitglieder)

Es gibt mehrere Mannschaften.  (tblMannschaften)

Jede Mannschaft hat bestimmte Mitglieder.  (tblMannschaftsmitglieder). Auswahl eines Mitglieds per Kombifeld.  Mit_Kürzel ist eine Bezeichnung für die Mannschaft und keine Geschlechtsdefinition.

Jedes Mannschaftsmitglied ist an mehreren Kämpfen beteiligt. (tblKämpfe)

Jeder MitgliederKampf hat ein  Ergebnis. Hierfür ist keine separate Tabelle erforderlich. Das Feld "Ergebnis" kommt in tblKämpfe zu liegen.



Beziehungen:
tblMannschaften   1:n  tblMannschaftsmitglieder  n:1  tblMitglieder

tblMannschaftsmitglieder   1:n  tblKämpfe 


Datensatzherkunft für das Mitglied-Auswahlkombi-Kombi (im UFO frmMannschaftsmitglieder, das im Hauptform frmMannschaften platziert und das an MaMit_MiID (neues Feld als Fremdschlüssel) gebunden ist:

Zitat
Select Mi_ID, Mi_NName, VName from tblMitglieder Where Mi_Geschlecht = Parent!MaMit_Geschlecht

Evtl. muss das Kombi separat bei geeignetem Ereignis aktualisiert (Requery) werden.

Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #4 am: Juni 05, 2019, 10:09:52 »
Hallo,

zur Verdeutlichung der Beziehungen:
Es gibt 4 Teams, 3 Herren und 1 Damenteam. Jedes Team spielt in einer eigenen Liga mit 10 Mannschaften hat also 18 Kämpfe (= Kä_KaNr der Tabelle Kämpfe). Die Spieltage der Mannschaften sind an unterschiedlichen Wochentagen. Jede Mannschaft besteht aus 4 Keglern.

Es gibt für die Herren keine festen Zuordnung der Mitglieder zu einer Mannschaft. Jeder Herr darf an einem Spieltag nur einmal eingesetzt werden. Allerdings kann er die gesamte Saison hindurch zwischen den 3 Mannschaften beliebig wechseln.

Bsp.:
Die KaNr der Tabelle Kämpfe entspricht dem entsprechenden Spieltag (KaNr 1 bedeutet Spieltag 1)
Es ist möglich dass Kegler A am 1. Spieltag in Mannschaft H1, am 2. Spieltag in Mannschaft H2, am 3. Spieltag wieder in H1 usw. eingesetzt wird.
Kegler A darf am 1. Spieltag aber dann nicht mehr in der H2 oder H3 eingesetzt werden.


Ich möchte, dass im Formular Aufstellung für einen Kampf der H1, H2 oder H3 (=Feld Ma_Kürzel der Tabelle Mannschaften) in der Mitgliederliste nur die männlichen Mitglieder (Feld Mi_Geschlecht der Tabelle Mitglieder) angezeigt werden.
Analog bei einem Damenkampf nur die Damen.

In der Tabelle Ergebnisse sind alle Ergebnisse von jedem Kegler in jedem seiner Kämpfe abgespeichert. Ein Datensatz pro Kampf und Mitglied.
Um auswerten zu können in welcher Mannschaft er gespielt hat, ist u.a. auch die Ma_ID als Feld mit aufgenommen.

 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #5 am: Juni 05, 2019, 13:13:27 »
Hallo Marco,
Zitat
Beziehungen:
tblMannschaften   1:n  tblMannschaftsmitglieder  n:1  tblMitglieder
Wenn du in diese Tabelle (mittlere) noch einen FK zum Spieltag hinzu
nimmst, sollten alle Wünsche zu erfüllen sein. Mit entsprechender
Indexierung kann ein Spieler an einem Spieltag autom. nur in
einer Mannschaft spielen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #6 am: Juni 05, 2019, 15:01:23 »
Hallo Ekkehard,
genauso ist die Tabelle Ergebnisse aufgebaut.
Es kann kein Spieler am gleichen Spieltag mehrmals aufgestellt werden - das passt alles schon.
Ich denke der Tabellenaufbau und Beziehungen sind soweit ok.

Ich hab „nur“ Probleme die Mitgliederliste entsprechend anzuzeigen, wie unten bzw im Word Dokument beschrieben (VBA bin ich schwach

Gruss Martin
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #7 am: Juni 05, 2019, 16:02:40 »
Hallo Martin,
Zitat
VBA bin ich schwach
Hier ist eher SQL gefragt.

Im Prinzip, - zeige alle Mitglieder deren Geschlecht = dem Geschlecht der Mannschaft ist.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #8 am: Juni 05, 2019, 19:15:59 »
Das Prinzip ist schon klar. Aber wie packe ich die Bedingung:
Wenn Ma_Kürzel (aus Tbl Mannschaft) = H1 or H2 or H3, dann zeige Mitglieder mit Mi_Geschlecht (aus TBL Mitglieder) = m
In eine SQL Anweisung?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23754
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #9 am: Juni 06, 2019, 13:35:08 »
Hallo,

wie schon gesagt, wobei die Namen anzupassen sind.

Und : Ma_Kürzel ist NICHT für eine Bedingung geeignet.


Zitat
Select Mi_ID, Mi_NName, VName from tblMitglieder Where Mi_Geschlecht = Parent!Ma_Geschlecht

Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #10 am: Juni 29, 2019, 11:29:07 »
Ich glaube ich habe mich undeutlich ausgedrückt.

Je nach Inhalt des Kombifeldes (Mannschaftstyp) im Hauptformular, soll sich die Datensatzherkunft (= Abfrage über die Tabelle Mitglieder) im Kombifeld des Unterformulars ändern.

Lösungsidee:
den sqlstring für die Mitgliederabfrage mit einer Select Case Bedingung anpassen, aber ich krieg es irgendwie nicht hin.
In Worten:
Wenn Herrenmannschaft, dann SQL-Abfrage nur männliche Mitglieder für Datensatzherkunft im Kombifeld des UF,
Wenn Damenmannschaft, dann SQL-Abfrage nur weibliche Mitglieder für Datensatzherkunft im Kombifeld des UF,
Wenn Mixmannschaft, dann SQL-Abfrage alle Mitglieder für Datensatzherkunft im Kombifeld des UF,

Liege ich mit meiner Idee richtig?


 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23754
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #11 am: Juni 30, 2019, 10:43:03 »
Hallo,

mir(uns) ist schon klar, was Du machen willst, und ich habe mich undeutlich ausgedrückt:


Wirf die Db weg und erstelle eine neue, in der die Datenverhältnisse normalisiert sind (siehe u. st. Links 1, 1a, 1b)  und in eine relationale Tabellenkonstruktion überführt sind.

Dann braucht es (fast) weder Code noch Select Case- Tricksereien, um abhängige Kombifelder abzubilden.


.
.
.
Dim strSQL as String
Select Case Me!Ma_Kürzel

Case  "H": strSQL = "select * from Mitglieder where Ma_Kürzel = 'H'"

Case  "D": strSQL = "select * from Mitglieder where Ma_Kürzel = 'D'"

Case Else: strSQL = "select * from Mitglieder

End Select

Me!Ufo_Steuerelementname! Mi_Nr.Rowsource = strSQL
.
.

Offline Maro68

  • Newbie
  • Beiträge: 12
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #12 am: Juli 02, 2019, 16:58:47 »
Hallo,

ich hab es (endlich) geschafft und so gelöst:
-----------------
Private Sub Form_Load()
    'MsgBox Me.Kä_MaID.Value
   
    Dim sqls As String
    sqls = "SELECT Mitglieder.Mi_ID, [Mi_VName] & "" "" & [Mi_NName] AS Name FROM Mitglieder"
    Select Case Me.Kä_MaID
        Case 1
            sqls = sqls & " Where Mitglieder.Mi_Geschlecht = ""m"";"
        Case 3
            sqls = sqls & " Where Mitglieder.Mi_Geschlecht = ""w"";"
    End Select
    Me.UF_Aufstellung!txt_ErgMiNr.RowSource = sqls
     
    'MsgBox Me.UF_Aufstellung!txt_ErgMiNr.RowSource

End Sub
------------------

Dazu musste ich meine DB nicht ändern. Die Codelogik ist exakt identisch mit deiner Lösung.
@Franz: Du hast von "Tricksereien" gesprochen.
Ist der Code "Trickserei", oder ist es gut, also die DB ganz ok, wenn es mit den paar Codezeilen funktioniert?

Zum Abschluß nur noch ein kleines Problemchen:
An welches Ereignis binde ich die obige Prozedur am besten, wenn sich die Datenherkunft bei jedem Datensatzwechsel im Hauptformular entsprechend anpassen soll?

Besten Dank für Eure Hilfe.
Martin
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23754
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #13 am: Juli 03, 2019, 08:18:27 »
Hallo,

Der Code an sich ist keine Trickserei, gleichwohl ist er nicht optimal. Es sind feste Werte ("m", "w" , Case 1--> "Magic Numbers") implementiert, die bei  Datenänderungen in den Urwald führen können.
Trickserei ist halt, wenn solche Maßnahmen überhaupt ergriffen werden müssen.

(Die doppelten Gänsefüße kannst Du zudem durch ein Hochkomma ersetzen)

Es führen halt viele Wege nach Rom   ;)

Zitat
wenn sich die Datenherkunft bei jedem Datensatzwechsel im Hauptformular

genau daran...

Bei Datensatzwechsel == Beim Anzeigen == OnCurrent (Form_Current)

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Kombinationsfeld abhängig von einem anderen Kombifeld
« Antwort #14 am: Juli 03, 2019, 17:35:47 »
Hallo,
Zitat
Die doppelten Gänsefüße kannst Du zudem durch ein Hochkomma ersetzen
Und das Semikolon am Ende kannst du dir auch sparen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Maro68

 

Kombinationsfeld mit Zahlen und Text Sortieren

Begonnen von -Tom-Board Formular

Antworten: 4
Aufrufe: 5507
Letzter Beitrag Mai 14, 2010, 10:04:42
von MzKlMu
Kombinationsfeld mit "Vor Aktualisierungsabfrage"

Begonnen von Andi1986Board Tabelle/Abfrage

Antworten: 4
Aufrufe: 3960
Letzter Beitrag Juni 10, 2010, 16:18:15
von database
Abfrage-Formulierung bei Kombinationsfeld

Begonnen von 99dingosBoard Tabelle/Abfrage

Antworten: 8
Aufrufe: 6350
Letzter Beitrag Juni 12, 2010, 06:41:39
von 99dingos
Datum im Kombinationsfeld auswählen, Heute +5 Tage

Begonnen von rbaltermiBoard Formular

Antworten: 2
Aufrufe: 2762
Letzter Beitrag Juni 16, 2010, 10:44:32
von rbaltermi
Kombinationsfeld verändern...

Begonnen von KlausurenverwaltungBoard Access-Hilfe

Antworten: 3
Aufrufe: 3199
Letzter Beitrag Juni 24, 2010, 21:25:18
von database

Advertisment / Werbung - Amazon Affiliate Links