Office: (Office 2016) Einstiegsprobleme und laufende Nummer

Helfe beim Thema Einstiegsprobleme und laufende Nummer in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Profis, hier eine Kurzfassung: 1.: ich suche ein gutes Einsteigerfreundliches Access Tutorial 2.: Sind meine Ansätze in dieser... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von OliGad, 16. April 2020.

  1. Einstiegsprobleme und laufende Nummer


    Hallo liebe Profis,


    hier eine Kurzfassung:

    1.: ich suche ein gutes Einsteigerfreundliches Access Tutorial
    2.: Sind meine Ansätze in dieser Testdatenbank zumindest korrekt?
    3.: Wie muss der VBA-Code aussehen um eine Fortlaufende Vorgangsnummer zu erstellen, die sich bei Jahreswechsel (in der gleichen Tabelle) wieder zurück auf 1 setzt UND wie kann ich diesen Code implementieren?

    Im Anhang findet ihr meine bisherige Arbeit.

    Hier ausführlich, wieso, weshalb, warum:

    Als ich gestern Abend an die Grenzen des Machbaren mit Excel gestoßen bin, habe ich begonnen mich mit Access auseinander zu setzen. Das meiste ist relativ unkompliziert, vieles konnte ich bereits per try and error selbst herausfinden.
    Manche Dinge sind aber einfach zu speziell daher meine erste Frage:

    Kennt jemand ein einsteigerfreundliches Tutorial rund um Access? So wirklich "brauchbare" konnte ich nicht auf anhieb finden. Meistens lande ich bei irgendwelchen Yt Videos. Die sind zwar nich schlecht, jedoch meistens veraltet oder es wird auch viel zu sehr "um den heißen Brei" herum geredet

    :)
     
    OliGad, 16. April 2020
    #1
  2. Hi,
    ich habe deinen Beitrag jetzt nur mal überflogen.
    Bzgl. VBA-Code.
    Es gibt im wesentlichen 3 Möglichkeiten VBA Code unterzubringen
    1.) Klassenmodul des Formulars
    Jedes Steuerelement hat eine bestimmte Anzahl von Ereignissen, die die Ausführung von Code triggern
    2.) Standardmodul welches Datenbank weit zur Verfügung steht. Hier wird Code untergebracht, der an mehreren Stellen von Formularen zum Einsatz kommt. Z.b Funktionen, die an verschiedenen Stellen der DB gebraucht werden.
    3.) Klassenmodule, zum Bauen von eigenen Klassen (Fortgeschrittene)

    Desweiteren gibt es in Access auch "Embbedded Macros" (die kann keiner leiden). Im Unterschied zu Excel heißen die VBA-codierten Funktionen oder Subs nicht Makros.
    Es gibt auch eine Art Trigger in Access, die über Makros realisiert werden (Datenmakros), bei dieser Art des Makros wird auf Tabellenereignisse (z.b. Nach Einfügen) reagiert.
    Der wesentliche Bestandteil eines Datenbanksystem ist natürlich auch SQL. Über Abfragen lassen sich Sichten oder Datenausschnitte maßschneidern bzw. dienen Aktionsabfragen auch der DAtenverarbeitung/Manipulation.

    Die Generierung einer forlaufenden Nummer pro Jahr, ist zunächst mal eine sehr triviale Aufgabe.

    Ich habe nur ganz kurz in deine DB reingeschaut.
    Man gibt dem Anfänger gerne grundsätzliche Regeln mit, die aber meiner Erfahrung nach, nicht unbedingt beherzigt wird.

    Einer davon wäre wohl, einer ID einen sprechenden Namen zu geben z.b. FallListe_ID
    Ein weiterer, Objekten im Namen einen Hinweis auf die Art des Objektes zu geben. z.b. TblFallListe ->manche halten das bei Tabellen für nicht ganz so wichtig
    Tabellen haben Beziehungen untereinander, entsprechend sollte man die im Beziehungsmodell dann auch über referentielle Integrität so einrichten.
    Auf keinen Fall, sollte man seinen Tabellenfeldern Namen mit Sonderzeichen geben (+,-, etc.) und keine mit deutschen Umlauten. Und vor allem keine ! Leerzeichen
    Ein Feld E-Datum oder A-Datum ist tabu.
    Genauso ein Feld "Befund geschrieben von" das ist gruselig :-)

    Access wertet sowas als Minuszeichen, wenn dann nicht zwingend eckig geklammert wird.

    Laufende Nummer (von DonKarl donkarl.com -> gute Seite zum Nachschlagen von häufigen Problemen)
    z.b in einer Abfrage mit Unterabfrage
    Code:
    in deinem Fall, dann halt als weitere Bedingung das Jahr noch mit reinpacken.

    oder als Domänenfunktion
    Code:
     
    fredfred, 18. April 2020
    #2
  3. Ohrkester, 18. April 2020
    #3
  4. Einstiegsprobleme und laufende Nummer

    Nun nein, leider nicht so, dass die Daten einfach so der reihe nach in ein Formular eingetippt werden. Es ist eher so, dass ein Vorgang angelegt wird und in den darauf folgenden Tagen von bis zu 3 Personen (in immer wieder anderer Reihenfolge) angefasst werden (können).

    Die Anwender sind außerdem die tabellarische Ansicht gewohnt und würden eine Maske daher als überflüssig empfinden.

    Kann man natürlich trotzdem einbauen, is nice to have aber kein muss.

    Viel beliebter wird ne Abfrage sein, mit dessen Hilfe ich den Status der Vorgänge überwachen kann.

    Aber ein Schritt nach dem anderen. Ich schau mir gleich mal eure Tutorialvorschläge an.

    Vielen Dank schonmal bis hier hin!
     
    OliGad, 18. April 2020
    #4
  5. Grundsätzlich sind Formulare anzuwenden, um eine geordnete, geführte Dateneingabe zu ermöglichen. (Fast) Nur über Formulare hast du Möglichkeit , die Dateneingabe auf Plausibilität, Datenintegrität zu prüfen bzw. ereignisgesteurert zu agieren.

    Formulare kannst du in der Datenblattansicht/Endlosformular darstellen lassen, dann sieht das aus wie Tabellen. Einem User gibt man niemals Zugriff auf die Tabellen.
    In einer lauffertigen Version, sind dann die ganzen Entwicklerwerkzeuge (z.b. seitliches Menü, der Tabellen, Formulare, Abfrage etc., oberes Ribbon und natürlich auch Zugang zu VBA ausgeblendet, bzw. unterbunden.

    was sich über Formulare gut steuern lässt, da du über Formularfilterung zum gewünschten Datensatz springst und nicht eine Liste von 100 von Einträgen durchforstest, um zum gewünschten zu kommen.
    In einer Front- Backend Aufteilung, hat dann auch jeder Mitarbeiter die Möglichkeit unabhängig voneinander, über eigenes Frontend seine Dateneingaben zu machen.
    In deinen Tabellen gibt es sehr viele ja/nein Felder. Sowas versucht man in Access zu vermeiden.

    Abfragen sind das A und O einer Datenbank.
    Zwangsläufig wirst du wahrscheinlich auch zu einem Suchformular kommen wollen. D.h. ein Formular durch welches bei Vorgaben von beliebigen Kriterien Datensätze selektiert werden.
    Gleich mal hier erwähnt ist das Klassenbasierte Suchformular von Bitsqueezer. Fertiges Formular mit einfacher Handhabung und Anwendung für die individuelle Tabellenstruktur.

    Nachschlagefelder in Tabellen sollte man nicht verwenden !
     
    fredfred, 18. April 2020
    #5
  6. Hallo nochmal zusammen,

    ich hab mich jetzt etwas reingefuchst und die einige Dinge an den Tabellen geändert. Oberflächlich sieht allerdings alles genauso aus wie bislang, daher hab ich vorerst keine neue Datei zur Verfügung. Ich hab lediglich die Feldgrößen angepasst und ein wenig mit Formularen experimentiert.

    Die Formulare kommen an sich sehr gut an, braucht halt etwas Feintuning, aber ich bin zuversichtlich, dass ich da auch was Vernfünftiges draus bauen kann.

    Tatsächlich könnte es sein, dass ich wie fredfred erwähnte ein Formular brauche, dass bestimmte Auswertungen ermöglicht. Sicher ist das allerdings noch nicht, da derzeit geplant ist, einfach die Tabelle/Abfrage etc. zu exportieren und durch ein Marko in Excel eine Auswertung erstellen zu lassen, da es auch eines Diagramms etc. bedarf.

    Jedoch bleibe ich immer wieder an der Frage hängen, welche ich Eingangs erwähnte:

    Wie erstelle ich (am besten auf Tabellenebene) eine fortlaufende Nummer, die immer wieder bei 1 anfängt, wenn ein neues Jahr beginnt?

    Ich brauche nunmal zum vorführen zunächst eine Tabelle, die funktioniert. Wenn das Projekt dann abgeschmettert wird, gut, wenn nicht, kann ich mich immer noch um Abfragen, Formulare und Berichte kümmern.

    Dann macht es auch sinn einen Präfix vor jede Tabelle oder Abfrage zu packen, insbesondere wenn VBA im Spiel ist.

    Womit ich wieder bei dem Thema wäre: die meisten (auch VBA) Lösungen gehen gar nicht auf die Tabellen-Ebene, sondern sind meist schon auf der Formular Ebene. Die wenigen, bei denen das nicht der Fall zu sein scheint, verstehe ich allerdings nicht so gut, da meine Kenntnisse mit VBA dafür meist nicht ausreicht.

    Ich habe ein wenig mit Ausdrücken auf Tabellenebene Experimentiert. Könnte sowas funktionieren?
     
    OliGad, 19. April 2020
    #6
  7. Hallo,
    VBA funktioniert nur im Zusammenhang mit Formularen und Abfragen.
    Wobei für Abfragen nur in Modulen angelegte Funktionen verwendet werden können.
    Auf Tabellenebene ist das nicht sinnvoll, gerade in einer Mehrbenutzerumgebung. Wie es geht hat FredFred schon in #2 beschrieben. Diese Vorgangsnummer wird nicht in der Tabelle gespeichert, es wird nur die reine LfdNr gespeichert. Die Vorgangsnummer wird dann in einer Abfrage zusammengesetzt.
    Code:
    Diese Abfrage kann genau wie eine Tabelle verwendet werden.
    Du solltest auch keine berechneten Felder in Tabellen verwenden, das ist nicht zu empfehlen, auch wenn es geht.
    Berechnungen werden in Abfragen gemacht, die - wie gesagt - genau wie eine Tabelle verwendet werden können.

    Noch ein Hinweis zur Mehrbenutzerumgebung:
    Du willst ja Access mit mehreren Usern nutzen. Dazu ist es unerlässlich, die Datenbank aufzuteilen in Backend (nur die TAbellen) und Frontend. Das Frontent kann nicht auf dem Server liegen, das braucht jeder User auf seinem eignen PC. Das bedeutet, jeder User braucht auch Access (mindestens die Runtime).
    Die Tabellen des Backends werden in den Frontends nur verknüpft.
    Kein User sollte direkten Zugriff auf die Tabellen haben.
    Kontrollierter Zugriff auf die Daten kann nur über Formulare erfolgen.
     
    gpswanderer, 19. April 2020
    #7
  8. Einstiegsprobleme und laufende Nummer

    Hallo nochmal,

    ok, vielen Dank. Also wenn ich nun ein entsprechendes Formular erstellt habe (ich habe einfach mal eins automatisch generieren lassen, ob das so hübsch is, is auch erstmal egal): wie bekomm ich die Berechnung jetzt da rein? So wie ich das sehe kann man da nur das Layout anpassen.

    Zum Thema: "Der User sollte keinen Zugriff auf die Tabelle haben"

    Ursprünglich war das alles in einer geteilten Excel Tabelle. Der User konnte also im zweifel sogar die Formeln zerschießen. Hier in Access wäre das deutlich schwieriger, also weniger schlimm, wenn er auf die Tabelle direkt zugriff hätte.

    Aber auch dafür hab ich bereits die Lösung: Tabelle einfach als tabellarisches Formular anzeigen < fertig.

    Bleibt die Frage nach der Nummer: Wie bekomm ich die denn da jetzt berechnet? Ich kann nur das Layout bearbeiten nicht den tatsächlichen Inhalt. Außerdem kann ich bereits berechnete Tabellenfelder nicht überschreiben (was ich sehr schön finde). Ist dem immer noch so, wenn ich die Berechnung des Feldes erst an dieser Stelle machen lasse? Nicht, dass jemand meine Aufwändig errechnete Vorgangsnummer einfach überschreiben kann.
     
    OliGad, 19. April 2020
    #8
  9. Hallo,
    Natürlich kannst Du auch den Inhalt bearbeiten. Du kannst im Formular auch ein berechnetes Feld anlegen. Ein solches Feld kann auch nicht durch den User geändert werden, das ist ausgeschlossen.

    Was hast Du denn bereits versucht, die LfdNr zu erzeugen ?
    In #2 gab es doch Hinweise wie das geht.

    In einer Mehrbenutzerumgebung sollte es für den User nicht möglich sein auf die Tabellen zuzugreifen. Es sollte die Tabellen noch mal direkt einsehen können.
    Hast Du meine Hinweise zu Backend und Frontend gelesen ?
    Bist Du Dir über den Aufwand dazu im Klaren ?
     
    gpswanderer, 19. April 2020
    #9
  10. Hallo Klaus,

    danke nochmal, dass du dir die Zeit nimmst.

    Ich habe wie bereits Eingangs erwähnt, gerade erst mit Access begonnen. Wie Aufwändig das ganze am Ende ist, kann ich noch gar nicht abschätzen.
    Am Ende kann ich es aber nicht testen, wenn ich unterm Strich keine funktionierende DB hab.

    Also was ich bislang versucht habe, war wie man in meiner hochgeladenen DB sehen konnte, per Ausdruck eine fortlaufende Nummer mit der Jahreszahl zu verbinden, was ja soweit auch geklappt hat.

    Nach dem Hinweis, dass das auf Tabellenebene keinen Sinn hat (wäre nett, wenn man mir auch sagt, warum es keinen Sinn macht) bin ich jetzt dazu über gegangen, es per Ausdruck in eine Abfrage einzubauen, da ich auf einer solchen Abfrage basierend, dann die nötigen Formulare erstellen möchte.

    Ich experimentiere da im Moment mit DomMax und DomAnzahl um die Anzahl der Datensätze zu ermitteln, aber so wirklich auf einen grünen Zweig bin ich damit noch nicht gekommen. Bin ich damit auf dem richtigen Weg?

    Ob sich der Aufwand mit Backend und Frontend am ende Lohnt, entscheide ich nicht. Wie gesagt, ich brauche erstmal etwas vorzeigbares, was diese unsägliche Exceltabelle ablösen kann.

    Wenn ich ein zufriedenstellendes Ergebnis habe und das GO bekomme, das umzusetzen, beschäftige ich mich gern ein halbes Jahr damit. Wenn der Chef am Ende sagt, dass ihm die Lösung nicht zusagt, hätte ich ein halbes Jahr daran verschwendet.
     
  11. Servus OliGad,
    ich erinnere nur an #3
    Access muss man systematisch lernen und kann es nicht wie eine Exceldatei
    mal so ein bisschen zu betreiben versuchen.
    Du bist schon viel zu verliebt in Access-Komfortversuche, ohne ein sauberes Tabellenmodell bisher aufzeigen zu können.
    Aber man soll die "Jungen" natürlich ihre Erfahrung machen lassen.
    Wenn sie dabei aber begleitende Empfehlungen ignorieren,
    müssen sie halt ohne oder nur mit wenig weiterer Hilfe durch das Problem hindurch.
     
    Ohrkester, 19. April 2020
    #11
  12. Hallo Ohrkester,

    mir ist bewusst, dass man etwas am besten von vorn bis hinten strukturiert lernt.

    Aber: Dies ist eine besondere Situation, ich habe keinen Lehrer, ich habe auch keine Möglichkeit mir unmittelbar einen zu beschaffen (Corona Virus zwingt mich zum Home Office, eine Schulung ist derzeit denkbar schwierig).

    Selbst die Lieferzeit für ein Buch bei Amazon liegt Gegenwärtig bei ca. einer Woche, weil die bevorzugt Lebensmittel und wichtige Utensilien verschicken, also mal eben ein Lehrbuch kaufen ist nich!

    Dazu kommt: hier ist niemad gezwungen mir zu helfen.

    Ich wäre euch allen daher sehr Dankbar, wenn ihr einfach meine Fragen beantwortet. Wenn ihr eure Zeit hingegen für zu Wertvoll erachtet um sie in mein, in euren Augen sinnloses, unterfangen zu investieren, kann, will und werde ich euch nicht dazu zwingen.

    Ich bin im Augenblick auf Yt, als Lehrmeister angewiesen, wenn euch Strukturen wie sie dort gelehrt werden nicht ausreichen, gibts zwei Möglichkeiten: nennt mir Konkret eine bessere Möglichkeit, statt Hinweise zu streuen, denen ich im Moment nicht nachgehen kann ODER gebt beantwortet die Frage, die ich stelle und lasst mich anschließend mit den Problemen kämpfen, die daraus resultieren.

    Darüber hinaus: ich denke mir die Struktur der Datenbank nicht aus! Ich hab da vorgaben. Wenn das so nicht Umsetzbar ist gibts auch zwei Möglichkeiten: sagt mir, dass es unmöglich ist oder noch besser, sagt mir WIE es geht. Dann kann ich dem Chef sagen: das geht nur wenn ich das so und so mache.

    Vielen Dank!
     
  13. Einstiegsprobleme und laufende Nummer

    Hi,
    es spielt für einen Export nach Excel keine Rolle ob Daten in einem Formular aufbereitet werden.
    Im Gegenteil über das Formular kannst den Expert mit Kriterienvorgaben starten.
    Frage ist ob das überhaupt notwendig ist. Diagramme gibt es auch in Access.


    Daten müssen datenbank gerecht (normalisiert) aufbereitet sein.


    Bzgl. deiner Laufnummer:
    1.) auf Tabellenebene, dürfte schwierig werden, wenn die LfdNr jahresabhängig ist.
    Chance gäbe es vielleicht mit einem Datenmakro. Kenn mich da aber selbst nich gut mit aus, nur letztens mal geschaut, Problem man kann per Datenmakro keine Funktion über das Datenmakro aufrufen. Möglicherweise gibt es da einen workaround, aber wie erwähnt habe mich nie mit Makros ("kann keiner leiden") und auch nicht mit Datenmakros beschäftigt. Vielleicht hat eine anderer hier ERfahrung mit Datenmakros.
    2.) auf Formularebene ist das einfach, wie schon im ersten Beitrag erwähnt.

    Im Anhang mal deine DB.
    Im FRmTest wird anhand einer HIlfsliste eine LFD generiert (ohne Berücksichtigung des Jahres). Code dazu im Modul mdlLfd. Hatte vergessen, dass du das Jahr brauchst, habs halt drin gelassen.
    im FRmTest1, wird das E_Datum berücksichtigt.

    Der Code im Ereignis (AfterInsert):
    Code:
    D.h. gibst du im E_Datum ein Datum ein, springst auf die nächste Zeile wird die LFD-Nr geschrieben

    Die Feldnamen habe ich teilweise korrigiert, bzw. den gewünschten Anzeigename in die Beschreibung des Feldes geschrieben.
    Beziehungen kannst du dir auch mal anschauen. Habe ich exemplarisch für die Mitarbeiter gesetzt.
     
    fredfred, 19. April 2020
    #13
  14. Kleine Abwandlung:
    Gibst du kein Datum in E_Datum ein, wird das heutige Datum geschrieben.

    Code:
     
    fredfred, 20. April 2020
    #14
  15. Hallo,

    Das ist ja so nicht richtig. Du kannst jederzeit ein EBook von hier herunterladen:
    Access 2016 - Das umfassende Handbuch
    Da kann man sich zumindest die Grundlagen anlesen.
    Wenn es Vorgaben für die Datenstruktur gibt, stellt sich die Frage, ob diese für Excel oder eine Datenbankanwendung gedacht sind und ich nehme mal an, daß der Chef dir nicht das Datenmodell vorgegeben hat. Dazu bedarf es dann doch ein wenig Einarbeitungszeit und Grundkenntnisse, die man nicht mal "eben so" hat Das wäre ein bißchen viel verlangt.

    Gruß Ulrich
     
    knobbi38, 20. April 2020
    #15
