Office: (Office 2003) Back/Front-End und Benutzerverwaltung

Helfe beim Thema Back/Front-End und Benutzerverwaltung in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich verstehe deine Beschreibung und diese Idee ist gut. Bisher habe ich es jetzt mit Code: Form_BeforeUpdate: Me!txtDeineNummer =... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Morphe, 20. Oktober 2009.

  1. Back/Front-End und Benutzerverwaltung


    Ich verstehe deine Beschreibung und diese Idee ist gut.

    Bisher habe ich es jetzt mit

    Code:
    gemacht. Das gefällt mir bisher ganz gut und funktioniert auch.

    Oder meint ihr es kann da auch zu Komplikationen kommen?
     
  2. Es ist theoretisch denkbar, dass diese Formel bei absolut gleichzeitiger Neuanlage von Sätzen die gleiche Ziffer zurückgibt. Aber dann würde der Primärschlüssel verletzt, was die DB auf jeden Fall merkt. *Smilie Da gibts jedenfalls kein Vertun.
     
    Atrus2711, 25. Oktober 2009
    #17
  3. Hallo
    ich verstehe es nicht so Richtig *frown.gif*
    gibt das

    Form_BeforeUpdate:
    Me!txtDeineNummer = NZ(Dmax("Nummer","Tabelle") ) +1

    den auch den "Ersten ungelesenen Beitrag anzeigen"
     
    Lanz Rudolf, 26. Oktober 2009
    #18
  4. Back/Front-End und Benutzerverwaltung

    Hi,

    Es funktioniert leider doch nicht ganz so.

    Wenn ich einen neuen Datensatz erstelle passt alles soweit!

    Nur wenn ich in dem Datensatz jetzt etwas ändern muss über das Formular und ich dann speichere, erstellt es wieder eine neue Nummer. Es soll aber bei einer Veränderung die alte Nummer behalten!

    wo liegt da der Fehler?
     
  5. Hi,

    BeforeUpdate schlägt auch dann zu. Daher der Name *Smilie

    Ich hab kein 2003 hier und auswendig weiß ich es nicht: gibt es bei dir das Ereignis Form_BeforeInsert im Formular? Dann verschieb den Code da hinein.

    Ansonsten müsste man im Form_BeforeUpdate bleiben und anhand von Me.NewRecord unterscheiden, ob der aktuelle Datensatz ein neuer ist ist oder nicht, und die Nummernvergabe dann halt nur bei neuen Sätze anstoßen.
     
    Atrus2711, 26. Oktober 2009
    #20
  6. Form_BeforeInsert ist vorhanden.

    Beim ersten Test hat es funktioniert *Smilie Super Sache.


    Was genau macht BeforeInsert? Warum funktioniert da das Bearbeiten des Datensatzes?
     
  7. BeforeInsert ist eines von vielen Ereignissen im Formular.

    Es wird ausgelöst, wenn du einen neuen Datensatz anlegst (genauer: unmittelbar, bevor der Satz gespeichert würde). Stell dir das wie einen Wachhund vor, der speziell auf diesen Vorfall abgerichtet ist; wenn es eintritt, gibt der Wachhund Laut: *wau*. Und statt eines Wau kannst du da halt irgendwas Sinnvolles unterbringen.

    Warum nicht? Wenn du es nicht verboten hast, ist ein Formular grundsätzlich erstmal offen, d.h. es erlaubt Neueingaben, Änderungen und Löschungen. Entsprechende Ereignisse gibt es da auch (sogar viele), und wenn du Code hast, der darauf reagiert, kann da eine ganze Kaskade von Aktion losgetreten werden.

    Schau dir mal im VBA die Ereignisse von Form an. Selbst wenn du als Benutzer gar nichts machst, tritt ein Ereignis ein: Timer, das reagiert auf Zeitablauf. Im Prinzip ist der ganze Computer nur eine Ereignisverarbeitungsmaschine: die meiste zeit sitzt der Prozessor rum und macht gar nichts... bis ein Ereignis kommt: Benutzereingabe, Anforderung von Netzwerktraffic, Ereignisse von Programmen, ...
     
    Atrus2711, 26. Oktober 2009
    #22
  8. Back/Front-End und Benutzerverwaltung

    eine sehr nette, verständliche erklärung *Smilie

    Das habe ich soweit verstanden.

    Nur warum wird bei BeforeUpdate jedesmal (also auch beim Bearbeiten des Datensatzes) eine neue Nummer angelegt und bei BeforeInsert nur beim erstmaligen erstellen des Datensatzes?
     
  9. Diese Ereignisse reagieren halt auf unterschiedliche Auslöser.
    • BeforeUpdate reagiert auf jedes Datensatzspeichern - egal, ob das eine Änderung oder eine Neuanlage war.
    • BeforeInsert reagiert auf das Neueinfügen. Beim Ändern vorhandener Werte bleibt dieser Wachhund stumm.

    Du hast quasi den falschen Hund gesattelt. *Smilie

    Der nervigste Kläffer ist übriger der Hund Form_Timer, wenn er ein Bell-Intervall von 1 hat. Der bellt 1000x in der Sekunde.... *Smilie

    Es ist also wichtig, die richtigen Ereignisse zu wählen. Sonst kriegt man Dinge nicht mit, bzw. wird von ihnen zugeschüttet.

    Ich bin übrigens eh Katzenfreund *Smilie
     
    Atrus2711, 26. Oktober 2009
    #24
  10. Ich muss diesen Thread leider nochmal hoch holen.

    Und zwar habe ich ja jetzt die automatische nummernvergabe in "beforeInsert" gesetzt.

    Aber ich glaube, dass die Nummer nicht vor dem abspeichern des Datensatzes generiert wird, sondern wenn ich auf "neuen Datensatz" erstellen gehe und dann im ersten Eingabefeld im Formular etwas eingebe.

    Ich hab nämlich jetzt das Problem, dass manchmal eine doppelte Nummernvergabe vorkommt. Ich weiß aber nicht genau wie und wann.
    Wie kann ich das vermeiden?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. Hi,

    lass die Nummer erst beim speichern ermitteln.

    BeforeInsert also den Max. alten Wert ermitteln, dern Wert +1 als aktuellen Wert nehmen und abspeichern.
     
    Atrus2711, 12. November 2009
    #26
  12. beforeInsert habe ich ja jetzt schon. Aber da ermittelt es den Wert wenn ich im ersten Eingabefeld des Formulars etwas eintippe und nicht beim klick auf "speichern"
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  13. Back/Front-End und Benutzerverwaltung

    Hupps. Das hatte ich falsch im Kopf. Dann halt AfterInsert.
     
    Atrus2711, 12. November 2009
    #28
  14. Also AfterInsert würde passen. Es erstellt die Nummer bei abspeichern.

    Allerdings kommt jetzt wenn ich auf Speichern klicke (button mit "DoCmd.RunCommand acCmdSaveRecord" ) der Fehler

    Gespeichert wird der Datensatz aber und die Nummer wird auch erstellt.

    Wenn ich bei dem Fehler auf debuggen gehe, verweist es mich auch die Zeile "DoCmd.RunCommand acCmdSaveRecord"
     
  15. Hi,

    nimm statt DoCmd.RunCommand acCmdSaveRecord die Alternative Me.Dirty = False. Damit wird das Speichern nur erzwungen, wenn es noch was zu speichern gab.
     
    Atrus2711, 12. November 2009
    #30
