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

Requêtes et SQL. Discussion :

OpenRecordset avec variable


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut OpenRecordset avec variable
    Bonjour, est-il possible d'utiliser une variable pour définir le champs dans laquelle la donnée sera extraite.

    Exemple qui ne fonctionne pas: ligne.fields ("champsvar").value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim champsvar As String
     
    champsvar = Article_TT.Value
     
     
    Set base = Application.CurrentDb
    Set ligne = base.OpenRecordset("Select * FROM Personnel WHERE Matricule = '" & FTMatricule.Value & "' ", dbOpenDynaset)
    ligne.MoveFirst
    FTRefTaille.Value = ligne.Fields("champsvar").Value
     
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
      0  0

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 427
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FTRefTaille = ligne.Fields(champsvar)
    Avec ton code tu demandais a trouver un champ dont le nom est [champsvar] et pas le contenu de la variable champsvar.
    Et en VBA Access, .value est a propriete par defaut donc pas besoin de la specifier. Tu peux le faire mais ce n'est pas obligatoire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
      1  0

  3. #3
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Bonjour et merci de l'approche de la solution.

    je vais essayer d'expliquer un peu plus ce que j'aimerais obtenir:

    En fait, avec le code, extraire le contenu se trouvant dans un champs, mais ce champs est variable.

    Il devrait lire dans tout les champs de la table [Personnel] dont le champs [Matricule] est égal à la valeur de "FTMatricule".
    Récupérer la valeur du contenu se trouvant dans un des autres champs de cette ligne.
    Le champs contenant cette valeur varierait mais le nom de ce champs serait donné grâce à ma variable "champsvar".
    La valeur du contenu de ce champs ainsi désigné serait récupérée et donnée comme valeur à "FTRefTaille" (se trouvant dans mon formulaire)

    Pas facile tout cela....
      0  0

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 427
    Par défaut
    Bonjour.

    Tu m'as un peu perdu dans tous tes renvois.

    La solution que j'ai postee va marcher a condition que tu mettes la bonne valeur (le nom du champ voulu) dans champsvar.
    Chaque recordset a une collection Fields qui permet d'acceder a un champ par son nom.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
      0  0

  5. #5
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Désolé, si j'applique le code que tu m'as donné, j'ai un message erreur

    "erreur d'exécution 3061. Trop peu de paramètres. 1 attendu."

    j'ai vérifié et la variable (champsvar) donne bien le nom exact du champs.

    Mais toujours pas d'extraction de la valeur contenue dans ce champs...
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim champsvar As String
     
    champsvar = Article_TT.Value
     
     
    Set base = Application.CurrentDb
    Set ligne = base.OpenRecordset("Select * FROM Personnel WHERE Matricule = '" & FTMatricule.Value & "' ", dbOpenDynaset)
     
    ligne.MoveFirst
    FTRefTaille = ligne.Fields(champsvar)
     
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
      0  0

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 427
    Par défaut
    Bonjour.

    Le "erreur d'exécution 3061. Trop peu de paramètres. 1 attendu." se produit probablement a l'ouverture du recordset, pas a la lecture du champ.

    Verifie ce que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select * FROM Personnel WHERE Matricule = '" & FTMatricule.Value & "' "
    Il y a peut-etre une apostrophe dans ton maticule. Ca expliquerai le message.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Requête avec variable incrémentée sur changement de clé.
    Par souellet dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/09/2005, 23h47
  2. Merge avec variables
    Par kluh dans le forum Oracle
    Réponses: 18
    Dernier message: 25/07/2005, 15h31
  3. [AS2] Pb avec variables dans syntaxe
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 05/07/2005, 12h28
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 12h07
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 18h20

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