Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Übergabe der markierten Datensätze in Bericht

Begonnen von MaF, Oktober 13, 2010, 14:20:36

⏪ vorheriges - nächstes ⏩

MaF

Hallo an alle!

Die ist mein erster Post hier und ich bin blutiger Anfänger...ich hoffe ich strapaziere eure Nerven nicht zu sehr...

Ich habe eine Adressdatenbank mit Tabelle und Formular gebaut (mit den üblichen Felder: Name, Adresse usw.) - dies hat einwandfrei funktioniert.
Nun habe ich ein Feld in dem die Leistungen der Lieferanten beschrieben sind z.B. Heizung, Sanitär, Lüftung (die Worte stehen nacheinander im Feld, durch Komma getrennt)

Nun benötige ich eine Suche, in der ich z.B. Heizung eingebe und ausschließlich die Lieferanten, die das im Leistungsfeld drin haben sollen angezeigt werden (unabhängig davon, was sie sonst noch für ein Leistungsumfang haben).
Ich habe es schon mit einem Kombinantionsfeld versucht, aber wenn ich ein Wort (angefangen z.B. mit Heizung) eingebe, dann vervollständigt es ja automatisch und so werden mir Lieferanten mit einem anderen Leistungsumfang nicht angeziegt...als Bsp. Maler, Heizung, Fliesenleger


Schwer zu erklären, ich hoffe ihr wisst was ich meine!

Gruß
Michael

database

#1
Hallo,

ZitatSchwer zu erklären, ich hoffe ihr wisst was ich meine

...ich meine verstanden zu haben, dass du so was in der Form wie ---  'Wer liefert Was?' ---  basteln möchtest.

Also hast du eine Tabelle mit den Namen und Adressen der Lieferanten erstellt.
Diese Tabelle enthält hoffentlich ein Primärschlüsselfeld --- z.B. AdressID, Autowert ?
Wenn ja, ein guter Ansatz, wenn nein - solltest du das gleich nachholen.

Das Feld mit den Leistungen ist aber in jedem Fall in dieser Tabelle falsch angesiedelt!

Entsprechend den Regeln für ein normalisiertes Datenmodell musst du dir eine 2. Tabelle erstellen, in der Leistungen erfasst sind.
z.B. tblLeistung mit den Feldern  LeistungsID, Autowert und LeistungsBezeichnung, Text

und eine 3. Tabelle zur Aufnahme von ... Wer erbringt welche Leistung(en).

also eine Tabelle tblLeistungLieferant mit den Feldern FK_Lieferant, Zahl, LongInteger und FK_Leistung, Zahl, LongInteger
Diese beiden Felder stehen mit den Primärschlüsselfelder der Adress- und der Leistungstabelle in einer 1:n Beziehung.

Mittels einer geeigneten Abfrage kannst du dann feststellen welche Lieferanten eine bestimmte Leistung erbringen.

Um dich mit den Regeln eines normalisierten Datenmodells auseinander zu setzen empfehle ich dir nach einem Beitrag von DF6GL Ausschau zu halten und diesen zu öffnen.
DF6GL hat in seiner Signatur einige hochinteresante Links vermerkt, die dir dabzu sehr gute Infos liefern können.
Die Zauberworte dabei sind ---  Datenbankgrundlagen / Grundlagen der Datenmodellierung / Normalisierung
Schau' dir die Sache mal genau an und berichtige bzw. erweitere dein Datenmodell nach diesen Erkenntnissen.
Wenn dieses nicht stimmig gelöst ist hat jede weitere Arbeit an einem Formular, Bericht oder sonstigen Datenbankobjekten wenig Erfolg.

HTH

Peter

MaF

Hallo Peter,

vielen Dank für die schnelle Antwort!
Ich werde nach der Sig von DF6GL und schaue mir die Grundlagen an (daran fehlt es, ich weiß)

Ich melde mich dann hier wieder, ob ich zurecht komme oder nicht.. :)

Michael

database

Aber bitte gerne...

Weil mir in der Zwischenzeit nichts besseres eingefallen ist, habe ich für dich ein kleines Beispiel erstellt und unten angehängt..
Daran kannst du ein bisschen herumexperimentieren ...

Schau dir das DB-Daigramm an und hier vor Allem die Zusammenhänge der Daten (Beziehungen zwischen den Tabellen) Welche Felder mit welchen und warum ...

Wenn du Fragen dazu hast melde dich einfach.

Grüße

Peter

[Anhang gelöscht durch Administrator]

MaF

Hallo Peter,

also ääähhh was soll ich sagen, es ist nahezu 95% von dem was ich will.
Ich spiele mal ein bisschen damit - aber Respekt!

VG
Michael