Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment mettre un point d'arrêt dans mon code ?
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"

Qu'est-ce que la fenêtre de débogage ?
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 ?

Comment debugger une requête générée par code ?
auteur : Team Access

Le débogage d'une requête codée dans VBA passe bien souvent par
l'utilisation de debug.print SQLdelarequête. Pour plus de détails, vous pouvez consulter le tutoriel de cafeine :
Initiation - Débogage : requêtes écrites par VBA

lien : Qu'est-ce que la fenêtre de débogage ?

Erreur de compilation: projet ou bibliothèque introuvable. Dll manquante.
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)


"Erreur d'exécution 94 : utilisation incorrecte de Null" ?
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

Erreur de compilation, type défini par l'utilisateur non défini (RecordSet, DataBase ...).
auteur : Demco
Ce message d'erreur apparaît sur :
Dim labase As DAO.Database
Il s'agit probablement du manque d'une dll.
Dans le code VBA allez dans le menu "Outils/références" et cochez Microsoft DAO 3.x Object library.

lien : Erreur d'exécution '13', Incompatiblité de type
lien : fr Définition et manipulation de données avec DAO par Tofalu
lien : faq Comment déclarer une référence dans MS-Access ?

Erreur : fonction ou variable attendue.
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().


Message d'erreur :Type de données incompatible dans l'expression du critère
auteur : Demco
Si vous utilisez un RecordSet et la bibliothèque DAO :
Dans un module (là où vous tapez le code VBA) faites : Outils/références.
Microsoft DAO 3.x Object Library

lien : fr Définition et manipulation de données avec DAO par Tofalu
lien : faq Comment déclarer une référence dans MS-Access ?

Fonction de gestion des messages d'erreur
auteur : Frank
  'Permet d'afficher l'ensemble des erreurs de l'application par ce biais

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

J'obtiens le message d'erreur "Fonction "" non définie dans l'expression"
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.


Comment afficher la liste des propriétés d'un objet dans l'éditeur VBA au cours de la frappe (après un .) ?
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.


Comment obliger ma progressBar à se rafraîchir
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à.


"Vous avez écrit une sous-requête pouvant renvoyer plus d'un champ sans utiliser le mot réservé EXISTS dans la clause FROM de la requête principale."
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).


L'éditeur VBA ignore mes points d'arrêts pendant l'exécution de mon code
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.


Comment afficher la fenêtre "Debug" en VBA ?
auteur : =JBO=
Vous pouvez utiliser la méthode suivante :

DoCmd.RunCommand acCmdDebugWindow

Comment accéder à une classe d'une autre base ?
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 : fr Introduction à la POO illustrée par VB6

Pourquoi l'éditeur VBA est lent et signale des erreurs inexistantes lors de la saisie du code ?
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.


precedent    sommaire    suivant   

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com