waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
22 mars 2007 à 23:14
dpeali
Messages postés67Date d'inscriptionvendredi 10 août 2012StatutMembreDernière intervention12 avril 2013
-
4 sept. 2012 à 16:04
bonjour,
Certain vont trouver que je pose souvent des question ces temps ci mais j'ai une bonne excuse je debute avec les BD et SQL.
voila mon probleme, j'ai une table "CT" comportant les champs:
num (clef primaire a numero auto)
-lot
-perempt (date)
-recept (date)
-fin (date)
J'arrive s'en soucis a modifier ou supprimer un enregistrement mais mon probleme survient a la creation de l'enregistrement....
j'utilise la fonction SQL "insert into" mais j'ai un soucis pour car je dois injecter le meme nombre de champ que ceux present sur la table... la se presente deux problemes:
- comment faire pour que le champ num (clef primaire) s'incremente de facon auto
- comment fait pour injecter un champ vide
j'espere avoir été assez clair, merci de votre aide a un piti mais alors tout piti "programmeur" vb6 debutant
mais il me met l'erreur: "le nombre de valeur de la requete doit coincider avec le nombre de champs de destination"
le probleme c'est que j'ai 5 champ dans la table "CT" est que je veux injecter 5 valeurs...
rq: dans le precedent message j'ai oublié d'ecrire le champ "prod"
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 mars 2007 à 00:39
Bonsoir Happy Waspy,
Si tu as 5 champ à insérer
*ta requête doit se résenter ainsi:
INSERT INTO TATABLE ( CHP1, CHP2, CHP3, CHP4, CHP5 )
SELECT '" & Valeur1 & "' AS Expr1,'" & Valeur2 & "' AS Expr2,'" & _
Valeur3 & "' AS Expr3,'" & Valeur4 & "' AS Expr4,'" & Valeur5 & "' AS Expr5;"
N' oublie pas que :
1° ton champ n° auto ne doit pas figurer dans la liste des champ .
S il fait parie des cinq, n' énumère ue 4 et fais de même
dans la partie Value.
2° pour les champs numériques,
tu connais la chanson...n' es-ce pas ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 mars 2007 à 00:51
Autrement dit :
INSERT INTO CT ( prod, perempt, recept , fin )
SELECT '" + prod.Text + "' AS Expr1,#" + perempt.Text + "# AS Expr2,#" & _
+ recept.Text + "'# AS Expr3,#" + fin.Text +"#"
tu as donc quatre valeurs pour quatre chmp.
tu vois que j' ai exclu le n° auto. puisqu' il s' ajoute automatiquement,
et les # c' est pour les champs date
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013 23 mars 2007 à 11:40
merci de ton aide ChaibatO5,
bon j'ai utilisé ta requete SQL sous cette forme:
cn.Execute "INSERT INTO CT ( prod, perempt, recept , fin ) SELECT '" + prod.Text + "' AS Expr1,#" + perempt.Text + "# AS Expr2,#" & _recept.Text + "# AS Expr3,#" + fin.Text + "# AS Expr4"""
et j'ai l'erreur "la requete doit etre construire à parit d'au moins une table ou une requete source"
sinon je ne savais pas qu'on pouvait melanger une requete INSERT avec une requete SELECT.... a moins que le probleme vienne de là et que je n'ai pas bien compris (c'est fort probable)
j utilise access et vb 6 et voila le message qui m affiche quand je vx ajouter dans la table clients le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination sous vb6
voila le code:
Private Sub cmdEnregistrer_Click()
Dim maConnexion As ADODB.Connection
Dim rsclients As ADODB.Recordset
Set maConnexion = New ADODB.Connection
Set rsclients = New ADODB.Recordset