sql >> Database >  >> RDS >> Access

Debuggen van privéprocedures

Een van de voordelen van VBA als geïnterpreteerde taal is dat we individuele procedures kunnen uitvoeren zonder dat we de hele applicatie hoeven te compileren. Laten we eens kijken hoe we dat precies doen.

Openbare procedures

Publieke routines zonder argumenten

In een standaardmodule kun je de cursor in een openbare routine plaatsen die geen argumenten heeft, druk op [F5] en die routine wordt onmiddellijk uitgevoerd.

Als je door de routine wilt stappen, kun je ofwel een onderbrekingspunt instellen op een van de regels voordat je op [F5] drukt of gewoon op [F8] ("Step Into") drukken en meteen beginnen met het doorlopen van de code voor de routine.

Publieke functies zonder argumenten

Dit werkt ook met publieke functies in standaard codemodules. De sleutel is dat de functie geen argumenten kan accepteren, zelfs geen optionele.

Openbare procedures met argumenten

Wat gebeurt er als u een openbare procedure probeert uit te voeren waarvoor een of meer argumenten nodig zijn (zelfs optionele)? De opdracht "Uitvoeren> Macro uitvoeren" voert uit:

Privéprocedures

Privéprocedures zonder argumenten

Ik kan de eer niet opeisen voor het ontdekken van deze. Speciale dank gaat uit naar Terry Chapman voor het doorgeven van het feit dat je op F5 kunt drukken om Privé te debuggen bestaande procedures, niet alleen openbare procedures.

Net als Terry, veranderde ik mijn privé-procedures tijdelijk in openbaar terwijl ik ze aan het debuggen was. Het blijkt dat ik dat helemaal nooit heb hoeven doen.

Privéprocedures Met Argumenten

Toen Terry me eenmaal mijn veronderstellingen in twijfel had getrokken, besloot ik om te zien met hoeveel ik weg kon komen. Veel meer dan ik had verwacht, zo blijkt!

Geloof het of niet, u kunt privéprocedures debuggen die argumenten aannemen zonder tijdelijk wijzigen in openbare procedures. Om dit te doen, hoeft u alleen maar de naam van de volledig gekwalificeerde procedure aan te roepen vanuit het onmiddellijke venster. Met "volledig gekwalificeerde naam" bedoel ik de naam in het formaat {ModuleName}.{ProcedureName} .

Bekijk dit voorbeeld:

Maar geloof me niet op mijn woord. Probeer het eens!


  1. Hoe te ontsnappen aan de apostrof (') in MySql?

  2. Unicode-normalisatie in PostgreSQL 13

  3. Op weg naar Postgres-XL 9.5

  4. 15 handige tips voor het afstemmen en optimaliseren van MySQL/MariaDB-prestaties