| auteur : Team Access |
Un point d'arrêt dans le code permet de stopper son exécution permettant ainsi de contrôler son bon déroulement.
Pour ajouter un point d'arrêt, placez le curseur sur la ligne concernée et appuyez sur la touche F9.
Quand l'exécution passe sur cette ligne, elle est interrompue. Vous pouvez alors décider de continuer en mode pas-à-pas (F8) ou reprendre une exécution normale (F5).
Lorsque vous fermez VBA, les points d'arrêt sont perdus. Pour utiliser des points d'arrêt enregistrés avec le code, utilisez l'instruction VBA Stop.
Exemple :
Msgbox " A "
Stop
Msgbox " B "
|
|
| auteur : Team Access |
La fenêtre de débogage (aussi appelée fenêtre d'exécution) permet de consulter le déroulement du code VBA.
Elle permet par exemple de lancer du code VBA vous donnant ainsi la possibilité de tester le comportement de votre code.
Par exemple, la syntaxe Debug.Print variable affiche le contenu de variable.
Pour afficher cette fenêtre, rendez-vous dans VBA, menu Affichage, Fenêtre Exécution.
|
lien : Comment debugger une requête générée par code ?
|
| auteur : Team Access | Allez dans un module (page où on écrit le code VBA).
Dans la barre de menus d'ACCESS cliquez sur Outils puis Références.
S'il manque une bibliothèque ou une DLL elle sera marquée comme tel dans la liste déroulante.
Il suffit alors de la copier dans le répertoire "system32" de l'ordinateur et de taper : REGSVR32 C:\WINDOWS\SYSTEM32\maDLL.DLL
ou REGSVR32 C:\WINDOWS\SYSTEM32\monOCX.OCX
Le produit est alors enregistré dans la base de registres et reconnu par le système (sous NT il faut taper WINNT au lieu de WINDOWS)
|
| auteur : Team Access | Souvent lors de calculs vous avez cette erreur. Il s'agit souvent d'une des variables composant le calcul qui a la valeur Null (par exemple lorsque le calcul contient une zone de texte non remplie). Pour éviter ce message et que le calcul ne prenne pas en compte le champ vide en question, il suffit d'utiliser la fonction Nz().
Cette fonction est également utilisable dans les requêtes SQL.
Exemple : MsgBox Nz (ZoneDeTexte) + 1
|
|
| auteur : Maxence HUBICHE | Il ne faut mettre les '()' que lorsque vous attendez un résultat à utiliser ultérieurement.
Ainsi quand vous écrivez :
MaFonction (Paramètre1, Paramètre2)
|
Vous lui demandez de renvoyer une valeur, mais vous ne lui dites pas où mettre ce résultat.
Il est plus correct d'écrire :
Result = MaFonction (Paramètre1, Paramètre2)
|
En effet une fonction renvoit une valeur, il faut donc la stocker quelque part. Ici, le résultat est stocké dans la variable Result.
Si vous n'attendez pas de réponse, il suffit de ne pas mettre les parenthèses :
MaProcedure txtErreur, txtErreurVar
|
Ceci fonctionne également pour les MsgBox().
|
| auteur : Frank |
Public Sub SUB_Display_Error (intErrNumber As Integer, strErrDescription As String _
, strErrSource As String , strErrModule As String , strErrFonction As String )
On Error GoTo SUB_Display_Error
MsgBox " Erreur : " _
& intErrNumber & Chr (13 ) & " Description : " _
& strErrDescription & Chr (13 ) & " Source : " & strErrSource & Chr (13 ) & _
" Module : " & strErrModule & Chr (13 ) & " Fonction : " & _
strErrFonction, vbCritical
Exit Sub
SUB_Display_Error :
MsgBox " Erreur : " & Err . Number & Chr (13 ) & " Description : " & Err . Description & Chr (13 ) & _
" Source : " & Err . Source & Chr (13 ) & _
" Module : General_Module Démarrage " & Chr (13 ) & _
" Fonction : Public Sub SUB_Display_Error(intErrNumber As " & _
" Integer, strErrDescription As String, strErrSource As String, " & _
" strErrModule As String, strErrFonction As String) " , vbCritical
End Sub
|
|
| auteur : Maxence HUBICHE | Ceci peut être provoqué par un pb de référence, par exemple lors de l'utilisation d'un autre pc alors que tout fonctionne bien sur le poste d'origine.
- Allez dans un module.
- Allez dans Outils/Références
- Décochez les références marquées MANQUANT (s'il y en a).
- Recochez les références que vous devririez avoir (si vous en avez décoché).
- Décochez au minimum une référence et validez la boîte de références, avant d'aller la recocher...
Cette manipulation a résolu le problème.
|
| auteur : Petogaz | Ceci est une option normalement activée par défaut. Pour l'activer, si elle ne fonctionne pas, allez dans VBA, puis dans le menu Outis, Option, cocher la case Complément automatique des instructions.
|
| auteur : FRED.G | Souvent la ProgressBar fonctionne très bien du moment que le traitement n'est pas trop gros. Si ca dépasse un certain temps, le curseur de la souris se change en sablier et la fenêtre ne se met plus à jour et la progressbar non plus.
Un simple DoEvent dans le code avant Mise à jour de la progressbar arrangera celà.
|
| auteur : Demco |
Ce message d'erreur peut d'afficher lorsque vous travaillez avec des requêtes imbriquées.
La règle est que la requête sous-imbriquée ne doit sélectionner qu'un seul champ (celui sur lequel s'applique la condition).
|
| auteur : ARO |
Vérifier que les touches spéciales d'accès sont disponibles.
Pour cela :
Menu Outils/Démarrage, la case utiliser les touches spéciales d'accès doit être cochée.
|
| auteur : =JBO= |
Vous pouvez utiliser la méthode suivante :
DoCmd. RunCommand acCmdDebugWindow
|
|
| auteur : =JBO= |
Pour référencer les objets d'une autre base (base A) dans une base B, il faut lui établir une référence. Dans VBA (menu Outils / Références).
Une fois la référence établie, vous verrez que vous avez accès à tous les modules normaux mais pas aux modules de classes.
Pour résoudre ce problème vous devez :
1. modifier la portée de la classe pour la rendre publique.
Dans l'IDE VBA, sélectionnez la classe et dans la fenêtre des propriétés, modifiez la propriété [Instancing] avec la valeur [2. PublicNotCreatable]
Access permet de choisir entre les portées [Private] Ou [Public not creatable].
[Public not creatable] signifie que les instances de la classe peuvent être utilisées par
n'importe quelle application Access qui référence la base A, avec une grosse limitation:
seul le code contenu dans la base A est autorisé à instancier la classe (en clair, l'instruction New clsTest n'est pas valide en-dehors de la base A).
2. Etant donné que la classe n'est pas instanciable ailleurs que depuis A, il faut créer
une méthode publique dans un module (pas un module de classe) qui instanciera l'objet et retournera une référence vers celui-ci.
C'est cette méthode qui sera appelée dans B.
Dans A :
Public Function NewTitre () As clsTitre
Set NewTitre = New clsTitre
End Function
|
Dans B :
Function test ()
Dim oTitre As clsTitre
Set oTitre = Newtitre ()
End Function
|
|
lien : Introduction à la POO illustrée par VB6
|
| auteur : =JBO= |
Du code VBA est en cours d'exécution.
Ceci peut arriver quand une procédure événementielle est exécutée, suite au déclenchement de l'événement Timer d'un formulaire, ou encore s'il y un appel à une procédure de l'application Access via OLE automation.
Dans l'environnement de développement Visual Basic (IDE) la barre de titre affiche [Exécution en cours] pour signaler que du code est en cours d'exécution.
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2004
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|