JagStang & Taz : J'ai même pas besoin de dire ce que je pense de vos interventions déplorables, vous le savez déjà. Retournez-jouer dans les topics qui vous intéressent, et laissez les débutants apprendre tranquillement. Vous êtes vraiment trop nazes.
Orthodocs > Bienvenue sur ce forum qui à mon avis n'est pas ce qu'il y a de mieu pour commencer. En effet, il y a quelques personnes comme moi qui s'efforcent de répondre aux débutants, parceque j'aime bien expliquer les bases à quelquequ'un, et le voir voler de ses propres ailes au bout de 15 jours, plutôt que perdre mon temps à aider une personne qui maîtrise le sujet et qui a la flème de chercher une réponse avant de chercher (ça c'est moi
et je suis tout à fait conscient que la plupart de mes questions sont chiantes
)
Bon, alors, on va commencer par le début.
Comme tu l'as déjà compris, le & sert en VB pour concaténer des chaînes de caractère.
Ainsi, pour concaténer des chaînes de caractère, il faut que de chaque côté, il y ait des chaînes de caractères... Jusque là, je pense que tu suis
Une chaîne de caractères en VB est délimitée par des guillements (" ).
En SQL, où l'oppérateur de concaténation est le plus (+), les chaînes sont délimitée par des quote (').
Donc, analysons ta ligne :
Cxn.Execute ("insert into codeinami ([N°INAMI], intitule) values (' Replace(UCase(Trim(Text2.Text))), "'", "''") ' & ' Replace(UCase(Trim(Text1.Text))), "'", "''") ')")
=> On voit qu'il y a un problème. Tes chaînes ne s'ouvrent et se ferment pas autour de l'oppérateur de concaténation, mais autour des quotes, que VB ne comprend pas (pour lui, la quote sert à mettre en commentaires) D'ailleurs, logiquement, dans VB, toute la fin de ta ligne doit être verte si je ne m'abuse.
Ta requête me semble un peu "compliquée" pour débuter à maîtriser cet aspect. On va donc la réécrire pour le moment sans tenir compte des échappements de quote (ça sert à au moteur SQL pour ne pas planter au cas où se trouve une quote dans une chaîne, puisqu'il croit que la chaîne s'arrête à ce moment), ni la mise en forme (majuscules, etc.)
On a donc, ta requête toujours fausse :
Cxn.Execute ("insert into codeinami ([N°INAMI], intitule) values (' Text2.Text ' & ' Text1.Text')")
Donc, là, ça ne fonctionne toujours pas, puisque tu envoies à SQL :
une chaîne de caractères " Text2.Text "
puis un symbole & qu'il ne comprends pas
puis une chaîne " Text1.Text "
Donc, il faut corriger tes chaînes pour que :
1) Tu n'écrires pas "Textn.Text" dans la base, mais sa valeur
2) Tu n'envoie plus un "&" au moteur SQL, puisqu'il ne le comprendra pas
Pour le moment, on va ignorer le code SQL. On verra ça plus tard. On va juste traîter le point 1.
Souvient toi : le "&" doit se situer entre des chaînes de caractère.
La ligne devient donc :
Cxn.Execute ("insert into codeinami ([N°INAMI], intitule) values ('" & Text2.Text & "' & '" & Text1.Text & "')")
A partir de ce moment, tu as donc une chaîne constituée de :
la chapine : insert into codeinami ([N°INAMI], intitule) values ('
puis la valeur de : Text2.Text
la chaîne : ' & '
puis la valeur de : Text1.Text
Et enfin, la chaîne : ')
Mettons que tu aies mis "toto" dans Text2.Text et "titi" dans Text1.Text. Tu envoies donc à SQL la requête :
insert into codeinami ([N°INAMI], intitule) values ('toto' & 'titi')
Cette fois, c'est presque bon.
Seulement, lorsque tu stipules une liste, en SQL, il faut utiliser la virgule (,) comme séparateur, et non le &.
Donc il fait corriger la requête pour qu'elle devienne :
insert into codeinami ([N°INAMI], intitule) values ('toto', 'titi')
Je te laisse faire cette correction au cas où tu ne t'en sorte pas. (pour ne pas avoir vu cette erreur fondamentale, j'en déduis que tu es en effet très débutant, et que tu n'as aucune base. je dois te féliciter pour ton choix du VB pour apprendre, puisqu'il est parfaitement adapté aux gens qui débute : syntaxe assez simple, pas trop restrictif, et très bien documenté).
N'hésite pas à me reposer des questions s'il y a un truc qui t'échappe, ou si tu ne t'en sors pas.
Si messieurs les emmerdeurs veulent bien te laisser tranquille ici, je t'invite à me répondre ici. Sinon, tu peux me trouver aussi sur http://forum.zozoll-online.com (y'a presque que moi qui poste là, et je suis admin, donc tu seras tranquille
)
Message édité par MagicBuzz le 08-12-2003 à 22:15:10