Frage

Ich habe auf der Weinrebe gehört, dass die bevorstehende Access2010 über eine Daten-Makros-Funktion verfügt, die zum ersten Mal eine Trigger-ähnliche Funktionalität hinzufügt, um auf Daten-Engine-Tabellen zuzugreifen. Hat jemand weitere Details dazu? Können sie beispielsweise in Code (Acedao, SQL DDL usw.) erstellt? Läuft das Datenmakro, wenn die Daten von außerhalb der Zugriffsbenutzerschnittstelle über ODBC, OLE DB usw. geändert werden?

War es hilfreich?

Lösung

OK, ein bisschen mehr Informationen.

Läuft das Datenmakro, wenn die Daten von außerhalb der Zugriffsbenutzerschnittstelle über ODBC, OLE DB usw. geändert werden?

Ja tut es.

Diese wahren Auslöser befinden sich auf der Data Engine -Ebene. Wenn Sie also ADO, DAO, DAO oder sogar die Tabellen in der Tabellenansicht in MS-Access bearbeiten, werden die Auslöser abgefeuert. Diese Auslöser würden auch das Szenario enthalten, in dem nicht einmal MS-Access auf Ihrem Computer installiert ist.

Sie benötigen natürlich den installierten Jet (für den Rest dieses Artikels werde ich den Begriff ACE verwenden). Denken Sie daran, dass das Access -Team erst bei Access 2007 Eigentum an Jet erhielt. Sie stehen jetzt frei, diesen Motor für ihre Bedürfnisse zu verbessern. Wir haben im Jahr 2007 einige Änderungen an ACE gesehen und jetzt werden wir für 2010 noch viel mehr Änderungen sehen. Einige dieser Funktionen sind für mich immer noch NDA ... aber ich werde so viel wie möglich hier verschütten.

Können sie beispielsweise in Code (Acedao, SQL DDL usw.) erstellt?

In Code, Perahps, aber nicht mit SQL DDL. Die Auslöser sind keine SQL -Befehle. Denken Sie daran, dass Oracle oder SQL Server oder die meisten Systeme auf dem Markt sowieso dazu neigen, ihre eigene individuelle Sprache für ihre Auslöser zu haben.

Im neuen ACE schreiben Sie so ein so bezeichnetes Datenmakro. Sie verwenden den Makro-Editor in MS-Access. Dies sind altmodische Access-Makros, aber der Herausgeber wurde vollständig wieder hergestellt. Die neuen Makros haben auch Unterprogramme, Schleifen, wenn dann weiterhin Blöcke und eine Art Rekordset. Denken Sie daran, dass wir 2007 Makros in die Möglichkeit erhalten haben, Tempor Variablen zu erstellen. Im Jahr 2010 wird dies um lokale Variablen und über neue Funktionen erweitert.

Die Syntax für vorhandene Makrobefehle entspricht früheren Versionen. Wir haben jedoch eine neue Slick -IDE zusammen mit all den obigen coolen Befehlen hinzugefügt. Wir haben jetzt zwei Arten von Makros. UI -Makros (regelmäßig wie zuvor) und jetzt die neuen sogenannten Datenmakros. Es wäre nicht sinnvoll, dass ein Makro der Tabellenebene Fehler auf dem Bildschirm anzeigen kann. Jeder protokollierte Fehler geht in eine Tabelle. Es gibt auch einige neue Protokollierungsbefehle, mit denen Sie Ihre eigenen benutzerdefinierten Fehler in diese Tabelle schreiben können. Ein brillantes und einfaches Design hier. Hier sieht diese Fehlerprotokolltabelle aus:

alt text
(Quelle: kallal.ca)

In einer Welt der riesigen Ideen, massiven Rahmenwerken und schrecklichen riesigen Codebibliotheken, die zur Aktualisierung einer einfachen Zeile in einer Tabelle erforderlich sind, kann ich sagen, dass Datenmakros am erfrischendsten sind. Sie fühlen sich ähnlich, wie die ursprüngliche DBaseII funktioniert. Sie sind sehr einfach, aber tödliche Kraft, weil sie auf der Tischebene laufen.

Beispielsweise finden Sie hier ein Datenmakro, das die Inventarierung einer Tabelle beibehält. In diesem Beispiel werde ich davon ausgehen, dass Master -Inventarunterlagen vorhanden sind. Und dann haben wir eine Bestelldetail -Tabelle. Wenn ein Benutzer einen Wert in der Bestellentabelle bearbeitet, möchten wir, dass die Master -Tabelle die Bestandsstufe automatisch aktualisiert.

Also haben wir: Ich habe zwei Tische

tblFruits:    main data fruit inventory table
id         (autonumber)
Fruit text
OnHand    (number value of fruit in inventory)

tblFruitsOrder
id       (autonumber)
Fruit_id (FK to tblFruts.ID)
QtyOrder (number of fruit to order)

Dies ist ein einfacher Test

Wir werden also einen Auslöser im TBLFruitSchar haben, mit dem die Lagerbestände in TBLFruits aufrechterhalten werden können, wenn das Feld Qtyorder bearbeitet oder geändert wird.

So sieht das Makro aus:

alt text
(Quelle: kallal.ca)

Beachten Sie, wie einfach das oben genannte ist. Beachten Sie in der IDE, wenn Sie auf einen Abschnitt des Codes klicken, erhalten Sie die Bearbeitung des alten Makro -Typs zum Makro -Typ, in dem Sie die Werte für den Befehl eingeben können Der Code, kein Panel, das in früheren Versionen unten im Bildschirm angezeigt wird.

Hier ist ein weiterer Screenshot, in dem ich mit der Fähigkeit spiele, eine Schleife zu machen und eine Unterprogramme anzurufen.

alt text
(Quelle: kallal.ca)

Im obigen Bereich können wir MSGBoxs usw. verwenden, da dies kein Makro der Tabellenebene ist. Die verfügbaren Befehle sind für Sie automatisch eingeschränkt, wenn Sie ein Makro auf Tabellenebene im Gegensatz zu einem regulären Makro schreiben. Die Terminologie, die wir zur Unterscheidung der beiden Arten von Makros übernommen haben, sind UI -Makros und Datenmakros.

Das Obige handelt von allem, worüber ich in Scham sprechen kann. Es gibt jedoch nur wenige wirklich ordentliche Funktionen über diese Makros, über die ich in der Öffentlichkeit einfach noch nicht sprechen kann, da ich noch unter NDA in diesen Funktionen bin. Aber es gibt mehr coole Überraschungen, um hierher zu kommen.

Hier ist ein Screenshot der Arten von Tischauslösern, die wir haben:

alt text
(Quelle: kallal.ca)

Andere Tipps

Weitere Informationen zu dieser neuen Funktion waren Heute gepostet Im Blog des MS Access Development Teams enthält es definitiv weitere Informationen zu der entscheidenden Frage, die in den obigen Kommentaren aufgeworfen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top