Thema:

Back/Front-End und Benutzerverwaltung

Die Seite wird geladen...
  1. Back/Front-End und Benutzerverwaltung - Similar Threads - Back Front End

  2. Datenbank oder Objekt ist schreibgeschützt.

    in Microsoft Access Hilfe
    Datenbank oder Objekt ist schreibgeschützt.: Hallo zusammen, neuerdings kommt beim Versuch eine Excel-Liste als Tabelle zu importieren folgende Meldung: "Aktualisieren nicht möglich; Datenbank oder Objekt ist schreibgeschützt." Weder FE noch...
  3. Ein Back Button erstellen

    in Microsoft Excel Hilfe
    Ein Back Button erstellen: Hallo zusammen!! Bin neu hier aber nicht ganz neu was Excel angeht.Trotzdem hab ich eine simple Frage für einen Profi von Euch. Und zwar will ich einen Button erstellen der immer zu dem...
  4. Front- und Backend verknüpfen/verlinken 64-bit

    in Microsoft Access Hilfe
    Front- und Backend verknüpfen/verlinken 64-bit: Hallo Forum, habe eine Anwendung, die in Front- und Backend geteilt ist, von 32-bitt auf 64-bit umgeändert. Da das Office (Access) nun auch auf 64bit ist. Problem ist es nun, das ich es nun nicht...
  5. Verschiedene Variablen für verschiedene Front Ends

    in Microsoft Access Hilfe
    Verschiedene Variablen für verschiedene Front Ends: Hi, ich habe für verschiedene Standorte ein eigenes Frontend. Einzig und allein die in VBA genutzen Pfade für das öffnen/speichern von importen/exporten sollen sich unterscheiden. Diese habe ich...
  6. Back-up

    in Microsoft Outlook Hilfe
    Back-up: Ich verwende Outlook 2003. Von den PST-Dateien mache ich regelmässig Sicherungskopien. Nun musste ich nach einem Absturz ein 1-Monate altes Systemabbild wiederherstellen. Die in diesem Abbild...
  7. Problem mit Back Space Taste und dem markieren von Wörtern

    in Microsoft Word Hilfe
    Problem mit Back Space Taste und dem markieren von Wörtern: Hi, ih habe ein Probl. bei Word 2002. Normal ist es doch so, dass mein einen markierten Text mit der Back Space Taste löschen kann. Bei mir funktioniert das aber nicht mehr. Ich schreibe...
  8. XP Professional Front Page soll installiert werden...?!

    in Microsoft FrontPage Hilfe
    XP Professional Front Page soll installiert werden...?!: Hallo.. ich hab da folgendes Problem... Bei öffnen eines Office Programms soll Microsoft XP Professional Front Page installiert werden. Entweder von der Festplatte oder von CD (wie bei...
  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