collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 77
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14132
  • stats Beiträge insgesamt: 68386
  • stats Themen insgesamt: 9210
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Ereignisprozedur in Endlosformular  (Gelesen 1718 mal)

Offline Baeny

  • Newbie
  • Beiträge: 10
Ereignisprozedur in Endlosformular
« am: Februar 19, 2018, 20:07:05 »
Liebe Forummitglieder
Ich bin neu im Access und erstelle ein Journal für meinen privaten Haushalt. Aus der Access-Datenbank erstelle ich dann im Excel mit Pivot-Tabellen praktische Auswertungen. Das Journalformular funktioniert bis auf die Kontierungsangaben. Nach Eingabe der Kontonummer im frmJournal.Kontonr, respektive beim Übergang zum nächsten Feld "Konto", sollten die Felder frm.Journal.Konto und frm.Journal.Kategorie als Text automatisch von der Abfrage AbfKonto_Kat, den der Kontonummer entsprechenden Text übernehmen.
 Im Fomular habe ich im Feld "Konto" im Eigenschaftsblatt den Auswahltyp "Kombinationsfeld". Datensatzherkunft ist AbfKonto_Kat, wo beide Texte enthalten sind. Im Tab Ereignis/BeimKlicken habe ich die folgende Prozedur integriert:
_________________________________________________ _
Option Compare Database
Option Explicite
Private Sub Konto_Click()
Update tblJournal
INNER JOIN tbl AbfKonto_Kat
ON tblJournal.Kontonr = AbfKonto_Kat.IDKonto
Set tblJournal.Konto = AbfKonto_Kat.Konto
Set tblJournal.Kategorie = AbfKonto_Kat.Kategorie
End Sub
_________________________________________________
Da ich das erste Mal nach 20 Jahren wieder etwas mit Access zu tun habe, fange ich praktisch wieder neu an. Wenn ich versucht habe die Prozedur auszuführen, hat sich im Formular nichts verändert.
Mit freundlichen Grüssen
Baeny
« Letzte Änderung: April 05, 2018, 12:09:01 von Baeny »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #1 am: Februar 19, 2018, 20:11:26 »
Hallo,
wenn man mit einem Kombifeld etwas auswählt, wird der Fremdschlüssel der Zieltabelle gefüllt.
Weitere Felder des Kontos zu übertragen ist überflüssig.
Es wird auch nicht die Kontonummer übertragen, sondern die IDKonto.

Für das Schreiben geänderter/angelegter Daten in Tabellen benötigt man im Regelfall keine einzige Aktualisierungsabfrage. In der ganzen Datenbank nicht. Mir scheint daher, dass Du da eher ein grundsätzliches Problem hast.

Zeige mal ein Bild des Beziehungsfensters, damit man der Sache auf den Grund gehen kann. Auf dem Bild sollte man alle Tabellen sehen und die Tabellen so groß dass man alle Felder sieht.
« Letzte Änderung: Februar 19, 2018, 20:31:45 von MzKlMu »
Gruß
Klaus
 

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular
« Antwort #2 am: Februar 19, 2018, 21:05:39 »
Hallo Mz
Beiliegend die Datenbankbeziehungen.
Mit freundlichen Grüssen
Baeny
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #3 am: Februar 19, 2018, 21:37:36 »
Hallo,
ich fürchte, das kannst Du alles in die Tonne treten. Da gibt es keine einzige richtige Beziehung. Eine Beziehung läuft immer über den Primärschlüssel und in der anderen Tabelle ein extra Feld als Fremdschlüssel. Niemals über den Klartext. Das ist ja der Sinn eines Primärschlüssels.
Im Anhang ein Bild mit einer Beziehung. Das gilt dann sinngemäß für die anderen Beziehungen auch. Für alle Beziehungen stellt man grundsätzlich den Typ 1 ein. Das ändert man bei Bedarf nur in Abfragen.
Was ist eigentlich der Unterschied zwischen tblKontierung und tblKonto ?
Die Tabellen für Monat und Jahr sind überflüssig, die Felder auch. Nimm statt dessen ein Datum. Das alles bedarf der gründlichen Überarbeitung, so kannst Du nicht weiter machen.

