Vba access pb de connection bdd et pb requète - Page 2

Résolu
Précédent
  • 1
  • 2
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
G peut être trouver une alternative a sa je vais finalement combiner les deux tables (je supprime la table tarifs et l'insère dans la table Produit) et pour les dates et l'année je ferai un formulaire de mise a jour.
Parce que là je croi que sa ne va jamais marcher.
Merci quand pour ces aides; ça m'a aidé a mieux comprendre la combinaison vba sql.
Encore merci a vous pour votre réactiviter.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
Bonjour,
Pour mon sql en faite il suffit d'enlever le ".Text" qu'il y a dans les variables.
Maintenant il accepte mon sql.
Après il suffit que les variable soit du même format. Sa c'est autre chose.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
Bonjour,
G une erreur dans ma requète mais je ne sais pas où.
Enfin C le débeugueur de visual basic access 2007 qui me dit :
Erreur 3067: la requête doit être construite à partir d'au moins une table ou une requête source.

Voilà le code:

reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", (SELECT Année FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateActualisation FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT PrixHT FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Remise FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateDébut FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateFin FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Commentaire FROM TblProduit WHERE N°Produit= " & txtN°Pdt & "));"

Merci d'avance.
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
J'insiste : on ne met pas un select dans un value, il faut contruire la chaine reqI avec des dlookup à la place des select...
0

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

Posez votre question
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
je connaissais pas je vais essayer
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
dlookup permet de récupérer une valeur unique dans une table comme le fait un select avec un where bien restrictif.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
dlookup ne fonctionne pas pour récupérer les champs de type Numéro auto?
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
jamais testé pour ce cas-là, mais je ne vois pas pourquoi il ne pourrait pas le récupérer...
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
non sa ne marche pas il m'affiche:
erreur 2471:
L'expression entrée comme paramètre est à l'originede l'erreur suivante:<<N°Produit>>.

voilà mon code:
reqS1 = DLookup("N°Propduit", "TblProduit", "N°Produit = " & txtN°Pdt & " ")

reqS1 est déclarer en Variant.

Merci d'avance.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
non C bon cette ligne ne me servait à rien en faite.
Mon insert into marche mais bizarrement en faite il a du mal a rentré les dates (ex: au lieu de rentrée 01/01/2008, il rentre 00:00:43 or il est 8:33) ainsi que les variables string (au lieu de mettre rien il met 1,28652058432935E-03).
C'est vraiment bizarre.

Voilà mon code:

reqS2 = DLookup("Année", "TblProduit", "N°Produit = " & txtN°Pdt & "")
reqS3 = DLookup("DateActualisation", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS4 = DLookup("PrixHT", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS5 = DLookup("Remise", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS6 = DLookup("DateDébut", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS7 = DLookup("DateFin", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", " & reqS3 & ", " & reqS4 & ", " & reqS5 & ", " & reqS6 & ", " & reqS7 & ");"

Merci d'avance.
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
les dates doivent être mises entre #, et en format anglais (mm/jj/aaaa)...

pour les variables string, je ne comprends pas le problème..., la colonne access est décrite en texte ou en numérique ?
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
Autant pour moi G complètement oublier de mettre la colone qu'est en string et G du mal a me rentré dans la tête les # pour les dates.
Sinn G fait les modifs et voilà le résultat:
Erreur 3346:
Le nombre de valeur de la requête doit coïncider avec le nombre de champs destination.

Voilà le code:

reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", #" & reqS3 & "#, " & reqS4 & ", " & reqS5 & ", #" & reqS6 & "#, #" & reqS7 & "#, '" & reqS1 & "');"

Et pour répondre a ta question la colonne est en texte.
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
J'ai du mal à voir, mais ça semble correct, il faudrait donc que tu fasses un affichage via une 'msgbox reqI' pour voir si tu n'as pas oublié de fermer une double-quote ou un truc comme ça...
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
Je crois savoir.
que se passe t-il quand on veut insérer un nombre a virgule??

formalisme insert into:
INSERT INTO NomDeTable (Champ1, ...) VALUES (Val1, ...)

Or si une des valeur est avec une virgule je pense que sa pose problème:
ex: essayer d'insérer 0,13 (soit 13%) sa fera:
INSERT INTO NomDeTable (Champ1, Champ2) VALUES (Val1, 0,13)
!!!!!!
on veut insérer 2 valeur mais du fait du chffre a virgule il pense qu'on en rentre 3. Même si on rajoute un espace ça ne fonctionnera pas car il ne prend en compte les espace que quand il sont entre []. Mais cela n'a aucun sens pour les type numérique, on utilise ça uniquement dans le cas de données textes contenant des espaces (ex: [salut a tous]).

Comment faire pour insérer des chiffres a virgules??

Merci d'avance.
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
t'as essayé le point décimal ? vu qu'on est en format british, ça m'étonnerait pas qu'il faille le mettre en lieu et place de la virgule...
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
c'est sa le problème mon champ est de type numérique et plus précisément pourcentage et de base il met les virgules.
Mais a mon avis si je mais:
INSERT INTO NomTable (Champ1, Champ2) VALUES ([Val1] ,[Val2])
Ça contredit ce que j'ai dit mais il y a que les cons qui ne change pas d'avis^^.
Qui ne tante rien a rien au point où j'en suis.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
Ça ne fonctionne toujours pas avec les []. Ça me dit qu'il manque une donnée.
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449
 
je teste chez moi et je te tiens au courant...
0
blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention   3 449 > blux Messages postés 19354 Date d'inscription   Statut Modérateur Dernière intervention  
 
en le mettant entre simple quote '0,15' ou en le mettant avec un point décimal 0.15, ça marche...
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
ouf enfin sa marche a merveille.
Je te remercie Blux.
0
ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
 
il faut impérativement mettre des ' pour les nombres a virgule (dans le cas ou vous mettez des virgules) car sinon sa créer une erreur. G eu le même problème avec un update.
En tout cas encore merci.
0
Précédent
  • 1
  • 2