ORA-00917 : VIRGULE ABSENTE

cs_karitoo Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 2 avril 2007 - 9 févr. 2007 à 16:12
cs_parera Messages postés 1 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 2 juillet 2008 - 2 juil. 2008 à 09:43
Bonjour à  toutes et à tous,

j'ai un petit souci avec un programme VBA ---> ORACLE
En effet losque j'exécute il s'arrete à la ligne "connectOracle.Execute req1" et il me dit l'erreur suivante:
ORA-00917 : VIRGULE ABSENTE
moi sincérement j'ai cherché partout pour ajouter une virgule mais je ne trouve pas.

merci pour l'aide

Sub Macro1()
'On Error Resume Next
'mes déclarations
Dim connectOracle As ADODB.Connection
Dim rst1 As ADODB.Recordset
Dim req1 As String


 


Set connectOracle = New ADODB.Connection
Set rst1 = New ADODB.Recordset


connectOracle.ConnectionString = "User ID=scott;Password=tiger;Provider=MSDAORA;Server=orcl;Database=orcl;"
connectOracle.Open
rst1.Open "SELECT GABARIT,LABELLENAME,COLONETAB,TABLEAU,CELLULE,REGLE,SURBRILLANCE,MONTANTSIGNE,ARRETER,DATEMAJ,ACTIF FROM GABARITSFIN WHERE GABARIT='1.1' ", connectOracle
    Do While Not rst1.EOF


        If Range(rst1!CELLULE).Value <> rst1!MONTANTSIGNE Then
       
        req1 = "INSERT INTO GABARITSFIN ( GABARIT, LABELLENAME, COLONETAB, TABLEAU, CELLULE, REGLE, SURBRILLANCE, MONTANTSIGNE, ARRETER, DATEMAJ, ACTIF ) VALUES ( rst1!GABARIT  ,  rst1!LABELLENAME  ,  rst1!COLONETAB  ,  rst1!TABLEAU  ,  rst1!CELLULE  ,   rst1!REGLE  ,   rst1!SURBRILLANCE  ,  rst1!MONTANTSIGNE  ,  rst1!ARRETER  ,  rst1!DATEMAJ  ,   rst1!ACTIF )"
       
        connectOracle.Execute req1
       
        End If
       
    rst1.MoveNext
    Loop
      
connectOracle.Close
End Sub

9 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 17:05
Explique moi, je ne comprend pas ta requette. Tu essaye d'inserer dans une table les enregistrements que tu viens de lire dans cette même table. Le but est de creer des doublons ?????

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 févr. 2007 à 17:05
Ce serait plutôt un point virgule (à mon avis) à mettre à la fin de ce que tu as choisi dans ta propriété Connect.
0
cs_karitoo Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 2 avril 2007
9 févr. 2007 à 17:12
salut merci pour votre aide,

en fait j'ai oublier de changer la table de destination : GABARITSFINCM

et concernant la réponse de  jmfmarques je ne vois pas ou tu veux que je place le point virgule.

merci encore une fois
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 17:26
essaye avec ceci
"......VALUES rst1!GABARIT  ,  rst1!LABELLENAME  ,  rst1!COLONETAB  , 
rst1!TABLEAU  ,  rst1!CELLULE  ,   rst1!REGLE  ,   rst1!SURBRILLANCE 
,  rst1!MONTANTSIGNE  ,  rst1!ARRETER  ,  rst1!DATEMAJ  ,   rst1!ACTIF"

Bien entendu tu remettra le debut de la requette.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
cs_karitoo Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 2 avril 2007
9 févr. 2007 à 17:42
salut , j'ai mis comme ça


req1 = "INSERT INTO GABARITSFIN ( GABARIT, LABELLENAME, COLONETAB, TABLEAU, CELLULE, REGLE, SURBRILLANCE, MONTANTSIGNE, ARRETER, DATEMAJ, ACTIF VALUES rst1!GABARIT  ,  rst1!LABELLENAME  ,  rst1!COLONETAB  ,  rst1!TABLEAU  ,  rst1!CELLULE  ,   rst1!REGLE  ,   rst1!SURBRILLANCE  ,  rst1!MONTANTSIGNE  ,  rst1!ARRETER  ,  rst1!DATEMAJ  ,   rst1!ACTIF)"

et ça ne marche pas,

est ce bien comme ça que propose de faire?
0
cs_karitoo Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 2 avril 2007
9 févr. 2007 à 17:43
remarque bien que j'ai fermé la parenthèse à la fin.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 17:44
Normal c'est pas bon

req1 = "INSERT INTO GABARITSFIN ( GABARIT, LABELLENAME, COLONETAB,
TABLEAU, CELLULE, REGLE, SURBRILLANCE, MONTANTSIGNE, ARRETER, DATEMAJ,
ACTIF) VALUES rst1!GABARIT  ,  rst1!LABELLENAME  ,  rst1!COLONETAB  , 
rst1!TABLEAU  ,  rst1!CELLULE  ,   rst1!REGLE  ,   rst1!SURBRILLANCE 
,  rst1!MONTANTSIGNE  ,  rst1!ARRETER  ,  rst1!DATEMAJ  ,   rst1!ACTIF"

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_karitoo Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 2 avril 2007
9 févr. 2007 à 17:51
ça ne marche pas!!!!

voici ce que ça donne
0
cs_parera Messages postés 1 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 2 juillet 2008
2 juil. 2008 à 09:43
Personnellement je pense que vous inserer une donnée (ou plus) comportant des apostrophes, Oracle
interprete ça comme une fin et attends la virgule suivante pour compléter les autres options de la commande.

Faites d'abord un test sur vos données de type 'string" pour voir si elles comportent un '.

Si c'est le cas, compléter votre texte en ajoutant un 2eme '.

expl: l'arbre --> l''arbre
0
Rejoignez-nous