Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zwei Tabellen mit Formular verknüpfen

Begonnen von Holzzwerg, Januar 31, 2013, 23:42:35

⏪ vorheriges - nächstes ⏩

Holzzwerg

Guten Abend.
Ich zerbreche mir schon seit Tagen den Kopf. BIn noch ein blutiger Einsteiger wie schon in diesem Beiträg erwähnt. http://www.access-o-mania.de/forum/index.php?topic=16792.0

Was ich bisher geschafft habe.
Ich habe mir bis jetzt vier Tabellen angeleget. Eine für das Mitgliederverzeichniss, welches ich bereits über ein Formular bearbeite. Eine weitere für die Mitgliederbeiträge und nochmals je eine für Verschiedene Einnahmen/Ausgaben und Veranstaltungen.

Nun zu meinem Problem. Ich möchte in der Tabelle "Mitgliederbeiträge" die Eingänge der Zahlungen verwalten. Diese möchte ich dann direkt mit dem Mitglied in der "Mitgliedertabelle" verknüpfen, ohne dass dieses Doppelt aufgeführt wird. Oder wäre es besser wenn die gesamten Daten des Mitglieds dann automatisch beim erfassen der Zahlung auch in die "Mitgliederbeiträge"-Tabelle übernommen wird?
Aehnlich möchte ich dann in den beiden anderen Tabellen vorgehen. Bei den Veranstaltungen würde ich gerne erfassen, wer teilnemen wird, dies auch wieder abhängig von der Mitgliedertabelle. Am besten über eine Suchfunktion. Hier sollten zudem dann auch noch weitre Personen eingetragen werden können, da nicht nur Mitglieder an unseren Veranstaltugen teilnehmen können.
Wie ihr sieht besteht mein Haupanliegen darin, Daten der einen Tabelle mit einer anderen zu verknüpfen oder in diese zu Kopieren. Und dies mit Hilfe eines Formulars.
Ich hoffe, dass mir jemand einen sauberen Lösungsansatz vorschlagen kann. Bin dann gerne bereit das eine odere andere selber zu erarbeiten. Möchte nur sicher sein, dass ich in die richtige Richtung arbeite :)

Hoffentlich bis bald

Gruess Marcel

69bruno

#1
 ;D
Nene, keine Daten kopieren......
2 Tabellen mit unterschiedlichen Daten ist schon mal gut. Jetzt musst Du nur in der Mitgliedertabelle eine ID haben, die sich bei den Mitgliedsbeiträgen in jedem Datensatz wiederfindet, der zu diesem Mitglied passt. (Referenz)

Dann kannst Du in einem Formular, welches Dir die Mitglieder anzeigt, ein Unterformular einsetzen. Das Unterformular zeigt dir die Datensätze des jeweiligen Mitgliedes an. Und dank der Automatismen in Access musst Du im ausser der richtigen Beziehung zwischen den Tabellen nichts machen, um nur die Datensätze des im Hauptformular angezeigten Mitgliedes anzusehen. Access filtert das anhand der Beziehung selbst.

Für die Veranstaltung gilt dann dasselbe.

Für Gäste, die keine Mitglieder sind, kannst Du, sofern die erfassten Daten identisch sind eine einzige Tabelle von Mitgliedern und Nichtmitgliedern nehmen. die braucht dann nur eine Feld "Mitlgied/Nichtmitglied".
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

Holzzwerg

Guten Tag
Danke dir für deine Antwort. Das macht mir ja schon mal Mut, dass ich das ganze nicht zweigleisig führen muss.
Etwas Hilfe bräuchte ich wohl doch noch. Unterformulare habe  ich bis jetzt noch nicht erstellt, denke aber dies lässt sich einfach googeln. Bei den Beziehungen unter den Tabellen wirds dann wohl doch etwas komplizierter denke ich. Kann mir da vielleicht jemand helfen und mir sagen wie ich da am besten vorgehe?
Einzelne Berichte sollten ja dann kein Problem darstellen, wenn die Abfragen mal eingerichtet sind denke ich. Damit ich zum Beispiel sofort erkenne wer in welchem Zeitraum bezahlt hat zum Beispiel.

Gruess Marcel

silentwolf

Hallo Marcel,

