|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
HModifie ne fonctionne pas... |
Débuté par Fred, 30 avr. 2016 12:01 - 13 réponses |
| |
| | | |
|
| |
Posté le 30 avril 2016 - 12:01 |
Bonjour je cherche à modifier des données d'un fichier mais je n'y arrive pas. Je modifie bien, sans erreur, mes données quand je passe sur ma fonction mais quand je rappelle mes données je vois que la modif n'est pas pris en compte!
voici la partie de mon code où je bloque: POUR nIdTeam=1 A 4 HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) SI HTrouve(TableauExcel)=Vrai ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,1] + RC + tabTeam[2,1] + RC + tabTeam[3,1] + RC + tabTeam[4,1] HModifie(TableauExcel) FIN
FIN
et quand je fais ce code je vois que ma modif n'est pas pris en compte
HLitRecherchePremier(TableauExcel,Nom,sTech)
je n'arrive pas à trouver mon erreur! Avez vous une idée de ma boulette et si vous pouvez me l'expliquer c'est le top!? un grand merci d'avance |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 96 messages Popularité : +6 (6 votes) |
|
Posté le 02 mai 2016 - 09:41 |
Bonjour,
J'ai comme l'impression que tu mélanges les données d'un tableau dynamique avec les données d'un fichier HF. En plus l'indice de la boucle (?) n'est pas utilisé. Tu fais quatre recherche idem pour rien ??!!
Ou alors je ne comprend rien... ...
-- ___m__(°u°)__m___ |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 21:37 |
Fred a écrit :
Bonjour,
J'ai comme l'impression que tu mélanges les données d'un tableau dynamique avec les données d'un fichier HF. En plus l'indice de la boucle (?) n'est pas utilisé. Tu fais quatre recherche idem pour rien ??!!
Ou alors je ne comprend rien... ...
-- ___m__(°u°)__m___
effectivement ma boucle pour ne sert pas à grand chose!! donc après légère modif:
HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) POUR nIdTeam=1 A 4 SI HTrouve(TableauExcel)=Vrai ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,1] + RC + tabTeam[2,1] + RC + tabTeam[3,1] + RC + tabTeam[4,1] HModifie(TableauExcel) HLitSuivant(TableauExcel,FinVacXls) FIN FIN Dans le tableau j'ai les valeurs modifiés que je veux mettre dans ma base. L'indice s'incrémente à chaque tour automatiquement. Par contre mon problème avec HModifie est toujours le même. J'ai bien la modif en mémoire mais quand je recherche un fichier avec HLitRecherchePremier je vois que ma valeur n'a pas été modifié... |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 08:21 |
Bonjour,
Effectivement la boucle ne sert toujours à rien. Peut-être qu'en essayant cela :
HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) POUR nIdTeam=1 A 4 SI HTrouve(TableauExcel)=Vrai ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,nIdTeam] + RC + tabTeam[2,nIdTeam] + RC + tabTeam[3,nIdTeam] + RC + tabTeam[4,nIdTeam] HModifie(TableauExcel) HLitSuivant(TableauExcel,FinVacXls) FIN FIN
"Fred" a écrit dans le message de groupe de discussion : 20167c3df08130cf1e7c8a3acb5f17215aea@news.pcsoft.fr...
Fred a écrit : [quote]Bonjour,
J'ai comme l'impression que tu mélanges les données d'un tableau dynamique avec les données d'un fichier HF. En plus l'indice de la boucle (?) n'est pas utilisé. Tu fais quatre recherche idem pour rien ??!!
Ou alors je ne comprend rien... ...
___m__(°u°)__m___[/quote]
effectivement ma boucle pour ne sert pas à grand chose!! donc après légère modif: [code:wl] HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) POUR nIdTeam=1 A 4 SI HTrouve(TableauExcel)=Vrai ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,1] + RC + tabTeam[2,1] + RC + tabTeam[3,1] + RC + tabTeam[4,1] HModifie(TableauExcel) HLitSuivant(TableauExcel,FinVacXls) FIN FIN Dans le tableau j'ai les valeurs modifiés que je veux mettre dans ma base. L'indice s'incrémente à chaque tour automatiquement. Par contre mon problème avec HModifie est toujours le même. J'ai bien la modif en mémoire mais quand je recherche un fichier avec HLitRecherchePremier je vois que ma valeur n'a pas été modifié... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 04 mai 2016 - 10:25 |
Salut, Je ne comprend pas grand chose à ton code mais il est plein d'incohérences... Déjà si tu fais un HlitSuivant il faut que tu fasse un TantQue Htrouve car sinon tu vas juste lire les enregistrements suivants de ton fichier qui n'auront plus rien à voir avec ta recherche initiale. Ensuite à quoi sert ta boucle POUR et notamment ton nIdTeam ? Et enfin le plus simple pour savoir pourquoi ton fichier n'est pas modifié ne serait-il pas de tester si le HModifie s'exécute correctement et si ce n,'est pas le cas d'afficher l'erreur ?
SI PAS HModifie(TableauExcel) ALORS Erreur(ErreurInfo(errComplet)) FIN
Je ne peux pas t'aider plus car je ne comprend rien à ton code.
-- Seb |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 12:56 |
Déjà merci de passer un peu de temps pour m'aider Le moins que l’on puisse dire c’est que mon code vous plait pas ! Je vais essayer d’être plus clair : Ma boucle ne sert pas à rien!!! J’ai un tableau de 4 éléments à 2 dimensions, j'ai besoin de la 1ere colonne de mes 4 éléments. Ces 4 éléments je veux les mettre à 4 emplacements de ma base. J'ai nommé l'index nIdTeam j'aurais pu l'appeler i c'était la même chose, j'ai besoin de faire 4 tours d'une boucle, l'index s'incrémente automatiquement.
Je fais une recherche sur ma base TableauExcel avec la rubrique FinVacXls et je recherche la valeur sDateFinVacMatin (dans ma base j'ai 4 éléments qui réponde a cette recherche), le HLitRecherchePremier se positionne sur le 1er de ces éléments, HLitSuivant se positionne sur les éléments suivant de ma recherche. Quand je regarde ce bout de code avec le débogueur, dans la base HFSql, je vois que HLitSuivant se positionne bien sur les bons enregistrements. Je modifie la valeur de ma rubrique Vaccation avec les 4 éléments de mon tableau précédent.
Quand passe la ligne HModifie j’ai aucune d'erreur. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 96 messages Popularité : +6 (6 votes) |
|
Posté le 04 mai 2016 - 14:14 |
Ca devient de plus en plus.... heu... boff ! Peut être comme ça...
HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) POUR nIdTeam=1 A 4 SI HTrouve(TableauExcel)=Vrai ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,nIdTeam] + RC + tabTeam[2,nIdTeam] + RC + tabTeam[3,nIdTeam] + RC + tabTeam[4,nIdTeam] HModifie(TableauExcel, hNumEnrEnCours) FIN HLitSuivant(TableauExcel,FinVacXls) FIN
Le HlitSuivant() dans la boucle et non dans la condition.
-- ___m__(°u°)__m___ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 04 mai 2016 - 14:21 |
Re,
Donc si j'ai bien tout compris je ferai comme ça :
HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) TANTQUE HTrouve(TableauExcel) ALORS TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,1] +... RC + tabTeam[2,1] + RC + tabTeam[3,1] + RC + tabTeam[4,1]
SI PAS HModifie(TableauExcel) ALORS Erreur(ErreurInfo(errComplet)) FIN HLitSuivant(TableauExcel) FIN
Comme ça si demain tu as 5 occurrences qui correspondent à ta recherche tu n'as pas besoin de modifier ton code pour faire un tour de manège (euh boucle) en plus. En ce qui concerne le HModifie as tu essayé d'en tester le résultat comme je te l'ai indiqué afin de savoir si tu n'as pas un problème lors de l'écriture ? Si tu n'as pas d'erreur je ne vois pas de raison que ton HModifie ne fonctionne pas.
-- Seb |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 14:32 |
@fred : oui j’avais déjà essayé et j’ai à nouveau essayer mais le résultat est le même @Sebinc : oui pour la boucle, tantque est mieux si demain je dois faire 5 tours. J’ai tracé comme tu me l’avait dit mais je n’est pas d’erreur. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 04 mai 2016 - 14:53 |
Aïe... Peux tu remettre ton code final qu'on voit ce que ça donne ??
-- Seb |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 14:54 |
J'ai posté sur un autre forum la même question et on m'a donné la réponse à ce problème, voici la réponse:
"La rubrique "Vaccation" est de quel type ? Car tu fais des concaténations en chaine mais si c'est une simple chaine qui une limite de taille alors cela expliquerait que le hmodifie() renvoie vrai sans changer la valeur !
Il faut que la rubrique Vaccation soit du type mémo texte."
La rubrique "Vaccation" était en type texte, je l'ai passé en mémo texte et ça fonctionne je retrouve mes valeurs modifié! Merci à tous pour votre aide |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 04 mai 2016 - 15:08 |
Ah j'y aurai pas pensé j'avoue...
-- Seb |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 15:54 |
Voici un truc qui va t'aider à trouver ton erreur..
HLitRecherchePremier(TableauExcel,FinVacXls,sDateFinVacMatin) TANTQUE HTrouve(TableauExcel) // Avant modification Info(TableauExcel.Vaccation) // Modification en mémoire TableauExcel.Vaccation = TableauExcel.Vaccation + RC + tabTeam[1,1] +... RC + tabTeam[2,1] + RC + tabTeam[3,1] + RC + tabTeam[4,1] // Après modification en mémoire Info(TableauExcel.Vaccation) // Enregistrement suivant HLitSuivant(TableauExcel,FinVacXls) FIN
Ne pas oublier de vérifier la compatibilité du type de ta rubrique avec ce que tu lui affectes |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 96 messages Popularité : +6 (6 votes) |
|
Posté le 04 mai 2016 - 16:11 |
Il faut que la rubrique Vaccation soit du type mémo texte.
Et bien voilà... on pense pas toujours à tout !
-- ___m__(°u°)__m___ |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|