Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Beziehungsproblem bzw. erstellen von Tabellen
Gehe zu Seite 1, 2  Weiter
zurück: Abfrage- und Aktualisierungsproblem weiter: Spaltennamen abfragen --- geht das? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Katja2
Gast


Verfasst am:
13. Jul 2005, 14:18
Rufname:

Beziehungsproblem bzw. erstellen von Tabellen - Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Hallo,

ich habe die aufgabe bekommen, eine kleine filmdatenbank mit Access zu erstellen.
Obwohl ich relativ neu im Thema Access bin hat dass soweit ganz gut geklappt.
Jetzt bin ich jedoch auf ein für mich scheinbar unlösbares problemchen gestoßen:

Ich habe u.a. 2 Tabellen : tbl_film und tbl_kategorie
Jetzt ist es so das ein Film mehreren Kategorien angehören kann.
Bloss wie berücksichtige ich das in der Datenbankstruktur ( Tabellen und beziehungen)
Es soll so sein, das ich über ein Formular einen Film anlegen kann und diesem eine oder mehrere Kategorien aus der tbl_kategorie zuweisen kann.
Leider habe ich es bislang nur hinbekommen eine Kategorie zuzuweisen nicht aber mehrere.
Zudem, müsste es im zweiten Step so sein, dass ich falls eine kategorie noch nicht vorhanden ist, ich diese bei der anlage des Films erstellen kann.
Dieser zweite Punkt werde ich aber wahrscheinlich weglassen, das mir das doch noch ein wenig schwierig erscheint.

Bitte helft mir und gibt mir mal ein paar Tips.

Danke im voraus.

Grüsse
Katja
stpimi
Moderator Access


Verfasst am:
13. Jul 2005, 22:17
Rufname:
Wohnort: Graz


m:n-Beziehung - m:n-Beziehung

Nach oben
       

Hi Katja!

Du hast hier eine m:n-Beziehung vorliegen - ein Film gehört in mehrere Kategorien und zu jeder Kategorie kann es mehrere Filme geben.

In Umgang mit m:n-Beziehungen habe ich zu diesem Thema etwas zusammengestellt. Auch eine Beispieldatenbank ist dabei.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
14. Jul 2005, 08:31
Rufname:

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Danke Stpimi, im Prinzip weiß ich jetzt wie ich das machen muss.
Allerdings habe ich noch einige Fragen dazu:
1. So wie ich DIch verstanden habe ist ein Unterformular Pflicht oder ?
2. Ich habe mir Deine beispielDB angesehen, allerdings würde ich es für die auswahl der kategorien lieber eine Listbox benutzen. d.h. ich habe in einem Formular bei jedem Film eine Listbox mit allen verfügbaren Kategorien, die ich per Mehrfachauswahl auswählen kann. Das heisst die Kategorie wird per markiertem Eintrag in der Listbox angezeigt. Nur wie kann ich das machen ?

3. Als Suchoption verwende ich in meiner DB einen Formularbasierten Filter jetzt muss ich natürich die Möglichkeit haben bei der Kategorie aus zu kombinieren sprich Filtern nach Datensätzen die z.B. Drama und Action sind. Das funktionierte bei Deiner BeispielDB nicht.
Woran könnte das denn liegen ?

4. Zudem müsste es so sein, dass wenn ich beid er Anlage eines Films feststellte, das eine Kategorie noch nciht existiert, ich diese direkt mitanlegen kann.

Fragen über Fragen .... Wink

Danke im voraus

Katja
stpimi
Moderator Access


Verfasst am:
14. Jul 2005, 09:35
Rufname:
Wohnort: Graz

Filmdatenbank - Filmdatenbank

Nach oben
       

Hi Katja!

ad 1) 1:n-Beziehungen (und hier wird die m:n-Beziehung ja in zwei 1:n-Beziehungen aufgelöst) sind sinnvoll nur mit Unterformular darzustellen.

ad 2) Von einem Listenfeld würde ich hier eher abraten. Du müßtest jedesmal aus der Tabelle mit den Kategoriezuordnungen die benötigten auslesen und per VBA-Code im Listenfeld markieren. Ebenso müßte jede Zuordnung per VBA-Code in die Tabelle geschrieben werden, was doch eher umständlich und auch eine Fehlerquelle ist.

ad 3) Der formularbasierte Filter ist für Daten des UFo's wahrscheinlich schwierig bis gar nicht verwendbar. Ich verwende generell zum Suchen eigene Suchformulare zur Auswahl und darauf basierend eine Abfrage, die ihre Ergebnisse in einem Formular ausgibt.

