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
A voir également:

9 réponses

cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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
41
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
41
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