Office: (Office 2010) Datenmakro

Helfe beim Thema Datenmakro in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich kämpfe mit den "neuen" Datenmakros unter Access 2010. Allgemein: Die DB liegt in einem vertrauenswürdigen Speicherort, Makros und VBA ist... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Manuela Kulpa, 31. Mai 2010.

  1. Datenmakro


    Hallo,

    ich kämpfe mit den "neuen" Datenmakros unter Access 2010. Allgemein: Die DB liegt in einem vertrauenswürdigen Speicherort, Makros und VBA ist aktiviert.

    Ich führe eine simple Überprüfung "nach Aktualisierung" der Tabelle durch


    PHP:
             <?xml version="1.0" encoding="UTF-16" standalone="no"?>
    <DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterUpdate"><Statements><ConditionalBlock><If><Condition>[Status]="Erledigt"</Condition><Statements><EditRecord><Data/><Statements><Action Name="SetField"><Argument Name="Field">Fortschritt</Argument><Argument Name="Value">1</Argument></Action></Statements></EditRecord></Statements></If></ConditionalBlock></Statements></DataMacro></DataMacros>         
    :)
     
    Manuela Kulpa, 31. Mai 2010
    #1
  2. Lösung gefunden *wink.gif* - man muss mit dem NachschlagenDatensatz-Datenblock vorab den Datensatz festlegen, den man bearbeiten möchte. Ohne diese Angabe sind die Datensätze in der Tabelle generell schreibgeschützt.

    Schönen Feiertag wünscht
     
    Manuela Kulpa, 2. Juni 2010
    #2
  3. Hallo Manuela, hallo an den Rest der Access Gemeinde.

    Nach langen hin und her habe ich es nun auch geschafft ein funktionierendes Datenmakro zu erstellen. Dein Lösungsansatz war eine Hilfe. Mich wundert nur, das die Lösung soviel anders aussieht, als die in dem von Dir verlinkten MS Video. Hast Du dafür eine sinnvolle Erklärung?

    Mal zwei Fragen in die Runde:
    1. Nutzt hier einer schon die Access 2010 Datenmakro s?
    2. Da ich nicht mit aktiven DBMS arbeite, frage ich mich welchen sinnvollen Einsatz es für Daten Makros ("Trigger") geben kann. Habt Ihr mal sinnvolle Beispiele?

    Das gezeigte Video-Beispiel hätte man auch auf Tabellenebene anders lösen können, finde ich. Bin mal gespannt, was Ihr so zu sagen habt.
     
    SaschaBHH, 5. November 2010
    #3
  4. Datenmakro

    Hallo!

    Eine typische Aufgabenstellung für Trigger wäre ein Änderungsprotokoll.
    Dann muss man sich nicht auf das Frontend verlassen und hoffen, dass niemand ohne dem Frontend, das das Änderungsprotokoll erstellt, Daten in den Tabellen ändert. Beim Trigger ist es egal, von wo aus die Daten geändert werden - der Trigger wird immer ablaufen, da er direkt mit der Tabelle verbunden ist.

    mfg
    Josef
     
    Josef P., 5. November 2010
    #4
  5. Hallo Josef.

    Das wäre ein logisches Beispiel. Dafür müsste ich aber auf den vorherigen Wert eines Feldes zugreifen können. Bisher habe ich das nicht in den Datenmakros finden können, habe aber auch nicht intensiv probiert.

    Hast Du schon mal mit den Datenmakro s gespielt?
     
    SaschaBHH, 5. November 2010
    #5
  6. Gespielt schon, aber bisher zu wenig ernst genommen, weil ich kein Access-BE nutze.

    Ein Beispiel - das ich gerade ausprobierte:
    datenmakro.zip

    Das Schreiben der Datenmakros ist etwas ungewohnt für mich, da ich normalerweise T-SQL zum Erstellen von Triggern nutze. *wink.gif*

    mfg
    Josef
     
    Josef P., 5. November 2010
    #6
  7. \@Sascha: Ich hatte mir (hoffentlich richtig) angelesen,
    - dass man mit Datenmakros Prüfungen auf Tabellenebene durchführen kann (Ereignisse verfügbar!). Bisher waren umfangreichere Prüfungen auf Formulareingaben beschränkt. Datenänderungen können aber auch durch Abfragen und Recordsetanweisungen direkt in den Tabellen vorgenommen werden - man denke auch an Fremdzugriffe. Notwendige Prüfungen müsste man analog einbauen.
    Eine Prüfung auf Tabellenebene (dort wo Daten letzten Endes landen) ist somit umfassender und sicherer und m.E. als Grundfunktionalität zu betrachten.
    - dass Makros keinen "gefährlichen" Code (Kill, RmDir u.a.) enthalten können und somit auch in sicherheitskritischen Bereichen ausführbar sind.

    Praxis dazu hole ich mir ab kommenden Jahr, wo ich den Umstieg von Acc2000 auf Acc2010 wagen will.
     
  8. Datenmakro

    Hallo Ihr Beiden.

    Sorry für die verspätete Reaktion. Bin gerade in langsamen Schritten dabei, mich dem Thema näher zu bringen. Langsam schon deshalb, weil der Makro Editor sehr ungewohnt in der Handhabung ist. In diesem Fall halte ich Deutsch für sehr ungewohnt ;-)

    @ebs17: Danke für Deine Erläuterungen. Ich wünsch Dir viel Glück. Du wirst aber, so meine ich, Deine Freude an Access 2010 haben.

    @josef P.: Du T-SQL Freak kannst mir doch sicher verraten, wie Du darauf gekommen bist: [Alt].[Feldname] oder auch Aktualisiert("Feldname"). Wie hast Du das "ermittelt"? *grins In der Online Hilfe ist nichts dazu finden! habe ich was verpasst oder bin ich zu sehr in der Anfänger VBA Phase hängen geblieben?
     
    SaschaBHH, 16. November 2010
    #8
  9. Ich nutze daher meist die englische Spracheinstellung, wenn ich mit Access arbeite. Dann sieht das etwas mehr nach VBA aus. *wink.gif*

    ... Das ist unmöglich, da es streng geheim ist - so geheim, dass ich es selbst nicht mehr weiß. *biggrin.gif* *biggrin.gif* *biggrin.gif*

    In T-SQL gibt es inserted, updated und deleted, um auf die Daten innerhalb eines Triggers zugreifen. Da war es dann "nicht mehr weit", dass ich auf Old kam. *biggrin.gif* (Außerdem gibt es auch IntelliSense im Makroeditor, der gleich nach dem Tippen von o "old" anzeigte.)
    Vermutlich wird das auch in den Videos gezeigt. Vielleicht zeigte es Thomas dieses Jahr beim AEK-Vertrag. Auf jeden Fall weiß ich nicht mehr, wie ich auf Old kam. *biggrin.gif*

    Aktualisiert("Feldname"): auch Updated(...) gibt es in T-SQL. Das findest du übrigens auch im Ausdrucksgenerator (Expresssion Builder) unter den Funktionen.

    mfg
    Josef
     
    Josef P., 16. November 2010
    #9
  10. Hallo Sascha,

    auf den Wert vor der Löschung / Änderung kannst Du mit dem Qualifier Old bzw. im deutschen dann Alt zugreifen, also Alt.DeinFeldname

    [Edit]
    Mist, ich habe Deine Antwort von 20:05 zu spät gesehen.
    [/Edit]

    CU
     
    Thomas Möller, 16. November 2010
    #10
  11. Hallo Ihr.

    @ Thomas: Trotzdem danke!*Smilie
    @ Josef P.: Wer eine Glaskugel hat, der hat auch Geheimnise. Verständlich!*biggrin.gif*

    Ich bin gerade dabei, das Beispiel von Josef zu erweitern und werde es dann hier für die nächsten "Suchenden" veröffentlichen. Derzeit scheiter ich aber noch daran, innerhalb des Datenmakros eine TempVar zuverwenden. Aber auch das gelingt mir noch.

    BTW: Gibt es bereist ausführliche Hilfen/Beschreibungen für die Datenmakros oder ist hier Learning by doing angesagt? Ich hatte bereits ein Buch von M&T in der Hand und es gleich wieder ins Regal gestellt. Leider wurde dort nicht so ausführlich auf die Datenmakros eingegangen. Und die MS Seiten, bzw die OH bietet auch nichts gescheites. Klasse Feature, keine Hilfe *frown.gif*

    Nachtrag: Wenn man in der OH den Bereich "Hilfe für Entwickler" aktiviert, gibt es schon ein bisschen mehr Hilfe.
     
    SaschaBHH, 16. November 2010
    #11
  12. Hallo Sascha,

    alle Bücher, die ich zu Access 2010 bisher gesehen habe, haben zwar ein Kapitel über Markros drin, aber über eine grobe Erklärung des neu gestalteten Makro-Editors kommen die Bücher nicht hinaus.

    Wissen zu diesem Thema gibt es IMHO bisher nur auf dem Access Team Blog:
    http://blogs.msdn.com/b/access/archi...+intro+series/
    In der Serie zur Einführung von Access 2010 gibt es auch einige Beiträge zum Thema Data Macros.

    Ein paar Beispiele habe ich für die letzte AEK zusammengetragen. Ich hänge die Beispieldatenbank einfach mal hier an. Vielleicht findest Du ja noch die eine oder andere Anregung.

    CU
     
    Thomas Möller, 16. November 2010
    #12
  13. Datenmakro

    Ja Super Thomas! *grins

    Schaue ich mir gleich mal an. Danke!!!

    Im übrigen führt das Durchsuchen der "Hilfe für Entwickler" doch tatsächich zu brauchbaren Hinweisen.
     
    SaschaBHH, 16. November 2010
    #13
  14. Hallo Ihr (liest Manuela mit?)!

    Ich habe versucht, der Sache auf den Grund zu gehen und habe folgendes festgestellt. In dem vom Manuela verlinkten Video werden die Makros im Ereignis "Vor Änderung" gesetzt. Siehe hier.
    Ich hätte schwören können, dass sich die Makros dort damals in dem "Nach Aktualiserung" Ereignis befanden, was dann zu den in #1 beschriebenen Fehler führte.

    Zuviel Wein? Oder war es vorher das Video? Siehe

    Wie auch immer, anbei das Projects Beispiel mit 3 Varianten:
    1. Nach dem aktuellen MS Video. "Vor Änderung"
    2. Nach dem YouTube MS Video. "Nach Aktualisierung" => Fehler!
    3. Nach Anregung von Manuela Kulpa

    Wo nun die Datensatzänderungen per Makro hingehören, "Vor Änderung" oder "Nach Aktualisierung" (beides kann ja funktionieren), vermag mir jemand anderes zu sagen. Vorteil bei "Vor Änderung" ist natürlich, dass ich mir das Datensatz nachschlagen sparen kann, weil der Datensatzeiger sich wohl auf den aktuellen Datensatz befindet. So vermute ich.*tongue.gif*
     
    SaschaBHH, 24. November 2010
    #14
  15. Das wirst du je nach Anwendungsfall selbst entscheiden müssen. *wink.gif*

    Z. B. kannst du in "Vor Änderung" keine DS in anderen Tabellen erstellen.


    BTW: das Beispiel mit dem Projekt ist meiner Ansicht nach ein schlechtes Beispiel für den Einsatz von Datenmakros in einem RDBMS, da es eine redundante Datenhaltung darstellt. Die Nutzung von Datenmakros ermöglicht zwar die kontrollierte Verwendung von redundanter Datenhaltung - aber gerade bei ruck-zuck berechneten Werten innerhalb eines Datensatzes ist so etwas meiner Ansicht nach nicht notwendig. Dafür kann man eine Abfrage nutzen und hat den Vorteil, dass nicht irrtümlich der berechnete Wert (in diesem Fall wäre das der Projektstatus und nicht der Prozentsatz) überschrieben wird.

    Die Beispiele von MS werden meiner Meinung nach verständlicher, wenn man sie in Zusammenhang mit den Web-Datenbanken im SharePoint betrachtet.
    Dort soll es anscheinend hilfreich sein, wenn in Listen die berechenbaren Felder als gespeicherte Werte vorliegen.

    mfg
    Josef
     
Thema:

Datenmakro

Die Seite wird geladen...
  1. Datenmakro - Similar Threads - Datenmakro

  2. Datenmakro?

    in Microsoft Access Hilfe
    Datenmakro?: Liebe Access-Profis, ich braue eine Idee, einen Wegweiser! In meine DB verwalte ich den Einsatz von Lehrkräften. Nun fallen Lehrkräfte aus (Krankheit, Mutterschutz, Elternzeit, Todfall,...
  3. TempVars und Datenmakro

    in Microsoft Access Hilfe
    TempVars und Datenmakro: Hallo. Könnt Ihr bestätigen, dass man aus Datenmakros (Benannte&Ereignisgesteuert) heraus NICHT auf TempVars zugreifen kann? Die Online Entwickler Hilfe sagt folgendes: von OH Access 2010...
  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