ad 4) Dazu kannst Du einen Button im Hauptformular einbauen, der im Bedarfsfall ein kleines PopUp-Formular aufruft, in dem die neue Kategorie erfasst werden kann. Die Notwendigkeit dürfte doch eher selten gegeben sein.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
14. Jul 2005, 13:01
Rufname:


AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

@stpimi
Hmm, aber dann wird die Suche nach mehreren Kategorien, also nach Filmen die z.B. in der Kat a und B enthalten sind doch sehr schwierig zu erstellen sein, oder ?

Kruß

Katja
stpimi
Moderator Access


Verfasst am:
14. Jul 2005, 13:23
Rufname:
Wohnort: Graz

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Hallo Katja!

Das ist kein Problem. Der SQL-String für die Satzauswahl wird zur Laufzeit zusammengesetzt. Dadurch ist ein sehr hohes Mass an Flexibilität gegeben. Oder es könnten imSuchformular mehrere Kombifelder (3 dürften wohl reichen) erstellt und die Abfrage prüft alle 3.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
15. Jul 2005, 10:16
Rufname:

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Dann könnte man es doch auch so machen, dass man ein Suchformular hat, mit einer Listbox, die als Inhalt alle Kategorien hat.
Über eine mehrfachauswahl in dieser Listbox würden dann alle Filme, die den markierten Kategorien angehören geuscht werden.

Nur wie mache ich das ?
Eine Listbox mit den Kategorien ist ja nicht das Problem, aber wie starte ich über die Mehrachauswahl die Suche ?

Danke !

Liebe Grüsse

katja
stpimi
Moderator Access


Verfasst am:
15. Jul 2005, 10:24
Rufname:
Wohnort: Graz

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Hallo Katja!

Ich hatte deshalb Kombinationsfelder vorgeschlagen, weil ein Listenfeld mit Mehrfachauswahl nicht direkt in Abfragekriterien verwendet werden kann. Dazu müßtest Du den SQL-String in VBA zusammenstellen.
2 oder 3 Kombinationsfelder dagegen können direkt in der Abfrage verwendet werden.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
15. Jul 2005, 14:09
Rufname:

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Ich habe jetzt ein Suchformular mit 3 Kopmbifeldern erstellt.
Auf diese greife ich mit meiner Auswahlabfrage zu.
Jetzt habe ich allerdings das ein neues Problem.
Ich gebe in der Abfrage als Kriterium meine Combo1 an.
Jetzt muss ich vermutlich noch 2mal das Feld Kategorie mit der jeweiligen Combobox als Kriterium in die Abfrage aufnehmen.
Wie schaffe ich es jedoch das er nur dann die Kriterien 2 und 3 prüft wenn ich den davorliegenden Combis auch etwas ausgewählt wurde. Ich vermute mal das muss ich über eine If/Then funktion machen. nur daüber habe ich es ncht hingekriegt. Mein Kriterium sieht so aus :
Code:
Wenn ([Formulare]![Kategoriesuche]![Kombinationsfeld2] = Not Null)
Then([Formulare]![Kategoriesuche]![Kombinationsfeld2])

@stpimi: Kannst DU mir bei der Formulierung helfen ? Wink

liebe grüsse

Katja
stpimi
Moderator Access


Verfasst am:
15. Jul 2005, 14:17
Rufname:
Wohnort: Graz

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Hallo Katja!

Das Feld Kategorie brauchst Du nur einmal in der Abfrage. Als Kriterium gibst Du in dieser Spalte an:
Code:
[Formulare]![Kategoriesuche]![Kombinationsfeld1] Oder
[Formulare]![Kategoriesuche]![Kombinationsfeld2] Oder
[Formulare]![Kategoriesuche]![Kombinationsfeld3]

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
15. Jul 2005, 16:49
Rufname:

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Katja2 am 15. Jul 2005 um 14:33 hat folgendes geschrieben:
@stpimi: Hmm, ist es dann nicht so, das er mir die Filme anzeigt die in der Kategorie 1 oder 2 sind ?
Es soll doch so sein, das wenn ich zwei Kategorien auswählen er mir nur die Filme anzeigt, die in beiden ausgewählten Kategorien sind.

liebe grüsse

Katja

Irgendwie verzweifele ich gerade, es muss doch möglich sein mir üner eine abfrage die Filme die z.B. in Kategorie 1 und 3 sind anzeigen zu lassen.
Als Basis für die Abfrage dient mir eine Tabelle mit den folgenden feldern FilmID, KatID und Id.
Wenn ich als Kriterium bei katID 1 UND 3 eingebe bekomme ich kein Ergebnis zurück.
Gebe ich 1 oder 3 ein bekomme ich alle Filme die entweder in 1 oder in 3 sind zurück.
Hat noch jemand einen Tip
stpimi
Moderator Access