es ist nicht so schlimm wie Du Dir das denkst.
Aber ich versuche es Dir mal zu erklären und hoffe Du kannst es dann etwas besser verstehen.
Du erstellst die Tabellen die Du benötigst und im AutoWert Feld gibst Du den Namen an also z.B. erstelle eine Tabelle mit den Namen Kontakte im Autofeld setzt Du Kon_ID
dann gehts Du wie folgt vor. In der zweiten Spalte Kon_Datum, Kon_Mitglied dieses Feld könntest Du als Feldatentyp ja nein verwenden.
und dann noch alle andere Information die Du für einen Kontakt( Mitglied) anlegen möchtest.
Eine Tabelle mit Beitraege hier wieder das selbe in grün :)
Beitrag_ID als AutoWert und dann alle Felder die Du haben möchtest! Beitrag_Datum, Beitrag_Betrag usw. hier brauchst Du um die Tabelle Kontakte zu verknüpfen noch ein weiteres
Feld mit den Namen z.B. Beitrag_Kon_id mit einen Felddatentyp zahl! Ändere an diesen Feld nicht die Felgröße die muss als Long Integer stehen bleiben!
Wenn Du nun die beiden tabellen verknüpfen möchtest kannst Du das ganz einfach in der Datenbanktools unter Beziehungen erledigen.
Hier brauchst Du nur von der tabelle Kontakte das Feld Kon_ID zur tabelle Beitrag auf das Feld Beitrag_Kon_id ziehen und dann hast Du schon deine Beziehung oder Verknüpfung :)
Wenn Du nun ein Formular erstellst mit dem Assistenten dann nimmst Du zuerst die Tabelle Kontakte und übergibst alle Felder und danach auch die Tabelle von Beiträgen auch wieder alle
Felder.
Klickst weiter und weiter und Du hast ein Formular mit einem gebundenen Unterformular.
Wenn Du nun einen Kontakt anlegst dann kannst Du im Unterformular die Beiträge einfügen. Wenn Du nun Mitglied ja ankreuzt dann weist Du es war ein Mitglied wenn nicht ist es ein anderer Kontakt der einen Beitrag geleistet hat.
Nun hoffe ich Dir etwas geholfen zu haben und verbleibe mit freundlichen Grüßen

Albert




Holzzwerg

Ich danke euch für euere Hilfe. Dank euren Tips bin ich einen grossen Schritt weitergekommen :)

Die eine oder andere Frage wird sich sicherlich wieder ergeben ;)

silentwolf

Hallo Marcel,

kein Problem sind sehr viele hier im Forum die auch oft Hilfe brauchen :) Ich bin auch so jemand   ;D
Also nur Fragen bin mir sicher Du wirst gute Antworten erhalten!

Viel Glück

Albert

Holzzwerg

Wie schon erwähnt, bin ich dank euch schon einen grossen Schritt weitergekommen. Nun habe ich schon den nächsten Wunsch, den ich mir selbst wohl nicht erfüllen kann :D Ich hoffe ihr könnt mir helfen.
Ich habe nun also ein Formular um Mitlieder zu erfassen. Mit einem Unterformular erfasse ich die Einzahlungen der Mitgliederbeiträge.
Mein erster Wunsch wäre, das Unterformular als eine Art Pop-up zu öffnen. Nun ist es fix neben dem Hauptformular platziert. In diesem Unterformular habe ich auch verschiedene Datensatzoperationen mit hilfe des Assistenten erstellt. Ist es normal, dass wenn ich in einem Unterformular einen Datensatz lösche, dass der dazugehörige Datensatz im Haupformular auch gelöscht wird?
Ein anderes Problem, das mir zur Zeit den Kopf zerbricht, ist die Tatsache, dass ich Zellen in den verschiedenen Tabellen nicht mit Formeln verbinden kann.
Wieder um auf das Unterformular der Mitgliederbeiträge zurück zu kommen. Hier kann ich ja eine Zahlung erfassen und diese vermerke ich dann mit dem JA/Nein Feld, ob die Zahlung OK ist oder Nicht.
Ich möchte nun in einer Abfrage alle Mitglieder filtern die noch nicht bezahlt haben. Ich muss aber erst eine Zahlung erfassen, damit das Zahlung OK feld ja überhaupt in der Datenbank erfasst ist und mir einen Wert zurückgibt. Wie könnte ich das lösen, damit ich dies auch filtern könnte, solange noch keine Zahlung erfasst wurde.
Ich hoffe ich konnte mein Problem einigermassen verständlich erläutern.
Bin mir sicher, das der eine oder andere hier mir erneut helfen kann :)

Gute Nacht und einen guten Wocheenstart
Marcel

pahiti78

Hallo Holzzwerg,
du könntest zur Filterung der Zahlungseingänge eine seperate Abfrage erstellen. In dieser lässt du dir die Werte anzeigen, welche Null sind. Du könntest dafür die Funktion IsNull() nutzen. Diese Abfre bindestens du in einen Bericht oder Formular dann kannst du dir diese anzeigen lassen.
Gruß
Matze

Holzzwerg

Zitat von: pahiti78 am Februar 03, 2013, 23:51:45
Hallo Holzzwerg,
du könntest zur Filterung der Zahlungseingänge eine seperate Abfrage erstellen. In dieser lässt du dir die Werte anzeigen, welche Null sind. Du könntest dafür die Funktion IsNull() nutzen. Diese Abfre bindestens du in einen Bericht oder Formular dann kannst du dir diese anzeigen lassen.
Die Idee war schon, das ganze über eine Abfrage zu filtern. Mein Problem ist ja, das ansich ja kein Datensatz da ist, den ich abfragen kann. Ansich müsste die Abfrage ja kontrollieren ob ein ensprechender Datensatz in der ensprechenden Tablelle in einem Festgelegten Zeitraum vorhanden ist oder nicht. Falls dies möglich ist, wäre ich über einen detailierten Lösungsweg dankbar :)
Gruess Marcel

Holzzwerg

Das Problem mit der Abfrage der nicht vorhandenen Datensätze hat sich nun geklärt. Habe die Vorhanden Datensätze in eine Abfrage gepackt und dann die Differenz zu einer anderen Abfrage erstellt sollte so funktionieren :)
Bis zum nächsten Problem :D
Gruss und gute Nacht