update à prendre la tête

update à prendre la tête - VB/VBA/VBS - Programmation

Marsh Posté le 23-06-2004 à 12:48:57    

SVP, DONNEZ DES CONSEILS MEME BASIQUES, PARCE QUE JE SATURE!
 
Bonjour tlm,
J'ai un pb qui commence vraiment à me prendre la tête. Lorsque j'effectue la procédure ci-dessous, tout semble apparemment fonctionner puisque lorsque je fais MsgBox strSQl, en +, il me renvoie la bonne requête. Cependant, dans ma base, il me remplace mon DVLPT_description existant par 0 ou -1, enfin pas de string. J'ai peut être effectué une mauvaise manip sur le reste mais je ne trouve pas. Si ça vous est déjà arrivé, contactez moi!
____________________________________________________________
'Update a Development Stage
Public Sub updateDvlpt(strDescription As String, strComment As String, codeDvlpt As Long)
    Dim strSQL As String
     
    strSQL = "Update DVLPT_STAGE Set " & _
        "DVLPT_description = '" & strFiltre(strDescription) & "' " & _
        "And DVLPT_comment = '" & strFiltre(strComment) & "' " & _
        "Where DVLPT_code = " & codeDvlpt & ""
    CurrentDb.Execute strSQL
End Sub
_____________________________________________________________

Reply

Marsh Posté le 23-06-2004 à 12:48:57   

Reply

Marsh Posté le 23-06-2004 à 14:04:20    

Comprend pas le strFiltre(strDescription) et le strFiltre(strComment) ?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:46:56    

strFiltre est une fonction filtre qui remplace chaque ' par '' dans un string (car si on ne le fait pas, la requête plante)

Reply

Marsh Posté le 23-06-2004 à 14:59:14    

Sur les strings, remplaces le "=" par "LIKE". (pour voir si ce n'est pas un pb. de casse, ou d'espaces en début ou fin de chaine.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 15:05:16    

Hey JihemAir
Merci pour le conseil, malheureusement, ça ne marche pas. La requete ne fonctionne même pas, c'est pour dire ? ce qui est dingue, c'est que j'ai exactement le même style de requete dans un autre module et ça marche là !
J'comprend rien !
Merci qd même, c'est super cool de ta part !

Reply

Marsh Posté le 23-06-2004 à 16:12:35    

Code :
  1. [...]
  2. "Where DVLPT_code = '" & codeDvlpt & "'"


 
non ?


Message édité par ixemul le 23-06-2004 à 16:13:02

---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 23-06-2004 à 16:23:54    

non parce que DVLPT_code est un numérique ? merci qd même

Reply

Marsh Posté le 23-06-2004 à 16:39:37    

Il faut décomposer:
faire le filtre "strFiltre" sur une variable temporaire.
strTmp = strFiltre(....)
Utiliser strTmp dans la requete. Voir si ça bugge tjs...


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 17:28:56    

Si tu peux nous mettre le contenu de StrSQL juste après concaténation et avant exécution, ça pourrait nous éclairer


Message édité par tegu le 23-06-2004 à 17:29:11
Reply

Marsh Posté le 24-06-2004 à 14:55:32    

Ce que je ne comprend pas, c'est que j'ai une procédure similaire dans un autre module et ça marche ! Un élément qui est peut être en relation est le suivant : prenons l'exemple de ma procédure de début de cette page; j'ai un formulaire avec plusieurs textfields (un pour la description, un pour les commentaires) et lorsque j'appuie sur un bouton OK, il m'effectue la procédure d'en haut SAUF si les textfields sont vides, alors là ça plante ! Pourtant dans ma base, j'autorise le vide. Y a-t-il une relation, pas sur, mais je crois que ça vient du système, pas du codage !

Reply

Marsh Posté le 24-06-2004 à 14:55:32   

Reply

Marsh Posté le 24-06-2004 à 15:14:26    

/TOTALE ALLU /
La requête fonctionne lorsqu'elle ne contient qu'un paramètre à modifier ! C'est-à-dire :
strSQL = "Update DVLPT_STAGE Set " & _  
        "DVLPT_description = '" & strFiltre(strDescription) & "' " & _  
        "Where DVLPT_code = " & codeDvlpt & ""  
    CurrentDb.Execute strSQL  
 
Je pense pourtant que la requête est correcte, NON ? je ne comprend plus rien. ACCESS c'est trop nul !

Reply

Marsh Posté le 24-06-2004 à 15:20:32    

:ouch: je l'avais meme pas vu...
 
 


'Update a Development Stage  
Public Sub updateDvlpt(strDescription As String, strComment As String, codeDvlpt As Long)  
    Dim strSQL As String  
     
    strSQL = "Update DVLPT_STAGE Set " & _  
        "DVLPT_description = '" & strFiltre(strDescription) & "' " & _  
        ", DVLPT_comment = '" & strFiltre(strComment) & "' " & _  
        "Where DVLPT_code = " & codeDvlpt & ""  
    CurrentDb.Execute strSQL  
End Sub  


 
Vire nous ce 'And' dans ton update et met plutot la virgule syndicale ! [:mlc2]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 24-06-2004 à 15:25:20    

TROP FORT IXEMUL !
Moi non plus je l'avais pas vu. J'ai tellement de requetes que je cherchai plus loin que ça. Bref, MILLE MERCI à tous.
VOUS ETES EXCELLENTS !!!!!!!!

Reply

Marsh Posté le 24-06-2004 à 15:27:31    

big_mouth_fish a écrit :

TROP FORT IXEMUL !
Moi non plus je l'avais pas vu. J'ai tellement de requetes que je cherchai plus loin que ça. Bref, MILLE MERCI à tous.
VOUS ETES EXCELLENTS !!!!!!!!


 
Mais yapadkoi, ils nous aura fallut a peine 26h30 pour trouver l'erreur   [:gui42]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed