Aide pour une requete

Signaler
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,

voilà je n'arrive pas à insérer une donnée dans ma table.

Pourtant ma requete fonctionne sous phpmyadmin ou autre donc je ne vois pas le soucis:

Voici ma requete:

sql = "INSERT INTO consommables VALUES (" & "'" & nom_consommable & "'," & "'" & reference & "'," & "" & id_type & ")"

mes champs de ma table consommables:

id, integer(5) auto_increment
nom_consommable varchar(30)
reference integer(10)
id_type integer(1)

Je pense que c'est pour le numéro automatique que ça déconne, vb me dit l'erreur suivante:

Le nombre de valeur de la requete doit correspondre avec le nombre de champs de destination

11 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Si référence est de type Integer, pourquoi l'entourer de ' '

essaie peu être simplement

Sql = "INSERT INTO consommables VALUES ('" & nom_consommable & "'," & reference & "," & id_type & ")"

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

je me suis tromper excusez moi , type varchar également mais ce n'est pas une erreur de type incompatible mais de correspondance des champs
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

sql = "INSERT INTO consommables VALUES (" & "'" & nom_consommable & "'," & "'" & reference & "'," & "" & id_type & ")"


MsgBox (sql)


rc.Open sql, cx, adOpenDynamic, adLockOptimistic


rc.Update


rc.Close

Voilà exactement mes lignes de code
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ca coince a cause de ton

id, integer(5) auto_increment

délcare les champs que tu insères :

"INSERT INTO consommables (nom_consommable, reference, id_type) VALUES (..."

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

et maintenant il me dit qu'il peut pas si l'objet est fermé
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ca, ca vient du code qu'il y a autour....

cx.Execute "INSERT INTO ....."

devrait suffire

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Ca c'est parceque cx est ferme peu etre

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut tout le monde,

Comme le fait remarqué Jrivet, est-ce que ta connection est ouverte en local dans un formulaire, ou dans un module dés le lancement de ton aplli ?

Car le mieux et espère ne pas me trompé, c'est que ta connection à ta base soit toujours ouverte, et de la, tu fait "mumuse" avec le recordset et la connection...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
un Recordset ? pour une requete d'insertion ? euh....

a moins de faire des .AddNew... pas besoin ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut Renfield,

Du moins c'est de la façon dont je procède, ma connection à ma base étant faite une bonne fois pour toute, et pour le reste je fait ainsi :

RstAdo.Open Sql, CnxAdo, adOpenDynamic, adLockPessimistic

Maitenant, je suis comme certains sur ce forum, toujours entrain d'appprendre, donc si ne pas du tout de cette façon qu'il faut procédé, ben, on va changer tout cela....
A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ben juste que un Open (recordset) avec une requete Insert Into, Update ou Delete....

pas besoin, quoi...

un :

CnxAdo.Execute Sql

suffit...

Renfield
Admin CodeS-SourceS- MVP Visual Basic