VBA et requête SQL

staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005 - 3 août 2005 à 10:17
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005 - 10 août 2005 à 14:33
voilà, après toutes les infos qu'on m'a données à propos des treeviews, le projet est bien avancé (donc merci)

Mais là g un petit pb:

j'utilise la fonction Execute pour executer une requête SQL de mise à jour qui prend ses données sur le formulaire.
txtSQL= "UPDATE [EMPLOYE] SET [EMPLOYE].Name= ' " & Me.Name_Box &" ' ;"
les quotes ' ' sont nécessaires pour définir un string, mais le pb est que quand le nom rentré par l'utilisateur est par exemple: L'abbe ou tout ce qui peut contenir des quotes ça provoque une erreur puisque ça indique la fin de la chaine alors qu'elle n'est pas finie.
est ce que qq a rencontré ce pb et l'a résolu?
merci d'avance

7 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
3 août 2005 à 10:35
Salut

Il faut doubler les quotes dans ton texte :
txtSQL= "UPDATE [EMPLOYE] SET [EMPLOYE].Name= ' " & Replace(Me.Name_Box,"'","''") &" ' ;"
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
3 août 2005 à 11:15
merci bcp, dire que ça m'a pris 2h à bidouiller, je connaissais pas replace.
merci
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
3 août 2005 à 12:03
Replace ne prend pas des champs de valeur "Null", ça provoque une erreur.
Comment convertir une chaine Null en une chaine vide.
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
3 août 2005 à 14:39
Tu concatènes ton champ avec ""

Ex : Replace("" & rec.fields("toto"),"'","''")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
3 août 2005 à 16:25
merci! c une belle journée! ça marche!
tant qu'on y est un autre petit truc stppppppp :
l'utilisateur rentre ses données dans les textboxes et tous les chemps dispo et moi je remet tout à jour dans la base. Mais après avoir pressé ok j'aimerai bien nettoyer tous ces champs, ce que je fais c'est que je mais des chaines vides dedans pour avoir une feuille vierge, mais ça m'a l'air d'être plus du bricolage, ya pas une commande comme clear ou delete...
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
3 août 2005 à 16:43
Non, pas à ma connaissance.
Mais tu peux utiliser le bout de code suivant qui efface toutes les textbox présentes sur la feuille :

Dim l_TxtBox As Control


'Parcourt tous les controles de la feuille
For Each l_TxtBox In Me.Controls
'Teste si c'est une TextBox (= objet TextBox de la librairie MsForms, librairie utilisée dans le VBA)
If TypeOf l_TxtBox Is msforms.TextBox Then
'Vide la textbox
l_TxtBox.Text = ""
End If
Next l_TxtBox
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
10 août 2005 à 14:33
salut,
En fait g un pb avec les dates:
j'ai un formulaire où j'ai placé une zone texte où l'utilisateur est sensé écrire une date,
j'utilise la fonction IsDate pour vérifier s'il a bien entré une date
Le pb est que qd je récupère une date de ce champ pour la stock dans la base elle est prise à l'envers, ou n'importe comment:
exple: 12/10/05 est stockée comme 10/12/05 ou 05/10/12
ce qui est énervant! comment faire svp!
0
Rejoignez-nous