damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014
-
14 août 2012 à 15:38
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014
-
22 août 2012 à 10:29
Bonjour,
J'ai développé plusieurs applis en version 2003 et 2007 d'ACCESS et je passe à ACCESS 2010.
Je code en VBA.
Il semble que l'opérateur "=" pose problème dans le code, et doive être remplacé par "like", ce qui me surprend.
Avez-vous eu le même problème en "migrant" vers 2010 et, si oui, comment avez-vous résolu le problème ?
Damedom Sologne
A voir également:
Erreur d'execution 52 nom ou numero de fichier incorrect
Je n'ai pas eu ce problème jusqu'à maintenant, même en partant de la version 97
Si c'est autre chose, je suis intéressé ayant en charge le support et développement access et excel dans mon entreprise.
Pour ma part je ne converti en 2010 que les bases qui le nécessitent (par exemple des menus personnalisés) car access 2010 supporte très bien les bases 2003.
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 22 août 2012 à 10:29
Cher c148270
Merci pour ce lien.
La solution de remplacer
option compare database par
option compare text fonctionne PARFAITEMENT
Cette instruction que j'utilisais par habitude, sans la comprendre vraiment, gère justement la façon de comparer !
J'ai testé, ça compare très bien aussi les nombres !
Donc je n'étais pas seule à avoir ce problème, et, avis à la population, cela semble être la solution.
NHenry
Messages postés15151Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 septembre 2024159 14 août 2012 à 16:55
Bonjour,
Dans quel test ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 14 août 2012 à 17:51
Exemple de code qui fonctionnait parfaitement :
[i] If dbact = "cre" Then
MsgBox ("ce code existe déjà")
Else
Call affichzones
End If/i
Pour que mon programme fonctionne en Version 2010 :
[i] If dbact Like "cre" Then
MsgBox ("ce code existe déjà")
Else
Call affichzones
End If/i
Alors que les tests d'égalité sur du numérique fonctionnent toujours correctement.
J'ai donc écrit cette petite routine pour tester :
[i]Public Sub test_egalite()
Dim dbact As String
dbact = "cre"
If dbact = "cre" Then
MsgBox ("je suis en création")
Else
MsgBox ("je n'y suis pas")
End If/i Et j'obtiens le message d'erreur suivant :
Erreur d'exécution 5 : Argument ou appel de procédure incorrect.
Si je modifie ainsi ma routine :
[i]Public Sub test_egalite()
Dim dbact As String
dbact = "cre"
If dbact Like "cre" Then
MsgBox ("je suis en création")
Else
MsgBox ("je n'y suis pas")
End If/i Cela fonctionne parfaitement.
Et non, nous ne sommes pas début avril. Peut-être un paramétrage malheureux quelque part dans Access, mais vu le nombre de tests que je fais avec le signe "=" dans mes programmes, ça ne me fait pas rire du tout !
NHenry
Messages postés15151Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 septembre 2024159 14 août 2012 à 21:56
Bonjour,
"Erreur d'exécution 5 : Argument ou appel de procédure incorrect. "
Ce message d'erreur peut apparaitre en VBA, dans ce cas (et avec Excel), je repartait d'un fichier vide et je réimportait mes macros.
J'ai déjà vu que certains appels, pourtant justes, renvoyait cette erreur, au bout d'un certains nombre de compilation (enfin, d’exécution après changement du code), la seule solution trouvée était cela, mais essaye peut être juste de retirer toutes les macros de ton fichiers, puis après un compactage, de les remettre, cela fonctionnera peut être.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 00:12
Je suis dans un environnement Access, et j'ai n'ai aucun macro, seulement du code VBA.
J'ai essayé de recompacter ma base, mais ça ne change rien. Par ailleurs, aucun erreur au deboggage !
La plupart de mes clients, pour qui j'ai développé des programmes complexes (je n'interviens que lorsqu'ils ne trouvent pas ce qu'ils veulent "tout fait" sur le marché, et je fais du "sur mesure") avec des versions antérieures d'Access évoluent vers 2010.
Je suis donc particulièrement inquiète de devoir "revoir" tout mon code
Je peux bien sûr utiliser "like" dans mes nouveaux développements, et ça fonctionne, mais ça me parait bizarre, parce que je cherche une vraie égalité.
Est-ce que "like" si on n'utilise ni crochets, ni étoiles, ni rien d'autre va vraiment tester l'égalité ?
Peux-tu essayer ma routine de test dans ta version d'Access 2010, pour voir si ça fait la même chose ? J'ai peut-être sans le vouloir modifié des options ?
NHenry
Messages postés15151Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 septembre 2024159 15 août 2012 à 00:58
Bonjour,
Je suis dans un environnement Access, et j'ai n'ai aucun macro, seulement du code VBA.
VBA sert à faire des macros, si tu fais du VBA, tu codes des macros, même si tu fais des choses évoluées, ça restes des macros.
Sur quelle ligne se produit l'erreur ?
Sinon, j'ai 2003, pas 2010.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 09:53
Même si cela semble incorrect, j'utilise msgbox("tarata") depuis 7 ans environ sans aucun problème. Ca doit donc être toléré. Et puis la version "like" fonctionne parfaitement. Cela ne me semble pas la cause du problème.
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 10:02
Je ne savais pas que VBA ne faisait que créer des macros, puisqu'on génère à la fois des procédures et des fonctions. Mais il est vrai que pour moi la notion de macro est assez "floue". Je codais à l'origine en Cobol et en Basic, et VBA ressemble beaucoup à un mixte de ces langages. Je vais me renseigner sur ce qu'est une macro.
Pour répondre à la question, l'erreur se produit sur la ligne :
if dbact = "cre" Hélas, dans les autres versions d'Access (2003 comprise) cela fonctionne parfaitement.
Mon utilisation de "=" te semble-t-elle incorrecte même si elle était tolérée par les autres versions ?
N'as tu pas dans tes relations quelqu'un qui a le même problème, ou qui a 2010 pour que tu puisses tester ?
Je suis très perplexe d'être la seule à avoir ce problème, d'autant que 2010 ne vient pas de sortir !
Dans le cadre professionnel, je souhaite mettre en place un produit Access qui me permette de gérer le suivi du versement des indemnités journalières de la sécurité sociale et celles passaient en paie pour lien avec la comptabilité :
A partir d'une fenêtre de dialoque je pourrais choisir la sté qui m'intéresse (une quinzaine en tout).Lorsque je cliquerais sur la société concerné via un bouton connexion, j'obtiendrais un formulaire qui me permettrait d'accèder à la fiche du salarié ou il me sera possible de pouvoir dans des sous formulaires a l'intérieur de saisir les indemnités journalières reçues et celle passaient en paie.
Ensuite, je voudrais que dans l'écran principale du formulaire apparaisse le nb de jours d'arrêt pris sur l'année civile en isolant la maternité et la paternité. Dès que cela atteint 90 jours, un indicateur clignotant m'indiquerait le message suivant "PRO BTP"
Je connais un peu ACCESS 2010, pourriez vous m'aider à le concevoir rapidement
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 13:31
Il faut d'abord bien concevoir votre base de données, car c'est de la qualité de cette conception que découleront la sécurité et la simplicité de création de vos programmes. Pratiquez-vous la méthode Merise ?
Tout d'abord bonjour et merci de m'aider
Qu'est ce que la méthode MERISE
j'ai une idée bien précise de ce que je ve faire
Pouvez vous m'aider à la conception complète de mon programme
j'ai déja commencé. Serait il possible de vous adresser mon fichier par mail
Cdt
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 13:38
A vue de nez, il vous faut :
- une table sociétés avec une clé primaire unique code société qui peut parfaitement être alphanumérique, et/ou être identique à votre code comptable
- une table salariés avec une clé primaire pour lesquelles on choisit souvent le numéro de sécurité sociale, qui est à la fois unique et porteur de sens (sexe, année et mois de naissance)
- une table salarié/période dont la clé primaire est à la fois le code d'un salarié existant (voir table précédente) et d'une période qui sera probablement une date de type aaaamm (année sur 4 chiffres mois sur 2).
Dans cette dernière table vous saisirez aussi bien les montants que les motifs (maladie, maternité, paternité, accident du travail etc que vous suggère de choisir dans une table, et non de saisir à chaque fois).
Vous pourrez ainsi grâce à une requête SQL relativement simple faire toutes les statistiques que vous souhaitez.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Ma table société est déja prête
Ma table salarié est prête
Pour l'autre table, il faudra que dans la fiche salarié, je puisse mettre tous les arrêts pour un même salarié, c possible ?
Concernant la boite de dialogue qui permettra de sélectionner la société sur laquelle je voudrais travailler, sera t il possible de de ne pas avoir accès aux autres salariés des autres sociétés
comment puis je vous envoyer mon début de fichier par le biais du forum
damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014 15 août 2012 à 13:49
Effectivement je préfèrerais que vous fassiez votre propre sujet, pour pouvoir espérer avoir des réponses au mien !
Pour la méthode Merise, qui est une excellente méthode de conception de base de données, il existe de bons tutoriels sur le net.
Pour le reste, si le modérateur le permet, je vous communiquerai mon adresse mail pour vous aider plus efficacement.