Verfasst am:
15. Jul 2005, 18:08
Rufname:
Wohnort: Graz

SQL-String erstellen statt Abfrage - SQL-String erstellen statt Abfrage

Nach oben
       

Hallo Katja!

Nicht verzweifeln, wenn ich nicht gleich antworte. Zwischendurch habe ich noch anderes zu tun ... Wink
Zusammen mit dem "Wenn" wird das ganze im Abfrageeditor schon recht unübersichtlich. Es wäre wahrscheinlich sinnvoller, den Abfragestring (ich nehme an, die Ausgabe erfolgt wieder in einem Formular) dynamisch zur Laufzeit zusammenzusetzen. Dabei kann man sehr einfach die Kriterien nur auf die Felder mit Nicht-Null-Werten beschränken.

Wenn Du mir die genauen Feldnamen des Formulares und der Tabellenfelder nennst, schreib ich Dir die notwendige Prozedur zusammen.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
15. Jul 2005, 23:39
Rufname:

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

@Stpimi: Naja bin halt etwas verzeifelt, weil ich die Aufgabe am Montag abgeben muss Smile
Also die Tabellen und felder lauten:
tblhilfstabelle
id
filmid
katid

tblkategorie
katid
kategorie

tblfilm
filmid
Titel
Untertitel
usw...

Die Felder des Suchformulars frmKatSuche
lauten:
combo1, combo2,combo3 und btnkatsuche
Das Ergebniss soll später in dem Formular
frm mit den Feldern Katid und Kategorie sowie dem Unterformular:
frmKatFilme
mit FilmId, Titel usw. ausgegeben werden.
Wäre echt cool, wenn Du mir da nochmals helfen könntest Wink
Ich werde mich jetzt auch nochmals dranversuchen.

Danke & liebe Grüße
Katja
stpimi
Moderator Access


Verfasst am:
16. Jul 2005, 22:36
Rufname:
Wohnort: Graz

AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

stpimi am 16. Jul 2005 um 10:03 hat folgendes geschrieben:
Hi Katja!

Ich bastle gerade an einer MusterDB, muß jetzt aber weg und werde mich erst am Abend melden.
Wenn Du mir eine E-Mail-Adresse an

m punkt pintscher (at) inode punkt at

schickst (ohne Leerzeichen, Punkt und (at) durch die entsprechenden Zeichen ersetzt), schicke ich Dir die am Abend zu.

Hi Katja!

Das war doch komplizierter, als ich zuerst dachte. Ich habe es so gelöst, das 3 Abfragen jeweils die Filme zu einem der 3 Kombifelder ermitteln.

Die SQL-Codes dieser 3 Abfragen werden zur Laufzeit zugewiesen, um Leerauswahlen (in diesem Fall liefert die Abfrage alle Filme aus tblFilme, weil sonst wegen des INNER JOIN die darüberliegende Abfrage kein Ergebnis bringen würde) berücksichtigen zu können.

Dazu wird im Button_Click-Ereignis folgender Code hinterlegt:
Code:
Private Sub btnKatSuche_Click()
    Dim qryKat1 As DAO.QueryDef
    Dim qryKat2 As DAO.QueryDef
    Dim qryKat3 As DAO.QueryDef
    Dim db As DAO.Database
    Dim strSQL As String

    Set db = CurrentDb
    '3 Objektvariable definieren - je eine für jede der 3 Basisabfragen
    Set qryKat1 = db.QueryDefs("qryKategorie1")
    Set qryKat2 = db.QueryDefs("qryKategorie2")
    Set qryKat3 = db.QueryDefs("qryKategorie3")
    'Default-SQL-String aufbauen
    strSQL = "SELECT tblHilfstabelle.KatID, tblFilm.Filmtitel, " & _
                    "tblFilm.Untertitel, tblFilm.FilmID " & _
            " FROM tblFilm " & _
                  "INNER JOIN tblHilfstabelle " & _
                  "ON tblFilm.FilmID = tblHilfstabelle.FilmID"
    'Jeder Abfrage je nachdem ob Auswahl getroffen oder nicht,
    'den SQL-String zuweisen
    If IsNull(Me!Combo1) Then
        qryKat1.sql = "SELECT * FROM tblFilm"
      Else
        qryKat1.sql = strSQL & " WHERE tblHIlfstabelle.KatID = " & Me!Combo1
    End If
    If IsNull(Me!Combo2) Then
        qryKat2.sql = "SELECT * FROM tblFilm"
      Else
        qryKat2.sql = strSQL & " WHERE tblHIlfstabelle.KatID = " & Me!Combo2
    End If
    If IsNull(Me!Combo3) Then
        qryKat3.sql = "SELECT * FROM tblFilm"
      Else
        qryKat3.sql = strSQL & " WHERE tblHIlfstabelle.KatID = " & Me!Combo3
    End If
    DoCmd.OpenForm "frmSuchergebnisNeu"
    Set qryKat1 = Nothing
    Set qryKat2 = Nothing
    Set qryKat3 = Nothing
    Set db = Nothing
