IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Le Nbr de valeur requête doit coincider avec le nbr de champs destination


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    opérateur
    Inscrit en
    Août 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : opérateur

    Informations forums :
    Inscription : Août 2018
    Messages : 39
    Points : 19
    Points
    19
    Par défaut Le Nbr de valeur requête doit coincider avec le nbr de champs destination
    Bonjour à tous,

    Je n'arrive pas à trouver, pourquoi j'ai ce message (le nombre de valeur doit coïncider avec le nombre de champs destination).

    Cela ce passe seulement quand je mets des décimales au champs "Prix_unitaire" ex: 1,00€ cela fonctionne////1,20€ j'ai le message d'erreur
    J'ai mis les mêmes formats sur le formulaire et les tables. (monétaire, décimal auto)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set base = Application.CurrentDb
                    requete = "INSERT INTO Detail_temp (ref_det,qute_det,Designation,n_cme,type_exp,n_ote,type_emballage,ville,code_postal,pays,date_exp,civilite,nom_client,adresse_client,Prix_unitaire_HT,Prix_total_HT,poids_unitaire,poids_ligne) VALUES ('" & ref_produit.Value & "'," & qte_commandee.Value & ",'" & Designation.Value & "','" & n_cme.Value & "','" & mode_exp.Value & "','" & n_ote.Value & "','" & type_support.Value & "','" & ville.Value & "','" & code_postal.Value & "','" & pays.Value & "','" & date_exp.Value & "','" & civilite.Value & "','" & nom_client.Value & "','" & adresse_client.Value & "','" & prix_unitaire.Value & "'," & total_commande & ",'" & poids_unitaire.Value & "','" & poids_commandee & "')"
                    base.Execute requete
    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Bonjour,

    - J'imagine que prix_unitaire_ht est un nombre, donc pourquoi mettre prix_unitaire entre ' ? Ce n'est pas le seul mais tu n'en mets pas à tous quand même...
    - Dans la requête les nombres doivent être au standard américain, ie avec un . décimal : format(monnombre,"0.00")
    - enfin pour info .value ne sert à rien
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonjour nico84,
    J'imagine que prix_unitaire_ht est un nombre, donc pourquoi mettre prix_unitaire entre ' ? Ce n'est pas le seul mais tu n'en mets pas à tous quand même...
    pour info, avec VALUES dans une requête INSERT on peut utiliser les apostrophes ' ou les doubles guillemets "" (c'est même conseillé) avec tous les types de données (texte, numérique, date) et comme çà, ça passe avec le séparateur de décimales local ","
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    opérateur
    Inscrit en
    Août 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : opérateur

    Informations forums :
    Inscription : Août 2018
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour votre retour

    Je pensais que la double quote était réservée pour le texte et que la double quote + simple quote etait pour les valeurs numériques.

    Je vais donc essayer de mettre double et simple quote partout.

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    pour info, avec VALUES dans une requête INSERT on peut utiliser les apostrophes ' ou les doubles guillemets "" (c'est même conseillé) avec tous les types de données (texte, numérique, date) et comme çà, ça passe avec le séparateur de décimales local ","
    Rhooo trop fort ce Jet
    Le pire c'est que j'utilise cette possibilité pour les dates mais cela ne m'est pas venu à l'idée pour les non entiers
    Alors c'est total_commande qui fait le bug car il n'a pas de '

    J'ai quand même 2 remarques :
    - bonjour la portabilité SQL
    - je reste convaincu que .value est optionnel aussi dans ce cas car il n'a pas d'incidence sur la string créée
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Rhooo trop fort ce Jet
    de mémoire sur SQL Oracle c'était pareil ...

    je reste convaincu que .value est optionnel
    totalement d'accord et même inutile car c'est la propriété par défaut
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Je vais donc essayer de mettre double et simple quote partout.
    euh ... c'est mieux l'un ou l'autre ou alors je n'ai pas compris ce que tu veux dire.

    Ici pour un INSERT INTO avec VALUES les guillemets (ou doubles quotes) c'est toujours pour délimiter une valeur de type String, ce qui est le cas de la variable requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = "INSERT INTO .. VALUES(..."
    les valeurs sont à mettre entre apostrophes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... VALUES('valeur1', 'valeur2', 'valeur3' ...)"
    ou entre guillemets qu'il faut doubler pour éviter une erreur de syntaxe car elles sont à l'intérieur d'une variable de type String:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... VALUES(""valeur1"", ""valeur2"", ""valeur3"" ...)"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2012, 18h19
  2. [AC-2003] requête analyse croisée avec plusieurs valeurs.
    Par issane dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/05/2011, 18h20
  3. [AC-2003] Requête analyse croisée avec 2 valeurs !?
    Par damsmut dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/07/2009, 17h05
  4. Réponses: 2
    Dernier message: 31/01/2007, 10h49
  5. Récupérer valeurs d'un formu. avec une requête
    Par snoopy69 dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2005, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo