blanchoc
Messages postés17Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention 4 octobre 2006
-
3 oct. 2006 à 09:54
blanchoc
Messages postés17Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention 4 octobre 2006
-
3 oct. 2006 à 16:18
Bonjour,
j'ai un probleme avec une de mes fonctions vba: je veux qu'elle me renvoie une chaine de caracteres, et tout se passe bien sauf quand la chaine depasse une certaine longueur, auquel cas la fonction ne me renvoie que les 292 premiers caracteres. J'imagine que c'est du a une limitation du type de données string. J'ai lu qu'il existait 2 types de string, un a longueur fixe et l'autre variable. Y a-t'il une difference dans la facon de déclarer? Comment contourner le probleme?
blanchoc
Messages postés17Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention 4 octobre 20061 3 oct. 2006 à 16:18
finalement j'ai trouvé la solution. effectivement ma chaine etait correcte, mais je ne savais pas que le buffeur des espions etait limité, car c'etait uniquement un affichage. en testant plutot par un debug.print tout y est....... tout bête, mais quand on sait pas...
<hr />
toutes mes chaines intermediaires contiennent bien ce qu'il faut, mais plus la concatenation.
voila ce que j'ai comme resultat de la fonction:"SELECT [BDD_RegionOrganismes$].ENTETE_REGION_ORGANISMES,ENTETE_PAYS FROM [BDD_RegionOrganismes$] INNER JOIN [BDD_PaysISO$] ON [BDD_RegionOrganismes$].ENTETE_PAYS=[BDD_PaysISO$].ENTETE_PAYS WHERE [BDD_RegionOrganismes$].ENTETE_REGION_ORGANISMES = 'AEL'"
alors que je devrai avoir:
"SELECT [BDD_RegionOrganismes$].ENTETE_REGION_ORGANISMES,ENTETE_PAYS FROM [BDD_RegionOrganismes$] INNER JOIN [BDD_PaysISO$] ON [BDD_RegionOrganismes$].ENTETE_PAYS=[BDD_PaysISO$].ENTETE_PAYS WHERE [BDD_RegionOrganismes$].ENTETE_REGION_ORGANISMES = 'AELE' AND [BDD_PaysISO$].ENTETE_PAYS = 'CHE' "
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 3 oct. 2006 à 10:33
Même punition pour la décalration de la fonction :
Function creerChaineConnexion2(table1, colonnes1, table2, colonnes2, whereCol1, _
whereOp1, whereVal1, whereCol2, whereOp2, whereVal2, joinCol1, joinCol2, orderbyCol) As String
table1, colonnes1, ... sont de quels types ??? c'est pas préciser.
Il faut toujours typer ses avriables pour ne pas avoir de surprises par la suite.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Ou bien alors elle est appele a l'aide de valeur su style
Call creerChaineConnexion2(table1, colonnes1, table2, colonnes2, whereCol1, _
whereOp1, whereVal1, whereCol2, whereOp2, whereVal2, joinCol1, joinCol2, orderbyCol)
Car dans ce dernier cas, c'est peu etre les valeurs des variables qui ne sont pas bonnes.
@+, Ju£i?n
sont des variables globales string, j'ai verifié elles contiennent les bonnes valeurs lors de l'entree dans la fonction. j'ai essayé de mettre string partout pas de changement non plus.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 3 oct. 2006 à 10:51
NON table1, colonnes1, .... ne sont pas des variables globales dans cette procédure. Ce sont des variables locales (différentes des globales) qui sont déclarées comme paramètres de ta fonction.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
geobasic
Messages postés69Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention 3 octobre 2006 3 oct. 2006 à 16:13
Ta chaîne n'est pas tronqué elle est tout à fait correcte. On voit bien quel se termine par une simple côte. A mon avis c'est le 2ème test qui ne fonctionne pas ce qui fait que whereCmd2 est à blanc. Je te conseille de faire un pas à pas pour vérifier si les 3 conditions du test sont bien réunies.