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

Résolu
Précédent
  • 1
  • 2
  1. 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
  2. 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
  3. 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
  4. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
     
    je connaissais pas je vais essayer
    0
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      dlookup permet de récupérer une valeur unique dans une table comme le fait un select avec un where bien restrictif.
      0
  7. 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
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      jamais testé pour ce cas-là, mais je ne vois pas pourquoi il ne pourrait pas le récupérer...
      0
  8. 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
  9. 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
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  10. 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
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  11. 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
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  12. 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
  13. 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
    1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      je teste chez moi et je te tiens au courant...
      0
      1. blux Messages postés 2049 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > blux Messages postés 2049 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
  14. ffmanfan Messages postés 25 Date d'inscription   Statut Membre 2
     
    ouf enfin sa marche a merveille.
    Je te remercie Blux.
    0
  15. 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