2.9k Aufrufe
Gefragt in Datenbanken von
Hallo,
ich bin fast am verzweifeln. Ich komme einfach nicht weiter.
Habe ewig nicht mehr mit Access gearbeitet, geschweige mit den genauen Befehlen hatte ich eigentlich nie zu tun. Weil das einfache immer ausgereicht hat. Nun aber möchte ich etwas machen das etwas mehr benötigt.

Ich möchte zwei Kombinationsfelder Verbinden.
Und zwar In den ersten stehen die Hauptkategorien.
Diese hab ich einer separaten Datenbank "daten_kombi" hinterlegt. Sowie für das zweite Kombinationsfeld die weiteren Daten.

So sollte es aussehen:
Kombinationsfeld1= per Befehl "select distinct TABELLENSPALTE from DATENBANKNAME" wird die Spalte "Typ" abgefragt. Mit folgenden Begriffen "Weapon, Armor, Card und Headgear".

Kombinationsfeld2= Hier sollen dann die speraten Angaben die in Spalte "Weapon, Armor, Card und Headgear" stehen. Je nach dem was im Kombinationsfeld 1 gewählt wurde.


Leider konnte ich nur den ersten Befehl ausfindig machen. Jedoch wie es beim zweiten geschrieben wird. Da blicke ich irgendwie nicht durch.

Ich bedanke mich im Voraus für eure Hilfe.

17 Antworten

0 Punkte
Beantwortet von
Hallo nochmals,

Dein erstes Kombinationsfeld muß dann so lauten:

Private Sub Kombinationsfeld6_AfterUpdate()
Me!Kombinationsfeld8.RowSource = "SELECT Typ from daten_kombi where Klasse = '" & Me!Kombinationsfeld6 & "'"
End Sub

Das zweite Kombinationsfeld (abhängig vom ersten) dann so:

Private Sub Kombinationsfeld8_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Typ] = '" & Me![Kombinationsfeld8] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Auch die Beziehungen der beiden Tabellen 1:n (Klasse>daten_kombi) müssen festgelegt sein.

Test es mal

Gruß
Paul1
0 Punkte
Beantwortet von
Das habe ich nun im VBA Editor bei den beiden Kombis eingegeben.

Jedoch passiert noch nichts. Da ja bei Daten -> Datensatzherkunft auch was rein gehört. Nur bei dein Beispiel wird nur auf eine Spalte in der Datenbank hingewiesen.

Was muss ich dann bei kombi 1 und kombi2 eintragen das es so funktioniert wie ich es gern hätte?

Dann kann ich dir Rückmeldung geben ob es nun endlich klappt. :)
0 Punkte
Beantwortet von
Hallo,

für Kombinationsfeld1:

>Entwurfsansicht Kombinationsfeld>Eigenschaften>Daten>Herkunftstyp:Tabelle/Abfrage auswählen>Datensatzherkunft: SELECT Tabelle1.Klasse FROM Tabelle1;

statt Tabelle1 muß der Name der Tabelle stehen, in der sich das Feld (Spalte) "Klasse" befindet.

für Kombinationsfeld2:

wie vor beschrieben, jedoch Datensatzherkunft:
SELECT daten_kombi.Typ FROM daten_kombi;

Sollte jetzt funktionieren, wenn auch die Beziehungen gesetzt sind

Feld Klasse Tabelle?
Feld Klasse daten_kombi

Schau Dir vorsichtshalber auch nochmal die Beispieldatenbank an (Tabelleninhalte, Beziehungewn etc.)

Gruß
Paul1
0 Punkte
Beantwortet von
Ich glaube irgendwie verstehst du mich falsch. Was hat die Tabelle1 mit Tabelle2 zu tun? In Tabelle2 stehen die Begriffe in 4 verschiedenen Spalten. Nun werden in den Kombinationsfeld1 "Typ" nur die bereits eingegeben Begriffe von Spalte "Klasse" angezeigt von Tabelle1.
Jedoch in zweiten Feld garnichts.


Allerdings hab ich im Kombinationsfeld2 "Klasse" etwas ausprobiert. Ich vermute mal wie ich das meine muss es anders geschrieben werden. Siehe unten, hoffe jetzt verstehst was ich bezwecken will.
Wenn man den Feld nicht sagt wenn das ausgewählt wird dann auf Spalte "Waffe" in daten_kombi zu gehen oder die anderen Sprünge. Dann kann es dies ja auch nicht tun.
Deswegen dachte ich ein Befehl der weiß wenn dieses Wort oben ausgewählt wurde muss Spalte "Waffe", wenn das nächste Wort dann Spalte "Rüstung, usw. ausgewählt werden.

Leider hilft mir deine Beispieldatei nicht weiter, hab schon angeschaut und darauf hin dieses ausprobiert ohne Erfolg:

Kombinationsfeld2 eingetragen:

select daten_kombi.Waffe=Weapon - Waffe; daten_kombi.Rüstung=Armor - Rüstung; daten_kombi.Karte=Card - Karte; daten_kombi.Kopfbedeckung=Headgear - Kopfbedeckung from daten_kombi
0 Punkte
Beantwortet von
Hallo,

Spalten auswählen aus Kombinationsfeld1 geht leider nicht, Kombinationsfeld1 kann nur die Inhalte der Spalte Klasse auswählen und die im Zusammenhang zur Spalte Typ stehenden Inhalte mit Kombinationsfeld2.

Mit einer weiteren Hilfe meinerseits kann ich so leider nicht dienen.

Gruß
Paul1
0 Punkte
Beantwortet von
Ich danke dir für deine bisherige Hilfe.
0 Punkte
Beantwortet von
Ich habe nie was geschrieben von Spalten auswählen von Tabelle1. Die Tabelle1 ist total uninteressant für diese Aufgaben.

Hier eine einfache Version wie der Ablauf geschehen soll, so das jeder das versteht! Ich hoffe jemand kann mir dabei bitte helfen. Ich wüsste nicht mit welchen Befehlen ich das realisieren könnte.

Ich will doch nur das genau in dieser Reihenfolge die Felder das tun was sie sollen:

1. -> Kombifeld1 "Typ" frägt eine andere Tabelle innerhalb der selben Datenbank "daten_kombi" in Spalte "Typ" nach den Inhalten ab.
2. -> Nun wird eine Auswahl zwischen "Weapon, Armor, Card und Headgear" getroffen. Diese Begriffe sind in "daten_Kombi" Spalte "Typ".
3. -> Kombifeld2 "Klasse" frägt Kombifeld1 "Typ" nach der Antwort ab, die oben gemacht wurde.
4. -> Kombifeld2 "Klasse" frägt nun anhand der Auswahl in der Tabelle "daten_kombi" die dementsprechende Spalte ab.
5. -> Kombifeld2 "Klasse" gibt die Einträge der Spalte wieder.
6. -> Nun kann die letzte Auswahl getroffen werden.
7. -> Jetzt nur noch die letzten Angaben machen, dann auf "Datensatz speichern" und nun sind die Daten in der Tabelle "Item_Database".
...