Thema:

Einstiegsprobleme und laufende Nummer

Die Seite wird geladen...
  1. Einstiegsprobleme und laufende Nummer - Similar Threads - Einstiegsprobleme laufende Nummer

  2. Dokumente und Blatt umbenennen

    in Microsoft Word Hilfe
    Dokumente und Blatt umbenennen: Ich lade mir jeden Tag csv-Dateien von meiner Bank herunter. Diese sind mit Datum versehen, also die Datei selbst und das erste Blatt, z.B. "Konto_13.02.2024". Wenn ich ein Makro erstelle, in dem...
  3. Laufender Saldo mit Leerzellen

    in Microsoft Excel Hilfe
    Laufender Saldo mit Leerzellen: Hallo Leute Ich brauche eure Hilfe bei einem Kontoblatt mit laufendem Saldo, das zwischen den Buchungen Leerzellen aufweist. Meine Tabelle hat eine Haben-, eine Soll- und eine Saldospalte. Nun...
  4. Laufender interner Zinsfuß

    in Microsoft Excel Tutorials
    Laufender interner Zinsfuß: Datum Zahlungen Kurswert intZins 01.02.2000 -2000 03.03.2001 50 2102 6,98% 6,98% 02.02.2002 50 2096 4,82% 4,82% 04.03.2003 50 2219 5,77% 5,77%...
  5. Berechnen einer laufenden Summe in Excel

    in Microsoft Excel Tutorials
    Berechnen einer laufenden Summe in Excel: Berechnen einer laufenden Summe in Excel Excel 2019 Excel 2016 Excel 2019 für Mac Excel 2013 Excel 2010 Excel 2007 Excel 2016 für Mac...
  6. Berechnen eines laufenden Guthabens

    in Microsoft Excel Tutorials
    Berechnen eines laufenden Guthabens: Berechnen eines laufenden Guthabens Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Mehr... Weniger...
  7. Bleiben Sie immer und überall auf dem Laufenden mit der Patientenversorgung.

    in Microsoft Teams Tutorials
    Bleiben Sie immer und überall auf dem Laufenden mit der Patientenversorgung.: Bleiben Sie immer und überall auf dem Laufenden mit der Patientenversorgung. SharePoint in Microsoft 365 Microsoft Teams Mehr... Weniger...
  8. Jemanden mit Teams Lizenz in eine laufende Besprechung dazu holen

    in Microsoft Teams Hilfe
    Jemanden mit Teams Lizenz in eine laufende Besprechung dazu holen: Hallo zusammen, wie kann ich jemanden aus der Organisation in eine laufende Besprechung dazu holen, ohne im vorher einen Teilnahme-Link zu schicken? Viele Grüße Saskia...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden