Requete SQL d'insertion

cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006 - 9 août 2006 à 11:18
valliame Messages postés 2 Date d'inscription jeudi 22 février 2007 Statut Membre Dernière intervention 6 février 2008 - 26 avril 2007 à 13:59
Bonjour,

je travaille avec ado sous VB pour acceder et entrer des données dans une base de donnée Access et la requète SQL que je veux lui faire executer a visiblement un problème.

Est ce que quelqu'un pourrait m'aider à trouver mon erreur car je la vois pas :

objCommand.CommandText = "INSERT INTO [Table1]([Champ1], [Champ2]) " & _
            "VALUES ('%" & ActiveSheet.Cells(i, j).Value & "%','%" & ActiveSheet.Cells(i, j + 1).Value & "%')"

objCommand.Execute RecordAffected:=lRecordsAffected, Options:=adCmdText Or adExecuteNoRecords 

Merci pour les réponses,

Neimad58

8 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 11:24
Salut,

De quel type sont tes deux champs dans la Table1?
Pourquoi entourer les champs avec %

Essaie peu etre

objCommand.CommandText = "INSERT INTO Table1 (Champ1,Champ2) " & _
            "VALUES ('%" & ActiveSheet.Cells(i, j).Value & "%','%" & ActiveSheet.Cells(i, j + 1).Value & "%')"

@+, Julien
0
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006
9 août 2006 à 11:33
Merci pour ta réponse

Effectivement j'avais oublié d'oter les % qui ne servent à rien ici

Pour ce qui est des crochet c est pour rendre le fait que je met le nom de la table et le nom des champs mais il ne s'agit pas des noms véritables

objCommand.CommandText = "INSERT INTO Fonds (Code,Nom) " & _
            "VALUES ('" & ActiveSheet.Cells(i, j).Value & "','" & ActiveSheet.Cells(i, j + 1).Value & "')"

Voici ma commande actualisée. Mais elle n'est toujours pas acceptée, il me donne encore l'erreur :

Erreur de syntaxe dans l'instruction INSERT INTO

Neimad58
0
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006
9 août 2006 à 11:33
Les champs sont de type Text au fait

Neimad58
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 11:38
Re,


As tu essayer d'executer directement cette requete depuis ACCESS avec l'editeur SQL (si je me souviens bien il y en a un)


Peu etre que ACCESS te donnera plus d'info.










@+, Julien
Pensez:
0

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

Posez votre question
nelalami Messages postés 19 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 27 septembre 2008
9 août 2006 à 12:04
essaye ca  ! normalement  il doit  marcher

objCommand.CommandText = "INSERT INTO [Table1]([Champ1], [Champ2])  VALUES ('" & ActiveSheet.Cells(i, j).Value & "','" & ActiveSheet.Cells(i, j + 1).Value & "')"

Nourddine
0
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006
9 août 2006 à 15:01
Ca ne marche toujours pas mais je viens de comprendre quelquechose.

En fait, ma requete marche si je l'applique uniquement à mes deux champs que j'ai défini comme clé principale de ma table.

Dés que je la fais sur les champs défini comme clé principale, et un autre champ, ca ne marche plus.

Du coup j'utilise l'instruction UPDATE :

    objCommand1.CommandText = "UPDATE Fonds SET Date_Lancement='" & ActiveSheet.Cells(i, j + 6).Value & "'" & _
        "AND Pseudo=ActiveSheet.Cells(i, j + 6).Value & "'" & _
        "WHERE [Code] = '" & ActiveSheet.Cells(i, j + 9).Value & "'"

La la commande est accepté mais ne modifie pas les données dans la base.
Par contre avec un seul champ à modifier ca marche.
Je peux donc le faire pour chaque champs mais bon j'en ai quand même 40 des champs donc si vous connaissez un moyen pour que ca marche (peut etre que le AND n'est pas approprié je sais pas) ca serait gentil de me le dire :)

Merci pour les réponses
0
cs_safoua Messages postés 5 Date d'inscription lundi 8 mai 2006 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 17:21
salut tout le monde
 à un boutton nouveau j'ai associé ce  code:
If Datacd.Recordset.EOF Then
Datacd.Recordset.MovePrevious
GoTo b
 ElseIf Datacd.Recordset.BOF Then
 
 Datacd.Recordset.MoveNext
 GoTo b
 
 End If
 
b:




cd1.Text = " "
cd2.Text = " "
cd3.Text = " "
cd4.Text = " "

puis au boutton  enregistrer j'ai associé ce code :


 


On Error GoTo k

Datacd.Recordset.Fields("Titre") = Form6.cd1.Text
Datacd.Recordset.Fields("Nature du contenue") = Form6.cd2.Text
Datacd.Recordset.Fields("Code analytique") = Form6.cd3.Text
Datacd.Recordset.Fields("Thème") = Form6.cd4.Text


Datacd.Recordset.Update


k:
End Sub


le problème c que quand j'ajoute un nouveau enregistrement un autre est écrasé
et parfois il ya un enregistrement  répétée 2 ou 3 fois.

svp aidez moi
merci!


 


 


 


 


 


 




 
0
valliame Messages postés 2 Date d'inscription jeudi 22 février 2007 Statut Membre Dernière intervention 6 février 2008
26 avril 2007 à 13:59
COMMENT FAIRE POUR FAIRE AFFICHER UNE EXECUTION DE REQUETE DANS UNE LISTBOX
0
Rejoignez-nous