Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Tabelle Vereinseinnahmen

Dieses Thema im Forum "Microsoft Access" wurde erstellt von Hundenanny, 21 April 2015.

  1. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo,

    in meiner DB bin ich schon recht weit. Stundenlanges suchen und ausprobieren hat leider nicht geholfen.:( Ich muss eine Tabelle anlegen, in der die monatlichen Zahlungseingänge für jedes Mitglied erfasst werden kann.

    Ich weiß einfach nicht weiter.:oops:

    Es gibt Mitglieder, die bleiben nur ein Jahr, andere über Jahre. Der Zahlungseingang wird später per Hand in ein Formular eingegeben. Es kann sein, dass ein Mitglied mal vergisst den Beitrag zu bezahlen, dann sollte dies im Formular rot erscheinen.

    Jetzt fehlt mir die Grundlage für das Formular - die Tabelle. :eek:

    Ich habe eine Tabelle mit allen Kundendaten, und eine Tabelle mit ID, Eintrittsdatum, Beitrag und für Kündigungsdatum (Feld ist leer bis zur Kündigung).

    Dazwischen sollte noch eine Tabelle sein für die Monate oder kann ich das direkt über eine Abfrage bzw. Formular erstellen?

    Hoffentlich kann mir hier jemand helfen:rolleyes:

    Hundenanny
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Das erste sind die Stammdaten. Die Bewegungsdaten, also die monatlichen Zahlungen etc., kommen in eine eigene Tabelle. Ob alle bezahlt haben kann man dann mit einem Select erfragen. Das könnte man auch als VIEW definieren.

    Das wäre so in etwa der Weg, wie man das in SQL-Datenbanken macht. Von Access hab ich aber no clue.
     
  3. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo akretschmer,

    vielen Dank für die schnelle Antwort.

    Wäre dann die Tabelle mit montlichen Zahlungen eine Tabelle mit Beginn Datum und Kündigung leer, dazwischen die Berechnung evtl. Endlosformular?????

    Das mit SQL habe ich schon probiert, da hatten wir auch schon Kontakt. Da komme ich leider nicht weiter, deshalb steht die Datenbank jetzt in Access. Auch wenn es etwas umständlicher ist, ist es für mich einfach leichter, da ich (zwar schon Jahre her) Schulungen in Access hatte.

    Liebe Grüße
    Hundenanny
     
  4. akretschmer

    akretschmer Datenbank-Guru

    SQL ist auch nicht schwer.

    Du hast z.B. diese Tabellen:

    Code:
    test=*# \d hunde_master
      Table "public.hunde_master"
      Column  |  Type  | Modifiers
    ----------+-----------+-----------
     id  | integer  | not null
     name  | text  |
     mitglied | daterange |
     beitrag  | integer  |
    Indexes:
      "hunde_master_pkey" PRIMARY KEY, btree (id)
    Referenced by:
      TABLE "hunde_zahlungen" CONSTRAINT "hunde_zahlungen_mitglied_fkey" FOREIGN KEY (mitglied) REFERENCES hunde_master(id)
    
    test=*# \d hunde_zahlungen
     Table "public.hunde_zahlungen"
      Column  |  Type  | Modifiers
    ----------+---------+-----------
     mitglied | integer |
     datum  | date  |
     betrag  | integer |
    Foreign-key constraints:
      "hunde_zahlungen_mitglied_fkey" FOREIGN KEY (mitglied) REFERENCES hunde_master(id)
    
    und diese Daten:

    Code:
    test=*# select * from hunde_master ;
     id |  name  |  mitglied  | beitrag
    ----+------------+---------------+---------
      1 | mitglied 1 | [2015-01-01,) |  10
      2 | mitglied 2 | [2015-02-01,) |  15
    (2 rows)
    
    test=*# select * from hunde_zahlungen ;
     mitglied |  datum  | betrag
    ----------+------------+--------
      1 | 2015-01-10 |  10
      1 | 2015-02-10 |  10
      1 | 2015-04-10 |  10
      2 | 2015-02-10 |  10
      2 | 2015-03-10 |  15
      2 | 2015-04-10 |  15
    (6 rows)
    
    beachte, Mitglied 2 ist erst seit februar Mitglied, muß also im Januar nix zahlen. Hat aber im Februar 5 EUR zu wenig bezahlt.

    Du willst nun eine Übersicht über die Zahlungen der ersten 6 Monate, was schon gezahl wurde, was fehlt, wo zuwenig. Einfach:

    Code:
    test=*# select *, hm.beitrag-hz.betrag as fehlbetrag from hunde_master hm cross join (select to_char('2015-01-01'::date + s * '1 month'::interval,'yyyy-mm') as monat from generate_series(0,5) s) monate left join hunde_zahlungen hz on (hz.mitglied, monate.monat) = (hm.id,to_char(hz.datum,'yyyy-mm')) where to_date(monate.monat,'yyyy-mm') <@ hm.mitglied order by id;
     id |  name  |  mitglied  | beitrag |  monat  | mitglied |  datum  | betrag | fehlbetrag
    ----+------------+---------------+---------+---------+----------+------------+--------+------------
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-01 |  1 | 2015-01-10 |  10 |  0
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-02 |  1 | 2015-02-10 |  10 |  0
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-03 |  |  |  |
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-04 |  1 | 2015-04-10 |  10 |  0
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-05 |  |  |  |
      1 | mitglied 1 | [2015-01-01,) |  10 | 2015-06 |  |  |  |
      2 | mitglied 2 | [2015-02-01,) |  15 | 2015-02 |  2 | 2015-02-10 |  10 |  5
      2 | mitglied 2 | [2015-02-01,) |  15 | 2015-03 |  2 | 2015-03-10 |  15 |  0
      2 | mitglied 2 | [2015-02-01,) |  15 | 2015-04 |  2 | 2015-04-10 |  15 |  0
      2 | mitglied 2 | [2015-02-01,) |  15 | 2015-05 |  |  |  |
      2 | mitglied 2 | [2015-02-01,) |  15 | 2015-06 |  |  |  |
    (11 rows)
    
    Die Zahlungsmoral im Verein läßt also zu wünschen übrig. Mitglied 1 hat im März nicht gezahl, Mitglied 2 im Feruar 5 EUR zu wenig.

    PostgreSQL, Daterange und so.
     
    Walter gefällt das.
  5. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo akretschmer,

    ja, genau das meine ich. Glaubst Du, wir bekommen das in Access auch irgendwie hin? Fast die komplette Datenbank steht in Access mit allen Mitgliedern, 35 Tabellen mit allen Beziehungen, sämtlichen Formularen mit xUnterformularen und einigen Abfragen, es fehlt nicht mehr viel, dann wäre sie fertig.

    Ich benötige noch Rechnungen und eben die Eingabe der Beiträge und Seminarangebote mit dazu gehörigen Rechnungen, dann wäre ich fertig.

    Natürlich sollte dann auch bei jedem Mitglied noch vermerkt sein, an welchen Aktivitäten er mitmacht und was er schon alles gekauft (z. B. Leinen, Futter usw) hat.

    Kannst Du mir helfen, das alles in Access fertig zu stellen?

    Vielen Dank für Deine Mühe.

    Liebe Grüße
    Hundenanny
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Access? Ich weiß grad mal, wie man das schreibt. Mehr nicht.
     
  7. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo akretschmer,

    schön, dass Du Dich mit dein einfachen Dingen auskennst;););):rolleyes:. Access ist für mich etwas leichter zu verstehen. SQL bringt mich enorm an meine Grenzen. Wenn ich das alles verstanden hätte, wäre die Datenbank in SQL, da ich wesentlich schönere und bessere Bedienungsmöglichkeiten (Formular usw) habe. Auch kann ich die Datenbank besser sichern.

    Es scheitert allerdings schon daran, dass ich bei MySQL schon beim Erstellen einer Datenbank Fehlermeldungen bekomme und ich gar keine neue DB anlegen kann. Ich bekomme nicht heraus, woran das liegt. Ich habe sogar schon MySQL noch mal darüber installiert nichts klappt. Die erste Testdatenbank konnte ich anlegen und seitdem geht nichts mehr.

    MySQL ist doch auch auf Windows-Ebene, oder?

    Ich benötige die DB so dringend und bin am verzweifeln, dass ich es einfach nicht schaffe.

    Vielleicht gibt es ja noch eine Möglichkeit? Was meinst Du?

    Liebe Grüße
    Hundenanny
     
  8. Hundenanny

    Hundenanny Aktiver Benutzer

    upload_2015-4-21_12-15-24.png

    Hallo akretschmer,

    das ist die Meldung, die ich bekomme, deshalb habe ich bei MySQL nicht weiter gemacht. Ich habe keine Ahnung wo der Fehler liegt.

    Außerdem brauch ich doch da noch php und das kann ich gar nicht. Da müsste ich mich auch noch neu einlesen.

    Wenn Du schreibst, das ist nicht schwer, kann ich es nicht verstehen?

    Um die Datenbank in MySQl aufzubauen, würde ich wahrscheinlich mehrfach täglich Hilfe benötigen. Oder was meinst Du?

    Liebe Grüße

    Hundenanny
     
  9. akretschmer

    akretschmer Datenbank-Guru

    Die Meldung kommt von M$SQL, nicht MySQL. Das eine ist von Microsoft, das andere Müll.
     
  10. Distrilec

    Distrilec Datenbank-Guru

    Und das sieht auch einfach danach aus als hätte man keine Schreib-Rechte auf das Verzeichnis? :)
     
  11. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo akretschmar,

    was ist Microsoft und was ist Müll? Wie könnte ich da weitermachen?

    Soll ich da noch etwas neues erstellen?

    Bei Access sehen die Beziehungen jetzt so aus:

    upload_2015-4-21_12-59-39.png
     

    Anhänge:

  12. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo Distrilec,

    wo liegt dann der Fehler, da ich eine test_db erstellen konnte?

    Liebe Grüße

    Hundenanny
     
  13. Hundenanny

    Hundenanny Aktiver Benutzer

    Hallo,

    in dieser Test_DB darf ich alles machen nur nicht umbenennen.

    Liebe Grüße

    Hundennanny
    upload_2015-4-21_13-7-5.png
     
  14. Walter

    Walter Administrator Mitarbeiter

    Du sprichst ständig von MySQL, wie man an den Bidlschirmkopien sieht hast Du aber nicht MySQL (Hersteller Oracle) sondern Microsoft SQL Server laufen. Und das mit dem Müll ist eine Anspielung von akretschmer weil er die Datenbank Mysql nicht mag.
     
    akretschmer gefällt das.
  15. ukulele

    ukulele Datenbank-Guru

    Also in MS-SQL geht das, dort gibt es aber kein generate_series() oder to_char(). Das ist DB-spezifische Syntax und müsste umformuliert werden. Da Access auch von Microsoft ist, geht dort vieles (nicht alles) mit der selben Syntax wie in MS-SQL.

    Wichtig wäre in jedem Fall, das du zu Fehlermeldungen auch immer den Code mit postest.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden