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 :

probleme valeur variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 106
    Par défaut probleme valeur variable
    bonjour,

    access me demande d'entrer une valeur pour le champs correspondant à la variable refcontenant, alors que cette variable est déjà instanciée. Dans le déboggeur, refcontenant prend la bonne valeur, mais dans la requete, refcontenant n a apparemment pas de valeur.

    Merci de m'aider, voici le code des variables et de la requete. Je précise que dans mon formulaire, mes objets portent le meme nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    NumComm = Me.NumComm
    refprod = Me.Produit
    quantiteprod = Me.QteProduit
    refcontenant = Me.Contenant
    nbcontenant = Me.nbCont
     
    reqinsert = "insert into Ligne_Commande "
    reqinsert = reqinsert & " VALUES (NumComm, 1, produit, qteproduit,  refcontenant, nbcont);"

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Bonjour,

    Je pense qu'il faut distinguer les variables "propres" à VBA et celles propres au langage SQL.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reqinsert = "insert into Ligne_Commande "
    reqinsert = reqinsert & " VALUES ( " & Me.NumComm & " , 1,  " & Me.Produit & " , " & Me.Contenant & ", " & Me.nbCont & ");"

    Je n'ai pas pris en compte les régles de transypage :
    Si la variable est de type String => ' " & VARIABLE & " '
    Si la variable est de type Integer ou autre => " & VARIABLE & "
    Si la variaible est de type Date => # " & VARIABLE & " #

    De plus , tu peux encore optimiser ton code en remplacant les Me par Forms(NomFormulaire).Controls(NomControle)

    Cdt

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Bonjour,

    Optimiser en remplaçant le Me par Forms(..), ce n'est pas le terme que j'emploirais.

    Le Me fait référence au formulaire/état/classe courante et donc restreint l'utilisation de la procédure, en l'état, à ce seul périmètre, alors que Forms(..) permet de stocker cette procédure ailleurs dans le code (dans un module notamment).

    Sinon employer l'un ou l'autre ne procurera aucun gain de performance ni de facilité de lecture.

    Sinon rien à dire sur la réponse elle-même sinon qu'il existe un tuto sur les requete en VBA.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 106
    Par défaut
    Citation Envoyé par lelensois16 Voir le message
    Bonjour,

    Je pense qu'il faut distinguer les variables "propres" à VBA et celles propres au langage SQL.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reqinsert = "insert into Ligne_Commande "
    reqinsert = reqinsert & " VALUES ( " & Me.NumComm & " , 1,  " & Me.Produit & " , " & Me.Contenant & ", " & Me.nbCont & ");"

    Cdt
    merci de vos reponses, ma requete fonctionne correctement, mais maintenant, j'ai un autre problème, lié à cette requete.
    access me dit "erreur violation de cle". En fait, les champs NumComm et NumLigne sont des clés primaires.
    NumComm faisant reference au numero de la table commande.

    Ma question, si je peux la poser dans la même discution, c'est de savoir s'il est possible d'inserer des enrregistrements dans une table à cle primaire composée.

    Je viens de lire "la sql applique au vba" de ce site, mais je n'ai pas trouvé de reponse.

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Voici le lien dont fait référence Loufab

    Sinon , tu peux insérer des enregistrements dans une table à clé primaire composée. Après ca dépend de la strucutre de ton modèle entité-association , il faut faire des vérifications de saisie dans le formulaire ( ex : "N° de commande déja enregistrée , veuillez en saisir une autre " )

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 106
    Par défaut
    le problème c'est que ma table est vide, et je voudrais la remplir avec la requete précédente.

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Peux t on avoir plus d'informations concernant les clés primaires ( clé étrangères , table d'origine , idée du contenu des tables ) ?

    Cdt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/11/2011, 19h37
  2. probleme valeur variable
    Par killerti dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/02/2008, 20h52
  3. [langage] Probleme de variable transfert de contenu
    Par Ludo167 dans le forum Langage
    Réponses: 10
    Dernier message: 08/07/2004, 12h40
  4. [algo]probleme de variables hotes ds un insert
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2004, 10h03
  5. Réponses: 2
    Dernier message: 04/01/2004, 16h14

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