PS:
Lade Bilder bitte im Forum hoch.
« Letzte Änderung: Februar 19, 2018, 22:57:40 von MzKlMu »
Gruß
Klaus
 

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular
« Antwort #4 am: Februar 20, 2018, 19:06:36 »
Hallo
Die alte Datei ist nun in der Tonne. Eine neue DB aufgebaut. Siehe Beilage. Die Verknüpfungen kann ich jedoch nicht richtig herstellen, denn ich habe es noch nicht begriffen, das Endlosformular richtig zu machen. Zu sagen ist noch, dass ich für meine Zwecke die Eingaben Jahr und Monat so machen möchte wie gehabt im Excel, wo ich die Pivot-Tabellen nach Übertrag der Daten vom Access behandle. Die Kontoangaben habe ich noch nicht ins Formular übernommen. Nur Jahr und Monat. Sobald ich diese jedoch verknüpfen möchte mit der Journaltabelle, so kommt referentieller Integrität angeklickt, die Meldung "dieselbe Anzahl an Feldern mit denselben Datentypen erforderlich". Dies stimmt wohl. Aber im Journal will ich den Datentyp von Jahr und Monat als Text. Das System möchte jedoch Fremdschlüssel mit Primärschlüssel verbinden. Was soll ich da machen??
Die neu aufgebaute Datenbank liegt als Bild bei.
Gruss
Baeny
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #5 am: Februar 20, 2018, 19:30:03 »
Hallo,
Zitat
Aber im Journal will ich den Datentyp von Jahr und Monat als Text.
Wieso Text ? beides sind Zahlen, mit Text hast Du mindestens beim Monat keine sinnvolle Sortierung mehr.
Und warum die in die Tabelle sollen ist mir auch unklar, hast Du kein Datum im Journal ? Buchungen ohne Datum machen doch keinen Sinn ?
Zitat
Das System möchte jedoch Fremdschlüssel mit Primärschlüssel verbinden.
So ist es ja auch richtig. In die Das System möchte jedoch Fremdschlüssel mit Primärschlüssel verbinden. So ist es ja auch richtig. Der Fremdschlüssel ist mit einem Autowert als PS immer eine Zahl (Longinteger). Kontonr, Kat, Kto haben im Journal nichts zu suchen. Ins Journal kommt nur ein Fremdschlüssel zum Konto, sonst keine Felder.
Zitat
Zu sagen ist noch, dass ich für meine Zwecke die Eingaben Jahr und Monat so machen möchte wie gehabt im Excel,
Vergiss Excel, Access erfordert eine völlig andere Vorgehensweise.

