OK J'utilise Access 2003 et je viens de commencer à apprendre l'accès et VBA il y a quelques jours.
J'ai écrit du code dans un module et il n'y a pas d'erreurs lorsque j'appuie sur le bouton de lecture de la barre d'outils de débogueur en haut. de
Comment exécuter réellement ce code sur ma base de données afin de faire quelque chose.
En d'autres termes, comment puis-je utiliser le module? P>
aidez-moi s'il vous plaît, je suis difficile et la date limite pour cela est jeudi! P>
Merci! P>
3 Réponses :
Eh bien, cela dépend de la façon dont vous voulez appeler ce code.
Apportez-vous à partir d'un bouton Cliquez sur un formulaire, le cas échéant, puis sur les propriétés du bouton sous forme de formulaire, allez à l'onglet Event, puis sur OFF Cliquez sur l'élément, sélectionnez [Procédure d'événement]. Cela ouvrira la fenêtre de code VBA pour ce bouton. Vous appelez alors votre module.routine, puis cela déclencherait lorsque vous cliquez sur le bouton. P>
similaire à celui-ci: p>
Private Sub Command1426_Click() mdl_ExportMorning.ExportMorning End Sub
La chose est que je n'utilise pas de forme. J'ai une base de données avec des informations de commande pour certains produits. J'ai besoin de référencer les produits pour voir lesquels sont vendus ensemble les plus fréquents. Je pensais que c'est trop compliqué pour faire une requête alors je pensais que j'essaierais de le faire avec VBA. Est-ce que je vais complètement tort avec ça? N'y a-t-il aucun moyen de simplement "appeler" la procédure sur une table?
Vous devez l'appeler de quelque chose afin de l'exécuter. J'utilise généralement un formulaire, où je peux utiliser un événement de minuterie ou un événement de clic afin de l'appeler. Vous pouvez également effectuer ces appels via une macro dans l'accès ou à partir d'une barre d'outils. Je n'ai jamais appelé VBA à partir d'une requête, mais cela pourrait être possible, voir le lien inclus. social.msdn.microsoft. com / Forums / EN-NZ / AccessDev / Fil / ...
Je vois maintenant, j'ai googlé le module de course à travers la macro et j'ai trouvé ma réponse. Merci beaucoup!
Vous n'exécutez pas de module - vous exécutez des sous-routines / fonctions qui sont stockées dans des modules.
Si vous mettez le code dans un module autonome et ne spécifie pas la portée dans les définitions de votre Les sous-routines / fonctions, elles seront publiques par défaut et appeleront n'importe où dans votre demande. Cela signifie que vous pouvez les appeler avec Runcode dans une macro, à partir des modules de classe des formulaires / rapports, des modules de classe autonome, ou des fonctions, de SQL (avec des mises en garde). P>
donné que vous essayaient de mettre en œuvre dans VBA quelque chose que vous avez ressenties était trop compliqué pour SQL, SQL est le contexte probable dans lequel vous souhaitez exécuter le code. Donc, vous devriez simplement être capable d'appeler votre fonction dans l'instruction SQL: p> que SQL appelle une fonction publique appelée formataddress () qui prend comme argument les composants d'une adresse et les format de manière appropriée. C'est un exemple trivial car vous n'auriez probablement pas besoin d'une fonction VBA à cette fin, mais le point est que cela correspond à la manière dont vous appelez les fonctions de l'instruction SQL. P> sous-routines (c.-à-d. Code qui ne renvoie aucune valeur ) Ne sont pas appelables à partir de relevés SQL. p> p>
Si vous souhaitez simplement exécuter une fonction à des fins de test, vous pouvez utiliser le Fenêtre immédiate dans l'accès. P>
Appuyez sur Ensuite, vous pouvez exécuter vos fonctions comme ceci: p>
Ctrl + g code> dans l'éditeur VBA pour l'ouvrir. p>
? Votre fonction ("paramètre") code>
(pour les fonctions avec une valeur de retour - la valeur de retour est affichée dans la fenêtre immédiate) em> li>
votre "paramètre" code>
(pour les sous-marins sans valeur de retour ou pour des fonctions lorsque vous ne vous souciez pas de la valeur de retour) em> li>
? variable code>
(pour afficher la valeur d'une variable) em> li>
ul>
STRG code> est l'équivalent de
Ctrl code> sur un clavier américain, au fait.