Le code VBA généré automatiquement est douteux...!?
2 réponses
dc
bonjour,
Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton.
Cela m'ouvre la fenêtre "Assistant Bouton de commande".
Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement".
La ligne VBA générée est :
"DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70"
Hors on peut lire dans l'aide F1 :
<Début de citation>
Méthode DoMenuItem
Note Dans Microsoft Access 97, la méthode DoMenuItem avait été remplacée
par la méthode RunCommand. La méthode DoMenuItem figure dans cette version
de Microsoft Access uniquement par souci de compatibilité avec les versions
antérieures. Lorsque vous exécutez du code Visual Basic existant contenant
une méthode DoMenuItem, Microsoft Access affiche la commande de menu ou de
barre d'outils appropriée pour Microsoft Access 2000. Toutefois,
contrairement à l'action ExécuterElémentMenu dans une macro, une méthode
DoMenuItem dans Visual Basic n'est pas convertie en une méthode RunCommand
lorsque vous convertissez une base de données créée dans une version
antérieure de Microsoft Access.
Certaines commandes de versions antérieures de Microsoft Access ne sont pas
disponibles dans Microsoft Access 2000 et les méthodes DoMenuItem qui
exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées
dans Visual Basic. Vous devez modifier votre code Visual Basic pour
remplacer ou supprimer les occurrences de telles méthodes DoMenuItem.
.../...
Note Il n'existe pas de paramètre acMenuVer80 pour cet argument. Vous ne
pouvez pas utiliser la méthode DoMenuItem pour afficher des commandes
Microsoft Access 97 ou Microsoft Access 2000 (bien que les méthodes
DoMenuItem existantes dans du code Visual Basic continuent de fonctionner).
Utilisez plutôt la méthode RunCommand.
<Fin de citation>
En d'autres termes Access génère du code qui risque de provoquer des erreurs
! Comment cela se fais-ce ?
Y a-t-il moyen, par exemple dans les Options, de faire générer une ligne qui
contient "RunCommand" plutôt que "DoMenuItem" ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dc
Je repose la question en ne laissant que les phrases suspectes de la citation :
<Début de citation> les méthodes DoMenuItem qui exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées dans Visual Basic. .... Utilisez plutôt la méthode RunCommand. <Fin de citation>
"dc" a écrit dans le message de news:434123f8$0$21206$
bonjour,
Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton.
Cela m'ouvre la fenêtre "Assistant Bouton de commande". Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement".
La ligne VBA générée est : "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70"
Hors on peut lire dans l'aide F1 :
<Début de citation> Méthode DoMenuItem Note Dans Microsoft Access 97, la méthode DoMenuItem avait été remplacée par la méthode RunCommand. La méthode DoMenuItem figure dans cette version de Microsoft Access uniquement par souci de compatibilité avec les versions
antérieures. Lorsque vous exécutez du code Visual Basic existant contenant une méthode DoMenuItem, Microsoft Access affiche la commande de menu ou de barre d'outils appropriée pour Microsoft Access 2000. Toutefois, contrairement à l'action ExécuterElémentMenu dans une macro, une méthode DoMenuItem dans Visual Basic n'est pas convertie en une méthode RunCommand lorsque vous convertissez une base de données créée dans une version antérieure de Microsoft Access.
Certaines commandes de versions antérieures de Microsoft Access ne sont pas
disponibles dans Microsoft Access 2000 et les méthodes DoMenuItem qui exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées dans Visual Basic. Vous devez modifier votre code Visual Basic pour remplacer ou supprimer les occurrences de telles méthodes DoMenuItem.
.../...
Note Il n'existe pas de paramètre acMenuVer80 pour cet argument. Vous ne pouvez pas utiliser la méthode DoMenuItem pour afficher des commandes Microsoft Access 97 ou Microsoft Access 2000 (bien que les méthodes DoMenuItem existantes dans du code Visual Basic continuent de fonctionner).
Utilisez plutôt la méthode RunCommand.
<Fin de citation>
En d'autres termes Access génère du code qui risque de provoquer des erreurs
! Comment cela se fais-ce ?
Y a-t-il moyen, par exemple dans les Options, de faire générer une ligne qui
contient "RunCommand" plutôt que "DoMenuItem" ?
Je repose la question en ne laissant que les phrases suspectes de la
citation :
<Début de citation>
les méthodes DoMenuItem qui exécutent ces commandes provoquent une erreur
lorsqu'elles sont exécutées dans Visual Basic.
....
Utilisez plutôt la méthode RunCommand.
<Fin de citation>
"dc" <dce_c6k6@hotmail.com> a écrit dans le message de
news:434123f8$0$21206$626a14ce@news.free.fr...
bonjour,
Avec Access 2000, lors de la création d'un formulaire, je rajoute un
bouton.
Cela m'ouvre la fenêtre "Assistant Bouton de commande".
Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement".
La ligne VBA générée est :
"DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70"
Hors on peut lire dans l'aide F1 :
<Début de citation>
Méthode DoMenuItem
Note Dans Microsoft Access 97, la méthode DoMenuItem avait été remplacée
par la méthode RunCommand. La méthode DoMenuItem figure dans cette version
de Microsoft Access uniquement par souci de compatibilité avec les
versions
antérieures. Lorsque vous exécutez du code Visual Basic existant contenant
une méthode DoMenuItem, Microsoft Access affiche la commande de menu ou de
barre d'outils appropriée pour Microsoft Access 2000. Toutefois,
contrairement à l'action ExécuterElémentMenu dans une macro, une méthode
DoMenuItem dans Visual Basic n'est pas convertie en une méthode RunCommand
lorsque vous convertissez une base de données créée dans une version
antérieure de Microsoft Access.
Certaines commandes de versions antérieures de Microsoft Access ne sont
pas
disponibles dans Microsoft Access 2000 et les méthodes DoMenuItem qui
exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées
dans Visual Basic. Vous devez modifier votre code Visual Basic pour
remplacer ou supprimer les occurrences de telles méthodes DoMenuItem.
.../...
Note Il n'existe pas de paramètre acMenuVer80 pour cet argument. Vous ne
pouvez pas utiliser la méthode DoMenuItem pour afficher des commandes
Microsoft Access 97 ou Microsoft Access 2000 (bien que les méthodes
DoMenuItem existantes dans du code Visual Basic continuent de
fonctionner).
Utilisez plutôt la méthode RunCommand.
<Fin de citation>
En d'autres termes Access génère du code qui risque de provoquer des
erreurs
! Comment cela se fais-ce ?
Y a-t-il moyen, par exemple dans les Options, de faire générer une ligne
qui
Je repose la question en ne laissant que les phrases suspectes de la citation :
<Début de citation> les méthodes DoMenuItem qui exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées dans Visual Basic. .... Utilisez plutôt la méthode RunCommand. <Fin de citation>
"dc" a écrit dans le message de news:434123f8$0$21206$
bonjour,
Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton.
Cela m'ouvre la fenêtre "Assistant Bouton de commande". Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement".
La ligne VBA générée est : "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70"
Hors on peut lire dans l'aide F1 :
<Début de citation> Méthode DoMenuItem Note Dans Microsoft Access 97, la méthode DoMenuItem avait été remplacée par la méthode RunCommand. La méthode DoMenuItem figure dans cette version de Microsoft Access uniquement par souci de compatibilité avec les versions
antérieures. Lorsque vous exécutez du code Visual Basic existant contenant une méthode DoMenuItem, Microsoft Access affiche la commande de menu ou de barre d'outils appropriée pour Microsoft Access 2000. Toutefois, contrairement à l'action ExécuterElémentMenu dans une macro, une méthode DoMenuItem dans Visual Basic n'est pas convertie en une méthode RunCommand lorsque vous convertissez une base de données créée dans une version antérieure de Microsoft Access.
Certaines commandes de versions antérieures de Microsoft Access ne sont pas
disponibles dans Microsoft Access 2000 et les méthodes DoMenuItem qui exécutent ces commandes provoquent une erreur lorsqu'elles sont exécutées dans Visual Basic. Vous devez modifier votre code Visual Basic pour remplacer ou supprimer les occurrences de telles méthodes DoMenuItem.
.../...
Note Il n'existe pas de paramètre acMenuVer80 pour cet argument. Vous ne pouvez pas utiliser la méthode DoMenuItem pour afficher des commandes Microsoft Access 97 ou Microsoft Access 2000 (bien que les méthodes DoMenuItem existantes dans du code Visual Basic continuent de fonctionner).
Utilisez plutôt la méthode RunCommand.
<Fin de citation>
En d'autres termes Access génère du code qui risque de provoquer des erreurs
! Comment cela se fais-ce ?
Y a-t-il moyen, par exemple dans les Options, de faire générer une ligne qui
contient "RunCommand" plutôt que "DoMenuItem" ?
3stone
Salut,
"dc" | Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton. | Cela m'ouvre la fenêtre "Assistant Bouton de commande". | Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement". | | La ligne VBA générée est : | "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70" | | Hors on peut lire dans l'aide F1 :
De manière générale, éviter les "DoMenuItem" qui proviennent (comme quelques autres) des temps reculé d'Access ;-)
et qui sont encore et toujours généré par les assistants d'Accès 2003 au nom de la sacro-sainte compatibilité :-((
Donc, lorsqu'un assistant te génère cela, tu les remplacent par leur équivalent "DoCmd.RunCommand accmd..."
"dc"
| Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton.
| Cela m'ouvre la fenêtre "Assistant Bouton de commande".
| Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement".
|
| La ligne VBA générée est :
| "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70"
|
| Hors on peut lire dans l'aide F1 :
De manière générale, éviter les "DoMenuItem" qui proviennent (comme quelques autres)
des temps reculé d'Access ;-)
et qui sont encore et toujours généré par les assistants d'Accès 2003
au nom de la sacro-sainte compatibilité :-((
Donc, lorsqu'un assistant te génère cela, tu les remplacent par leur équivalent
"DoCmd.RunCommand accmd..."
"dc" | Avec Access 2000, lors de la création d'un formulaire, je rajoute un bouton. | Cela m'ouvre la fenêtre "Assistant Bouton de commande". | Je choisi "Opérations sur enregistrement / Sauvegarder enregistrement". | | La ligne VBA générée est : | "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70" | | Hors on peut lire dans l'aide F1 :
De manière générale, éviter les "DoMenuItem" qui proviennent (comme quelques autres) des temps reculé d'Access ;-)
et qui sont encore et toujours généré par les assistants d'Accès 2003 au nom de la sacro-sainte compatibilité :-((
Donc, lorsqu'un assistant te génère cela, tu les remplacent par leur équivalent "DoCmd.RunCommand accmd..."