Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2364 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème access

n°719922
romano17
Posté le 09-05-2004 à 17:50:45  profilanswer
 


 
alors voilà  
access.Execute "INSERT INTO film(c) VALUES ('" & fiche.commentaire & "')"
quand le contenu de fiche.commentaire = ' alors vb m' envoie ce message
-2147217900(80040e14)
erreur de syntaxe(opérateur absent) dans l'expression "'',"
 
je ne comprend pas je peux ajouter tout les caractères possibles  
mais quand je met ce caractère ' bé alors ca bug

mood
Publicité
Posté le 09-05-2004 à 17:50:45  profilanswer
 

n°720083
daviso
En 2005, j'enlève le bas
Posté le 09-05-2004 à 23:05:19  profilanswer
 

Essaye de doubler l'apostrophe: remplace ' par '' (deux apostrophes, pas des guillemets)

n°720091
romano17
Posté le 09-05-2004 à 23:20:20  profilanswer
 

voilà j'ai une textbox  
l'utilisateur va saisir le nom du film dans cette textbox
le contenu de cette text box je vais l'envoyer dans ma base
access  
si le contenu de la textbox comporte des cotes '
alors on me signale un message d'erreur  
je crois plutot que sa vient d'access
Merci tout de même

n°720111
daviso
En 2005, j'enlève le bas
Posté le 09-05-2004 à 23:44:07  profilanswer
 

Romano17 a écrit :

voilà j'ai une textbox  
l'utilisateur va saisir le nom du film dans cette textbox
le contenu de cette text box je vais l'envoyer dans ma base
access  
si le contenu de la textbox comporte des cotes '
alors on me signale un message d'erreur  
je crois plutot que sa vient d'access
Merci tout de même


 
Essaie ça:
 
Public Function setStringToSQL(inString) As String
    i = 1
    borneMax = Len(inString)
    Do While i <= borneMax
        lettre = Mid(inString, i, 1)
        If lettre = "'" Then
            avant = Mid(inString, 1, i - 1)
            apres = Mid(inString, i)
            inString = avant & "'" & apres
            borneMax = Len(inString)
            i = i + 1
        End If
 
        i = i + 1
    Loop
    setStringToSQL = inString
End Function
 
C'est la fonction que j'utilise, et mes interfaces avec access passent sans problème

n°720122
romano17
Posté le 10-05-2004 à 00:04:26  profilanswer
 

c'est cool de ta part c'est une autre façon de résoudre le problème merci beaucoup je vais essayer çà toute de suite

n°720129
romano17
Posté le 10-05-2004 à 00:12:48  profilanswer
 

a je suis débutant en vb je ne sais pas ce que fais instring à quoi sert-il merci

n°720158
tet2neu
emmerdeur
Posté le 10-05-2004 à 00:56:51  profilanswer
 

inString c'est une variable. C'est la valeur de ta text box

n°720304
daviso
En 2005, j'enlève le bas
Posté le 10-05-2004 à 10:43:25  profilanswer
 

La fonction te sert à doubler toutes les apostrophes: tu mets outString = setStringToSQL(myTextBox.Text) où myTextBox est le nom de ta textbox. Tu récupères le résultat dans outString, et c'est ce que tu envoies à Access

n°720474
alterisanz
Posté le 10-05-2004 à 12:34:22  profilanswer
 

:o Oui Romano17, daviso a raison c'est un pb de quote. En fait la quote qui est dans ton texte et que tu insère, SQL va l'interpréter comme la quote de fin de texte donc tout ce qui se trouve après cette quote va être mal interprétée.
 
Sincèrement daviso, tu te prends la tete pour rien avec ta fonction, utilise ce qui existe déja :
 
Public Function DoubleQuote(sValue As String) As String
 
    DoubleQuote = Replace(sValue, "'", "''" )
 
End Function
 
 
Moi j'utilise cette fonction quand je dois écrire dans une BD externe à Access, comme avec SQL Server
 
Si dans le futur tu a encore des pb de requetes SQL ce que tu peux faire pour savoir si cela vient de ta requete et avoir plus de détail (peut-être) sur ton erreur c'est d'initialiser une variable avec la chaine de la requete SQL et ensuite du fais:
debug.print mavarSQL
 
Ouvre la fenetre de debuggage et ensuite tu verra ta requete affiché littéralement. Ensuite copie-là crée une nouvelle requete en mode création/SQL, copie le texte, et execute-là. Ainsi tu verra mieux tes pb.
 
Bonne chance :sol:

n°720625
pumpkin031​2
Posté le 10-05-2004 à 14:41:19  profilanswer
 

le problème avec tout ça, c'est qu'apres tes titres de film ne sont plus tout à fait les mêmes sans les apostrophes...
 
si tu faisais quelque chose de plus simple : est-tu vraiment obligé de faire une requête en vba ?
dans la procédure sur click d'un bouton de validation, tu pourais executer tout simplement une requête ajout (créée avec l'assistant, ayant dans le champs TitreFilm :[Formulaires]![NomFormulaire]![NomTextBox]
Comme ça ton ajout fonctionne et ton titre reste cohérent.

mood
Publicité
Posté le 10-05-2004 à 14:41:19  profilanswer
 

n°720668
alterisanz
Posté le 10-05-2004 à 15:09:33  profilanswer
 

Citation :

le problème avec tout ça, c'est qu'apres tes titres de film ne sont plus tout à fait les mêmes sans les apostrophes...


 
Non ne t'inquiètes pas cela ne modifie rien. Le fait de doubler les apostrophes indique au système que c'est le caractère " ' " et non le caractère de délimitation de chaine.  
Sinon la solution Access proposée par Pumpkin m'a l'air tout aussi bonne ...

n°721435
daviso
En 2005, j'enlève le bas
Posté le 11-05-2004 à 09:26:47  profilanswer
 

alterisanz a écrit :

:
Sincèrement daviso, tu te prends la tete pour rien avec ta fonction, utilise ce qui existe déja :
 
Public Function DoubleQuote(sValue As String) As String
 
    DoubleQuote = Replace(sValue, "'", "''" )
 
End Function


 
Oui, je connais la fonction. Mais il me semble qu'elle n'est disponible que dans la version entreprise et pas dans la version de base. C'est pour ça que j'ai préféré faire une petite procédure.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème access

 

Sujets relatifs
Problème ACCESS et RecorsourceProbleme de date sur Access
problème avec les library VBa access 2000Problème de connexion entre SQL Server et une base mixte Access/SQL
Problème d'affichage d'états sous excel depuis accessACCESS | Probleme de date HELPPPP
[Access/SQL] Problème de tranche (de pain de mie !!)[URGENT] Gros gros problème Access (VBA)
[vba/access] Problème de déclaration avec dim...[ACCESS] Problème de syntaxe d'une requête !
Plus de sujets relatifs à : problème access


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)