Das Ganze ist immer noch ziemlich unbrauchbar.
Im Anhang mal ein Bild wie das im einfachsten Fall auszusehen hat.
« Letzte Änderung: Februar 20, 2018, 19:39:11 von MzKlMu »
Gruß
Klaus
 

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular
« Antwort #6 am: Februar 20, 2018, 19:58:49 »
Hallo Klaus
Wieso Excel? Solche Auswertungen, die ich möchte und auch schon realisiert habe mit Power Pivot, kann Access nicht. Auf der anderen Seite bietet Access für das Handling der Daten viele Vorteile, wo Excel sehr umständlich ist. Apropos Datum: für meine private Buchhaltung genügt mir Monat und Jahr für die Ausgaben und Einnahmen, mindestens vorläufig, wie ich es im Excel bisher handhabte. Wie ich nun mit Deinem DB-Vorschlag umgehen werde, brauche ich jetzt etwas Zeit und eine Pause.
Jedoch vielen Dank für die bisherige Hilfe. Vielleicht werde ich später wieder darauf zurückkommen, wenn andere Probleme anstehen. Jedenfalls bleibe ich bei Access, welches so viele Möglichkeiten bietet.
Mit freundlichen Grüssen
Baeny
 
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #7 am: Februar 20, 2018, 20:17:02 »
Hallo,
Zitat
Zu sagen ist noch, dass ich für meine Zwecke die Eingaben Jahr und Monat so machen möchte wie gehabt im Excel,
Das halte ich für einen Fehler. Speicher das Datum, da lässt sich problemlos Jahr und Monat ableiten.
Eine Datenbank erfordert für eine vernünftige Arbeitsweise einen normalisierten Aufbau. Die Exporte macht man dann mit Abfragen die die Tabellen entsprechend den Anforderungen für Excel umstrukturieren.
Außerdem, glaube ich dass Du Deine Auswertungen bei korrektem Aufbau auch direkt in Access machen kannst.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Baeny

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1965
Re: Ereignisprozedur in Endlosformular
« Antwort #8 am: Februar 21, 2018, 13:13:16 »
Hallo,
Zitat
mindestens vorläufig
Das impliziert doch, dass es später einmal anders sein könnte.
Warum dann also umbauen, wenn's doch gleich ein Datum sein kann.
Folge Klaus' Rat und verwende ein komplettes Datum. Damit lässt sich
alles machen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular/Nachlagefelder
« Antwort #9 am: April 04, 2018, 12:43:13 »
Hallo Ekkehard und Klaus
Inzwischen habe ich am Modell weiter gebastelt und bin etwas weitergekommen, aber wegen den Nachlagefeldern, die ich beim Erfassen im Endlosformular praktisch fand, beim Export der Tabelle ins Excel auf ein neues grosses Problem gestossen. Ich bin dann bei DBWIKI auf die Nachteile der Nachschlagefelder gestossen. Jetzt weiss ich nicht mehr weiter, da im Excel, wo ich die Pivottabellen sehr schätze und davon nicht abgehen will, nur die Zahlen der Schlüsselfelder transportiert werden. Auf diese Lösung bin ich aufgrund des Nordwind-Beispiels gekommen. Vom Endlosformular möchte ich auch nicht weggehen. Betreffend Datum möchte ich sagen, dass ich dies auch noch belassen habe, da mir meine Lösung keine weiteren Probleme verursachte. Bei den Nachschlagefeldern Kontobezeichnung und Kategorie kann ich mit der Kontonummer Eingabe die Texte in der Tabelle speichern und diese werden als Texte dort angezeigt, jedoch beim Transportieren ins Excel nicht mehr. Ein weiteres Problem ist auch noch, dass ich wegen den Nachschlagefeldern keine Standartwerte mehr benutzen kann.
Im Anhang sende ich mein komplettes Modell mit einigen realistischen Journalbuchungen zum besseren Verständnis. Bin bereit, allenfalls auch Makros von Access zu verwenden, wenn das hilft, schlimmstenfalls auch VBA.
Besten Dank für Eure Hilfe im voraus

Baeny
« Letzte Änderung: April 04, 2018, 16:22:05 von Baeny »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #10 am: April 04, 2018, 13:30:10 »
Hallo,
wirf die Nachschlagefelder raus ohne Wenn und Aber, Du hast dadurch nicht die geringsten Nachteile. Nachschlagefelder sind als Kombinationsfelder nur in Formularen sinnvoll. In Tabellen haben die nicht zu suchen.
In der Tabelle werden auch nicht die Texte gespeichert, das kriegst Du nur vorgegaukelt. In der Tabelle steht die Zahl, wie Du ja beim Export merkst.
Für den Export verwendet man eine Abfrage die alle relevanten Tabelle mit den Verknüpfungen enthält. Dann nimmt man die Felder in die Abfrage auf die man für den Export braucht. Also nicht die Schlüsselfelder, sondern die Klartextfelder. Und dies Abfrage wird exportiert.
Zitat
Ein weiteres Problem ist auch noch, dass ich wegen den Nachschlagefeldern keine Standartwerte mehr benutzen kann.
Aber natürlich kannst Du auch dann Standardwerte benutzen, es muss nur die Schlüsselzahl als Standardwert verwendet werden.
Zitat
Betreffend Datum möchte ich sagen, dass ich dies auch noch belassen habe,
Das halte ich für einen groben Fehler, Buchungen sollten mit Datum gebucht werden, alles andere ist Krampf.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Baeny

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1965
Re: Ereignisprozedur in Endlosformular
« Antwort #11 am: April 04, 2018, 14:31:24 »
Hallo,
In der Zwischenzeit hat Klaus ja schon geantwortet, und es ist eigentlich
genau das, was ich auch anmerken wollte.
Ich habe es dir mal (ohne in die Tiefe zu gehen*) ) in der o.a. Zeit zurecht
geschustert.
gruss ekkehard

*) Indices, Gültigkeiten usw.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Baeny

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular
« Antwort #12 am: April 04, 2018, 16:50:14 »
Hallo Beaker, Klaus
Herzlichen Dank für Eure prompten Antworten, welche meinem Weitermachen sicher helfen werden, so wie die überarbeitete DB von Beaker mit den neuen Beziehungen aussieht. Den Import in die Excel Powerpivottabellen werden ich noch testen. Zuerst muss ich noch die Kategoreinamen in der Abfrage anzeigen lassen. Diese fehlen noch.
Vorläufig Besten Dank
Baeny
 

Offline Baeny

  • Newbie
  • Beiträge: 10
Re: Ereignisprozedur in Endlosformular
« Antwort #13 am: April 05, 2018, 12:06:16 »
Hallo Beaker
Bis auf eine Fehlermeldung klappte alles picobello. Die Query brachte ich supereinfach und schnell zur Exceltabelle. Bei der KontoKategorie musste ich noch die Beziehungen ergänzen. Aber das Wort "txtKategorieName" stammt nicht von mir, was genau die Fehlermeldung beim Oeffnen des Formulars, und beim Versuch eine Neueingabe zu machen, verursachte. Siehe Anhänge. Besten Dank für Fehlerbehebung im voraus.
Gruss
Baeny
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7503
Re: Ereignisprozedur in Endlosformular
« Antwort #14 am: April 05, 2018, 12:23:38 »
Hallo,
der Code zur Zuweisung der Kategorie ist überflüssig. Die Kategorie zeigt man über eine Abfrage direkt an.
Geänderte DB anbei.

Die Nachschalgefelder habe ich mal einfach entfernt, Du hast es ja trotz mehrfachen Hinweisen nicht gemacht.
Die ID für das Jahr in der Jahrestabelle ist nicht notwendig. Du kannst Die Jahreszahl direkt als ID nehmen. Und in der Monatstabelle ist das Textfeld überflüssig, den Monatsnamen kann man über die Zahl direkt anzeigen. Dann kannst Du auch ohne Krücken direkt richtig sortieren.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Baeny

 

Ereignisprozedur per VBA ändern

Begonnen von cyberchrisBoard Formular

Antworten: 11
Aufrufe: 7170
Letzter Beitrag Juni 09, 2011, 17:03:17
von bahasu
Speichern Datensatz per Ereignisprozedur erzwingen

Begonnen von joepaulBoard Formular

Antworten: 2
Aufrufe: 1320
Letzter Beitrag Januar 22, 2012, 16:47:37
von joepaul
[Access 2003] Ereignisprozedur beim öffnen der Datenbank starten

Begonnen von Fabi2011Board Access-Hilfe

Antworten: 2
Aufrufe: 2601
Letzter Beitrag Juli 03, 2012, 14:05:26
von Fabi2011