Accueil > Forum > > > > Problème d'appel à un module
Problème d'appel à un module
mardi 22 août 2006 à 11:29:03 |
Problème d'appel à un module

observatoire
|
Bonjour, J'ai réalisé un outil de requête sur Access. En important mon outil sur un autre poste, une fonction, qui marchait très bien sur le mien, ne marche plus. C'est une fonction que j'appelle à partir du module de classe de mon formulaire et qui est contenue dans un module :
dans le module du formulaire : CodeSQL = "Select calcul(var1) Calcul From Table In Base;"
dans le module extérieur : Function Calcul(Variable as double) As Double Calcul= Variable*5 End Function
Mais à côté de ça, d'autre transferts entre les deux modules marchent très bien: dans le module du formulaire : QryExist(Requête)
dans le module extérieur : Function QryExist(sQryName As String) As Boolean ... End Function
Merci Observatoire
|
|
mardi 22 août 2006 à 13:37:18 |
Re : Problème d'appel à un module

chaibat05
|
Bonjour, Je penses qu' il y' a une erreur dans l' expression CodeSQL = "Select calcul(var1) Calcul From Table In Base;"
qu' il faut remplacer par CodeSQL = "Select " & calcul(var1) & " Calcul From Table In Base;" avec une reserve sur Calcul que je ne sais pas ce que signifie
Mais le mieux serait que tu récupère clacul(var1) dans une variable et que tu l' insère ensuite dans la requête.
Dim MonCalcul as Double MonCalcul=Calcul(var1) ( Insère un MsgBox pour tester si Calcul retourne bien une valeur)
Ensuite CodeSQL = "Select " & MonCalcul & " Calcul From Table In Base"
chaibat
|
|
mardi 22 août 2006 à 14:01:02 |
Re : Problème d'appel à un module

observatoire
|
correction : CodeSQL = "Select calcul(var1)As Calcul From Table In Base;"
Effectivement je penses que ta proposition doit marcher... mais ce que je ne comprends pas, c'est que ma technique marche tout à fait sur mon PC, même sur un deuxième, mais pas sur un troisième, sachant qu'ils ont tous des versions identiques d'Access... ça m'a l'air de venir d'options d'Access qui ne sont pas pareil sur chaque poste! Mais lesquelles???
|
|
mardi 22 août 2006 à 14:09:50 |
Re : Problème d'appel à un module

chaibat05
|
Mystère ! En tout cas pour moi.
Dans tout les cas tiens-moi au courant du résultat. J' aimerais bien savoir.
Amicalement
chaibat
|
|
mardi 22 août 2006 à 22:55:49 |
Re : Problème d'appel à un module

PCPT
|
salut, (VBA... pas expert du tout  ) var1 est initialisée? à supposer que oui pour 1 : tu voudrais que çà donne en interprété : CodeSQL = "Select 5 As Calcul From Table In Base;"   rien que là je bloque !!!  tu as une chaîne. elle ne peut donc pas être interprêtée... çà serait donc la proposition de chaibat05 (sans forcément passer par une variable intermédiaire d'ailleurs ; on peut appeler la fonction dans le requête). çà ne change pas le fait que Select 5 ne veut rien dire... sinon pourquoi çà ne fonctionne que sur ton PC..... voir ma première phrase, désolé ++ Prenez un instant pour répondre à ce sondage svp 
|
|
mercredi 23 août 2006 à 00:25:44 |
Re : Problème d'appel à un module

chaibat05
|
Bonsoir PCPT, ^^... (sans forcément passer par une variable intermédiaire d'ailleurs ; on peut appeler la fonction dans le requête).
Je sais que ton intention était bonne.
Tu t' en doutais bien que c' était juste pour voir si la fonction retournait bien une valeur avant d' envisager de l' incorporer dans le corps de la la requête.C' est ce que j' ai d' ailleur fait à la première ligne.
chaibat
|
|
mercredi 23 août 2006 à 12:04:09 |
Re : Problème d'appel à un module

observatoire
|
Pour Info, je viens de tester texto: dans le module de classe de mon formulairePrivate Sub bouton_Click()
Dim db As Database Set db = CurrentDb Dim matab As QueryDef QrySuppr ("toto") totosql = "SELECT calcul(Table1.Geo) as Cal FROM Table1 GROUP BY calcul(Table1.Geo);" Set matab = db.CreateQueryDef("toto", totosql) DoCmd.OpenQuery "toto"
End Subdans un moduleFunction calcul(variable As String) As Double calcul = Left(variable, 2) End Functionet ça marche nickel sur mon PC!! Alors je ne penses vraiment pas que ce soit vraiment ma ligne de code qui soit fausse, je crois que c'est plutôt de l'ordre d'options du logiciel!! J'ai d'ailleurs eu un autre bug étrange sur l'autre PC : la ligne de code : DoCmd.Openreport "EtatToto" ne fonctionne pas N'est-ce pas étrange??  Enfin mon problème est que je dois régler ça au plus vite!
|
|
mercredi 23 août 2006 à 12:35:44 |
Re : Problème d'appel à un module

chaibat05
|
Bonjour, Tu m' as déjà répondu que ça marchait pour: CodeSQL = "Select " & calcul(Table1.Geo) & " as Cal FROM Table1 GROUP BY calcul(Table1.Geo);" ?!!
Pourquoi t' entêter à vouloir mettre : totosql = "SELECT calcul(Table1.Geo) as Cal FROM Table1 GROUP BY calcul(Table1.Geo);"
Ca m' étonnerais que ça marche .Ta fonction Calcul n' est pas une fonction Integrée. Ou alors tu dois être la déclarée comme "ProcedureStored" (ou quelque chose comme ça, je ne sais plus !)
chaibat
|
|
mercredi 23 août 2006 à 13:23:40 |
Re : Problème d'appel à un module

observatoire
|
Alors pour être claire : ta solution ne marche pas, vu qu'en extrayant "calcul(Table1.Geo)" du code sql, il ne peut pas identifier "Table1.Geo" qui n'existe que dans le code SQL. Et c'est exactement pareil si on met une variable externe au code Sql: Var = calcul(Table1.Geo) CodeSQL = "Select " & Var & " as Cal FROM Table1 GROUP BY calcul(Table1.Geo);" De plus mon code est plutôt du genre: Private Sub bouton_Click()
Dim db As Database Set db = CurrentDb Dim matab As QueryDef QrySuppr ("toto") totosql = "SELECT calcul1(Table1.Geo), calcul2(calcul1(Table1.Geo)), calcul3(calcul1(Table1.Geo)) FROM Table1 GROUP BY calcul(Table1.Geo);" Set matab = db.CreateQueryDef("toto", totosql) DoCmd.OpenQuery "toto"
End Sub
MA SOLUTION MARCHE sur mon PC, donc ce n'est pas un problème de code pour cette ligne. Ce qu'il me faut c'est une solution liée AU LOGICIEL ACCESS.
Merci quand même de ton aide
|
|
mercredi 23 août 2006 à 17:03:16 |
Re : Problème d'appel à un module

chaibat05
|
Hormis le problème Materiel, Dans ta requête totosql = "SELECT calcul1(Table1.Geo), .... c' est pas comme si tu mettais totosql = "SELECT First(Table1.Geo), ... ou "SELECT Average(Table1.Geo),...... ou je ne sais quoi d' autres... Ce sont deux choses totalement différentes. Dans le second cas les Fonctions Fist, Average , Max, Min, Date, Sum, ...etc sont des fonctions Integrées et reconnues par Access Alors que calcul ne l' est pas.Elle est Externe à Acces.Pour que Acces l' intègre , il faut qu' elle soit 1° Définie dans un Module de ta Base Acces et non dans le code VB. 2° Qu' elle soit déclarée dans ton code comme procédure stockée. Dim db As Database Set db = CurrentDb Dim matab As QueryDef Dim Calcul ....je ne sais pas comment (j' ai peur de dire une co^^erie)
est-ce que tu saisi la nuance...? Essaies de voir dans cette direction.
On n' est pas là pour t' imposer quoi que ce soit.Nous aussi on essaie de comprendre avec toi. Même avec ce que je viens de te proposer peut être que quelqu' un pourrait me corriger. Je dis ça parce que je t' ai senti agacé par nos réponses
C' est vrai qu' on est incapable de répondre à ta question : Pourquoi ça marche ici et pas là
Amicalement.
|
|
Cette discussion est classée dans : problème, appel, formulaire, module, calcul
Répondre à ce message
Sujets en rapport avec ce message
Problème de calcul ds formulaire et ss formulaire [ par mystoizo ]
salut a tous!!!J'ai un gros problème sur Access, je désire faire des calculs dans mon formulaire et sous formulaire qui sont relié l'un a l'autre par
Un problème de taille - appel aux experts [ par Romuald76 ]
Bonjour,Voici mon petit problème, peut être que quelqu'un aura une solution...J'ai un formulaire parent (MDI) de démarrage. A partir de ce formulaire,
Problème d'appel à un module externe [ par jacques13 ]
Bonjour à tous,Ceci est une question que j'ai posée il y a quelques mois mais pour laquelle je n'ai pas reçu de réponse satisfaisante.Soit un programm
Problème de formulaire et dll Satellite language [ par OneHacker ]
Je reposte ma question car personne n'y avait répobndu précédemment.J'ai un formulaire.La première fois que j'ai créer le formulaire frmParent sa prop
problème avec checkbox [ par annyong ]
bonjour,J'ai un problème pour "récupérer" la caleur d'une checkbox dans un module.voici le code de ma checkbox :Public Sub TextBox1_Change()If TextBo
associer une requete a un sous formulaire en VBA [ par cherie_cheri ]
Bonjour, je me permet de venir vous déranger, car j'ai un petit problème. J'ai un formulaire access avec une zone de choix. Suivant mon choix (1 ou 2)
Appel d'un formilaire apartir de mon application [ par marie_rim ]
<td id="HB_Focus_Element" valign=
appel formulaire [ par moudz84 ]
salut, j'ai crée une fonction qui doit remplir au fur et a mesure une Liste dans access.cette liste s'appel "ListeAvancement"et donc dans cette method
impression de formulaire [ par Tangshou ]
Bonjour,J'ai crée un petite base de données sous ACCESS avec des formulaires et des requetes pour la consultation et l'impression d'infos. Je me trouv
appel sur événement listview_columnclick [ par ramaro ]
bonjour à tous!J'ai un problème sur l'appel d'un événement sur vb6. En faite, j'ai un listview et j'ai envie qu'au moment du chargement de la fenêtre
Livres en rapport
|
Derniers Blogs
PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|