J'ai lu un article très intéressant sur la compilation conditionnelle qui
permet de différencier certaines parties du code en fonction des références
externes auxquelles on a besoin.
La difficulté est que je n'arrive pas à l'intégrer dans un MDE...
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
J-Pierre
Bonsoir Arnaud,
C'est quoi, la compilation conditionnelle ?
Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne t'amènera que des ennuis.
J-Pierre
"Arnaud CAVELIER" a écrit dans le message de news:
Bonjour,
J'ai lu un article très intéressant sur la compilation conditionnelle qui permet de différencier certaines parties du code en fonction des références externes auxquelles on a besoin.
La difficulté est que je n'arrive pas à l'intégrer dans un MDE...
Avez-vous déjà une expérience ?
Merci de votre aide. Arnaud CAVELIER
Bonsoir Arnaud,
C'est quoi, la compilation conditionnelle ?
Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne
t'amènera que des ennuis.
J-Pierre
"Arnaud CAVELIER" <ArnaudCAVELIER@discussions.microsoft.com> a écrit dans le message de news:
8B69BF2C-3D57-4110-BB30-830CB3B60152@microsoft.com...
Bonjour,
J'ai lu un article très intéressant sur la compilation conditionnelle qui
permet de différencier certaines parties du code en fonction des références
externes auxquelles on a besoin.
La difficulté est que je n'arrive pas à l'intégrer dans un MDE...
Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne t'amènera que des ennuis.
J-Pierre
"Arnaud CAVELIER" a écrit dans le message de news:
Bonjour,
J'ai lu un article très intéressant sur la compilation conditionnelle qui permet de différencier certaines parties du code en fonction des références externes auxquelles on a besoin.
La difficulté est que je n'arrive pas à l'intégrer dans un MDE...
Avez-vous déjà une expérience ?
Merci de votre aide. Arnaud CAVELIER
3stone
Salut,
"J-Pierre" | C'est quoi, la compilation conditionnelle ? | | Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne | t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. . . #Else . ' Exécute le code normal. . . #End If End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante permet de compiler (de rendre actif) une autre version de code. Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access, avec l'inconvénient que tu as deux codes à débuguer...
"J-Pierre"
| C'est quoi, la compilation conditionnelle ?
|
| Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée
ou compilée avec des erreurs ne
| t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution()
#If conDebug = 1 Then
. ' Exécute un code avec instructions de débogage.
.
.
#Else
. ' Exécute le code normal.
.
.
#End If
End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante
permet de compiler (de rendre actif) une autre version de code.
Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access,
avec l'inconvénient que tu as deux codes à débuguer...
"J-Pierre" | C'est quoi, la compilation conditionnelle ? | | Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne | t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. . . #Else . ' Exécute le code normal. . . #End If End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante permet de compiler (de rendre actif) une autre version de code. Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access, avec l'inconvénient que tu as deux codes à débuguer...
Si j'ai bien compris, la compilation conditionnelle, c'est totalement défini et contrôlé par l'utilisateur. Si je comprends bien aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton code.......Ca doit rapidement devenir illisible......
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. #ElseIf conDebug = 2 Then . ' Exécute ??????? . #ElseIf conDebug = 3 Then . ' Exécute ??????? . . #End If End Sub
Non, ça marche pas comme ça ?
Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de développement, de test et de production.....et puis des archives
En tout cas, merci pour l'explication :-)
J-Pierre
"3stone" a écrit dans le message de news: e$
Salut,
"J-Pierre" | C'est quoi, la compilation conditionnelle ? | | Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne | t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. . . #Else . ' Exécute le code normal. . . #End If End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante permet de compiler (de rendre actif) une autre version de code. Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access, avec l'inconvénient que tu as deux codes à débuguer...
Si j'ai bien compris, la compilation conditionnelle, c'est totalement défini et contrôlé par l'utilisateur. Si je comprends bien
aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton code.......Ca doit rapidement devenir illisible......
#Const conDebug = 1
Sub SelectiveExecution()
#If conDebug = 1 Then
. ' Exécute un code avec instructions de débogage.
#ElseIf conDebug = 2 Then
. ' Exécute ??????? .
#ElseIf conDebug = 3 Then
. ' Exécute ??????? . .
#End If
End Sub
Non, ça marche pas comme ça ?
Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de développement, de test et de
production.....et puis des archives
En tout cas, merci pour l'explication :-)
J-Pierre
"3stone" <home@sweet_home.be> a écrit dans le message de news: e$rDNBqfGHA.4276@TK2MSFTNGP03.phx.gbl...
Salut,
"J-Pierre"
| C'est quoi, la compilation conditionnelle ?
|
| Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée
ou compilée avec des erreurs ne
| t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution()
#If conDebug = 1 Then
. ' Exécute un code avec instructions de débogage.
.
.
#Else
. ' Exécute le code normal.
.
.
#End If
End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante
permet de compiler (de rendre actif) une autre version de code.
Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access,
avec l'inconvénient que tu as deux codes à débuguer...
Si j'ai bien compris, la compilation conditionnelle, c'est totalement défini et contrôlé par l'utilisateur. Si je comprends bien aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton code.......Ca doit rapidement devenir illisible......
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. #ElseIf conDebug = 2 Then . ' Exécute ??????? . #ElseIf conDebug = 3 Then . ' Exécute ??????? . . #End If End Sub
Non, ça marche pas comme ça ?
Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de développement, de test et de production.....et puis des archives
En tout cas, merci pour l'explication :-)
J-Pierre
"3stone" a écrit dans le message de news: e$
Salut,
"J-Pierre" | C'est quoi, la compilation conditionnelle ? | | Dans sa version actuelle, Access compile tout ou rien, et créer un MDE avec une base non compilée ou compilée avec des erreurs ne | t'amènera que des ennuis.
Extrait de l'aide :
#Const conDebug = 1
Sub SelectiveExecution() #If conDebug = 1 Then . ' Exécute un code avec instructions de débogage. . . #Else . ' Exécute le code normal. . . #End If End Sub
Avec l'exemple donné ici, lle changement de la valeur de la constante permet de compiler (de rendre actif) une autre version de code. Les "#" indique au compilateur que c'est du code conditionel !
Cela permet par exemple de lier la compilation à la version d'Access, avec l'inconvénient que tu as deux codes à débuguer...
"J-Pierre" [...] | Si je comprends bien aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton code.....
l'idée est de n'avoir qu'une version, mais de compiler les bouts "qui vont bien"
| Ca doit rapidement devenir illisible......
surtout lorsque l'on lit certains codes, à plus de vingt lignes, on ne suit plus ;-)
| | #Const conDebug = 1 | | Sub SelectiveExecution() | #If conDebug = 1 Then | . ' Exécute un code avec instructions de débogage. | #ElseIf conDebug = 2 Then | . ' Exécute ??????? . | #ElseIf conDebug = 3 Then | . ' Exécute ??????? . . | #End If | End Sub | | Non, ça marche pas comme ça ?
si...
| Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de développement, de test et de | production.....et puis des archives
En fait, tu sais bien que Access n'exécute pas le "texte canonique" celui que tu saisi, mais bien le code compilé. Le code ajouté ou modifié se fait compiler lors du "run" de l'appli, normalement !?! Car, il arrive que Access se prenne les pieds dans le tapis et s'y perde un peu dans les portions de nouveau code et de vieux code (compilé, mais plus utilisé ou corrompu), ce que j'appelle du code mort ou cadavre.
C'est d'ailleurs ici qu'intervient la notion de "decompile" qui vire tout le code déjà compilé et qui place le flag "not compiled", ce qui permet à Access de faire un re-compilation *totale* du texte canonique, même celui dont la compilation est (était) prétendument ok.
Quant a la MDE, elle consiste entre autre à virer tout le texte canonique (ce qui explique pourquoi une MDE est *définitivement* non éditable !! ) mais Access s'assure *d'abord* du fait que le code soit parfaitement compilé (c'est pourquoi Access rechigne parfois à créer cette MDE, au moindre "doute")
Pour revenir à la compilation conditionnelle, elle permet de ne compiler que la partie concernée du code... ce qui ne se marie pas avec une MDE ;-) Car il ne faut surtout pas confondre compilation conditionnelle et une exécution conditionnelle !
PS: Je l'ai conseillé souvent et le répète... Il ne faut jamais quitter l'éditeur après un ajout ou modification de code sans demander expressément la compilation. Il reste suffisamment d'erreurs qui ne sont pas détectable à ce moment là, pour ne pas les ajouter à une base "qui tourne". Ce qui explique mon désarroi lorsque la question vient: "c quoi compilé" ;-))
"J-Pierre"
[...]
| Si je comprends bien aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton
code.....
l'idée est de n'avoir qu'une version, mais de compiler les bouts "qui vont bien"
| Ca doit rapidement devenir illisible......
surtout lorsque l'on lit certains codes, à plus de vingt lignes, on ne suit plus ;-)
|
| #Const conDebug = 1
|
| Sub SelectiveExecution()
| #If conDebug = 1 Then
| . ' Exécute un code avec instructions de débogage.
| #ElseIf conDebug = 2 Then
| . ' Exécute ??????? .
| #ElseIf conDebug = 3 Then
| . ' Exécute ??????? . .
| #End If
| End Sub
|
| Non, ça marche pas comme ça ?
si...
| Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de
développement, de test et de
| production.....et puis des archives
En fait, tu sais bien que Access n'exécute pas le "texte canonique"
celui que tu saisi, mais bien le code compilé.
Le code ajouté ou modifié se fait compiler lors du "run" de l'appli, normalement !?!
Car, il arrive que Access se prenne les pieds dans le tapis et s'y perde un peu
dans les portions de nouveau code et de vieux code (compilé, mais plus utilisé ou
corrompu), ce que j'appelle du code mort ou cadavre.
C'est d'ailleurs ici qu'intervient la notion de "decompile" qui vire tout le code
déjà compilé et qui place le flag "not compiled", ce qui permet à Access
de faire un re-compilation *totale* du texte canonique, même celui dont
la compilation est (était) prétendument ok.
Quant a la MDE, elle consiste entre autre à virer tout le texte canonique
(ce qui explique pourquoi une MDE est *définitivement* non éditable !! )
mais Access s'assure *d'abord* du fait que le code soit parfaitement compilé
(c'est pourquoi Access rechigne parfois à créer cette MDE, au moindre "doute")
Pour revenir à la compilation conditionnelle, elle permet de ne compiler
que la partie concernée du code... ce qui ne se marie pas avec une MDE ;-)
Car il ne faut surtout pas confondre compilation conditionnelle et une
exécution conditionnelle !
PS: Je l'ai conseillé souvent et le répète...
Il ne faut jamais quitter l'éditeur après un ajout ou modification de code
sans demander expressément la compilation. Il reste suffisamment d'erreurs
qui ne sont pas détectable à ce moment là, pour ne pas les ajouter
à une base "qui tourne".
Ce qui explique mon désarroi lorsque la question vient: "c quoi compilé" ;-))
"J-Pierre" [...] | Si je comprends bien aussi, rien ne t'empêche d'avoir 254878965 versions différentes de ton code.....
l'idée est de n'avoir qu'une version, mais de compiler les bouts "qui vont bien"
| Ca doit rapidement devenir illisible......
surtout lorsque l'on lit certains codes, à plus de vingt lignes, on ne suit plus ;-)
| | #Const conDebug = 1 | | Sub SelectiveExecution() | #If conDebug = 1 Then | . ' Exécute un code avec instructions de débogage. | #ElseIf conDebug = 2 Then | . ' Exécute ??????? . | #ElseIf conDebug = 3 Then | . ' Exécute ??????? . . | #End If | End Sub | | Non, ça marche pas comme ça ?
si...
| Mouais.....dans ma jeunesse, on m'a appris qu'il y avait 3 environnements différents: de développement, de test et de | production.....et puis des archives
En fait, tu sais bien que Access n'exécute pas le "texte canonique" celui que tu saisi, mais bien le code compilé. Le code ajouté ou modifié se fait compiler lors du "run" de l'appli, normalement !?! Car, il arrive que Access se prenne les pieds dans le tapis et s'y perde un peu dans les portions de nouveau code et de vieux code (compilé, mais plus utilisé ou corrompu), ce que j'appelle du code mort ou cadavre.
C'est d'ailleurs ici qu'intervient la notion de "decompile" qui vire tout le code déjà compilé et qui place le flag "not compiled", ce qui permet à Access de faire un re-compilation *totale* du texte canonique, même celui dont la compilation est (était) prétendument ok.
Quant a la MDE, elle consiste entre autre à virer tout le texte canonique (ce qui explique pourquoi une MDE est *définitivement* non éditable !! ) mais Access s'assure *d'abord* du fait que le code soit parfaitement compilé (c'est pourquoi Access rechigne parfois à créer cette MDE, au moindre "doute")
Pour revenir à la compilation conditionnelle, elle permet de ne compiler que la partie concernée du code... ce qui ne se marie pas avec une MDE ;-) Car il ne faut surtout pas confondre compilation conditionnelle et une exécution conditionnelle !
PS: Je l'ai conseillé souvent et le répète... Il ne faut jamais quitter l'éditeur après un ajout ou modification de code sans demander expressément la compilation. Il reste suffisamment d'erreurs qui ne sont pas détectable à ce moment là, pour ne pas les ajouter à une base "qui tourne". Ce qui explique mon désarroi lorsque la question vient: "c quoi compilé" ;-))