Question

Je l'ai entendu à la vigne que la prochaine Access2010 dispose d'une fonction de macros données qui pour la première fois ajouter des fonctionnalités comme déclencheur pour accéder aux tables de moteur de données. Quelqu'un at-il un plus de détails à ce sujet? Par exemple, peuvent-ils créé dans le code (ACEDAO, SQL DDL, etc.)? Est-ce que le terme macro données si les données sont modifiées à l'extérieur de l'interface utilisateur d'accès par exemple via ODBC, OLE DB, etc?

Était-ce utile?

La solution

Ok, un peu plus d'informations.

  

Est-ce que le terme macro données si les données sont modifiées à l'extérieur de l'interface utilisateur d'accès par exemple via ODBC, OLE DB, etc?

Oui, il le fait.

Ces véritables déclencheurs sont au niveau du moteur de données. Ainsi, en utilisant forme de procès, dao ou même éditer les tables dans la vue tableau en ms accès signifie que les déclencheurs feu. Ces déclencheurs comprendraient également le scénario où vous ne disposez même pas ms accès installé sur votre ordinateur.

Vous aurez bien sûr besoin JET installé (pour le reste de cet article, je vais utiliser le terme ACE). Rappelez-vous qu'il est seulement dans l'accès 2007 que l'équipe d'accès a reçu la propriété du JET. Ils sont maintenant libres d'améliorer ce moteur pour leurs besoins. Nous avons commencé à voir des changements à ACE en 2007 et maintenant nous allons voir beaucoup plus de changements pour 2010. Certaines de ces caractéristiques sont encore NDA pour moi ... mais je vais répandre autant que possible ici.

  

Par exemple, peuvent-ils créé dans le code (ACEDAO, SQL DDL, etc.)?

Dans le code, perahps, mais pas avec ddl SQL. Les déclencheurs sont pas des commandes SQL. Gardez à l'esprit que pour Oracle, ou d'un serveur Sql ou systèmes les plus sur le marché, ils ont tous tendance à avoir leur propre langue sur mesure pour leurs déclencheurs de toute façon.

Dans le nouveau ACE vous donc écrire ce qu'on appelle une macro de données. Vous utilisez l'éditeur de macro en ms accès. Ce sont de vieilles macros d'accès jeu, mais l'éditeur a été complètement refait. Les nouvelles macros ont également des sous-routines, en boucle, si bloque alors d'autre et un type de recordset. Rappelez-vous, nous avons reçu la possibilité de créer des variables temporaires en 2007 macros. En 2010, c'est étendu pour inclure également les variables locales et de nouvelles fonctionnalités ci-dessus.

La syntaxe de macro-commandes existantes est le même que les versions précédentes. Cependant, nous avons un nouveau IDE lisse ainsi que tous ceux commandes ci-dessus frais ajouté. Nous avons donc maintenant deux types de macros. macros de l'interface utilisateur (réguliers comme avant) et maintenant les nouvelles que l'on appelle les macros de données. Il ne serait pas logique pour une macro de niveau de table pour pouvoir afficher des messages d'erreur à l'écran. Ainsi, toute erreur connecté va dans une table. Il y avait aussi quelques nouvelles commandes de journalisation qui vous permettent d'écrire vos propres erreurs personnalisées à cette table. Un design brillant et simple ici. Voici ce que le tableau de journal des erreurs ressemble à:


(source: kallal.ca )

Dans un monde des années énormes IDE, des œuvres de cadre massives et des bibliothèques énormes horrifiants de code rétribué pour mettre à jour d'une simple ligne dans une table, je peux dire que les macros de données sont caractéristique la plus rafraîchissante. Ils se sentent un peu comme la façon dont fonctionne le DBASEII d'origine. Ils sont très simples, mais la puissance mortelle complète parce qu'ils courent au niveau de la table.

Par exemple, voici une macro de données qui maintiendra une table totaux d'inventaire. Dans cet exemple, je vais supposer que des documents existent inventaire principal. Et puis nous avons une table de détails de la commande. Si un utilisateur modifie une valeur dans le tableau des commandes, nous voulons que la table principale mise à jour automatique des niveaux d'inventaire.

Nous avons donc: J'ai deux tables

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)

Ce test simple est

Alors, nous allons avoir un déclencheur dans la tblFruitsOrder qui mettra à jour + Maintenir les niveaux d'inventaire dans tblFruits lorsque le champ est QtyOrder éditer ou modifier.

Voici ce que la macro ressemble à:


(source: kallal.ca )

Notez comment ce qui précède est très simple. Notez que dans l'IDE si vous cliquez sur une section du code, vous obtenez le style ancien montage de type macro dans lequel vous can entrez les valeurs de la commande (ce qui est similaire à pré 2010, mais maintenant les paramètres et l'édition se produit dans le code, pas un panneau qui apparaît au bas de l'écran dans les versions précédentes).

Voici une autre capture d'écran dans lequel je joue avec la capacité de faire une boucle et appeler un sous-programme.


(source: kallal.ca )

Dans ce qui précède, nous pouvons utiliser msgboxs etc., car ce n'est pas une macro de niveau de la table. Ainsi, les commandes disponibles sont automatiquement limitées pour vous lorsque vous écrire un niveau de table macro par opposition à une macro régulière. La terminologie que nous avons adoptée pour distinguer les deux types de macros sont des macros et l'interface utilisateur macros de données.

Ce qui précède est à peu près tout ce que je peux parler de dans pubiens. Cependant, il y a quelques fonctionnalités VRAIMENT-o ordonnée au sujet de ces macros que je parle ne peux tout simplement pas encore en public que je suis encore sous NDA sur ces caractéristiques. Mais il y a des surprises plus frais de venir ici.

Voici une capture d'écran des types de tableau déclencheurs, nous avons:


(source: kallal.ca )

Autres conseils

Plus d'informations sur cette nouvelle fonctionnalité a été publié aujourd'hui sur le blog de l'équipe de développement MS Access et il fournit certainement plus d'informations sur la question cruciale soulevée dans les commentaires ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top