End Sub

Das Formular frmSuchergebnisNeu hat als Datenherkunft eine Abfrage, die alle 3 Kategorie-Abfragen über die FilmID JOINed.
Katja2 am 17. Jul 2005 um 12:01 hat folgendes geschrieben:
@stpimi: Danke, das werde ich nachher mal gleich ausprobieren und Dir Feedback gegben.
Aber wieso lässt sich das nicht über eine norm. Auswahlabfrage lösen ?
Theoretisch müsse es doch gehen, das ich mir die FilmID's die in zwei Kategorien sind anzeigen lassen kann. Aber selbst wenn ich das Suchformular mit den COmboboxen weglasse funktioniert das nicht.
Kann das an den P.Keys liegen ?
danke und Grüße
Katja

Nachtrag: stpimi am 17. Jul 2005 um 22:03 hat folgendes geschrieben:
Hi Katja!
Zitat:
Aber wieso lässt sich das nicht über eine norm. Auswahlabfrage lösen

Das liegt daran, das die Kategorien zu einem Film in mehreren eigenständigen Datensätzen gespeichert sind; 1 Datensatz je Kategorie. Keiner dieser n Datensätze erfüllt die Bedingung Kategorie 1 und Kategorie 4. Eine normale Auswahlabfrage bringt somit kein Ergebnis.
Daher meine Lösung, eine Auswahlabfrage je gewählter Kategorie und die Ergebnisse dieser Abfragen über FilmID joinen. Damit erreichst Du die gewünschte Schnittmenge aus den 3 Basisabfragen.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Katja2
Gast


Verfasst am:
18. Jul 2005, 10:25
Rufname:


AW: Beziehungsproblem bzw. erstellen von Tabellen - AW: Beziehungsproblem bzw. erstellen von Tabellen

Nach oben
       

Hab gestern doch nicht mehr geschafft es auszuprobieren.
Bin aber gerade dabei.
Wie sehen denn Deine Abfragen queryKategorie 1 -3 aus ?

Grüsse

Katja
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen 2 mondi 1015 23. Jun 2004, 10:10
mondi 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: 2 tabellen vergleichen 4 Lordoo88 1555 03. Jun 2004, 16:43
Lordoo88 2 tabellen vergleichen
Keine neuen Beiträge Access Tabellen & Abfragen: Relativ komplexes PRoblem mit erstellen von Datensätzen 5 feri 808 02. Jun 2004, 14:21
stpimi Relativ komplexes PRoblem mit erstellen von Datensätzen
Keine neuen Beiträge Access Tabellen & Abfragen: Frontend und Backend: kann nicht auf die Tabellen zugreifen 1 mhw 803 25. Mai 2004, 12:25
Robsl Frontend und Backend: kann nicht auf die Tabellen zugreifen
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Tabellen zusammenfügen und Nullwerte überschreiben 1 m.hataj 1304 13. Mai 2004, 18:10
faßnacht(IT); Zwei Tabellen zusammenfügen und Nullwerte überschreiben
Keine neuen Beiträge Access Tabellen & Abfragen: kriterium - datensatz nur in einer von zwei tabellen 3 budking82 1000 11. Mai 2004, 12:59
budking82 kriterium - datensatz nur in einer von zwei tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage erstelen, die zwei tabellen vergleicht 2 pucky 802 27. Apr 2004, 10:53
ProLogistik Abfrage erstelen, die zwei tabellen vergleicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abgleich von 2 tabellen in access 2003 4 Fierce 1719 16. Apr 2004, 08:27
el_gomero Abgleich von 2 tabellen in access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: Auf- bzw. Abrundung - Ganzzahl 2 Klaus19 596 29. März 2004, 12:35
Klaus19 Auf- bzw. Abrundung - Ganzzahl
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erzeugen; kopieren 7 DiplomandSPS 1323 25. März 2004, 10:01
fridgenep neue Tabellen erzeugen; kopieren
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen verknüpfen 1 darkblue82 802 05. März 2004, 12:00
lothi Tabellen verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage aus Formular erstellen 2 frkrone 3248 12. Feb 2004, 14:22
frkrone Abfrage aus Formular erstellen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA