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 :

comment récupérer résultat de requête SQL dans zone de liste ? [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut comment récupérer résultat de requête SQL dans zone de liste ?
    Bonjour,
    j'essaye de remplir une zone de liste "Code postal" en fonction de la saisie dans une zone de liste "Communes". Pour cela, je souhaite utiliser le résultat d'une requête SQL.
    Le code ci-dessous me renvoie l''erreur "Incompatibilité de type". La dernière ligne du "If" est en commentaire car elle me renvoie l'erreur "Membre de méthode ou de données introuvable".
    En résumé, rien ne fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub ComboBoxCommune_Change()
     
    If Not IsNull(ComboBoxCommune) Then
        ComboBoxCP.RowSourceType = "Table/Query"
        Dim sqlString As String
        sqlString = "select code_postal from cp_communes where commune = " & ComboBoxCommune.Value
        ComboBoxCP.RowSource = sqlString
        'ComboBoxCP.Requery
    End If
     
    End Sub
    Merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    jlp65,

    si commune est de type texte alors ta chaîne devient comme çà :

    sqlString = "select codepostal from T_CodesPostaux where commune = '" & ComboBoxCommune.Value & "';"
    Ceci dit il faut également vérifier que la valeur codePostal issue du select correspond bien au type de données dans lequel tu souhaites enregistrer ta valeur (le sourcecontrol doit correspondre au type de champ de ton select). Autrement dit si tu stockes dans un id (entier long), un codepostal de type text, çà va générer une erreur.

    JimBoLion

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Merci pour la petite correction pour le code SQL.

    Pour le reste, mon code postal est de type texte dans ma table ...

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    jlp65,

    La requête fonctionne t'-elle ?
    et tu stockes ta valeur récupérée dans un champ de type ?

    JimBoLion

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    La requête ne fonctionne pas car le code bloque avant son exécution (au niveau de la première ligne dans le bloc "If"). Message : "Incompatibilité de type" et j'ai aussi : "ComboBoxCP.RowSourceType = <Membre introuvable>"

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Sinon, pour répondre à ta question, il me semble que les zones de liste reçoivent automatiquement des données de type Texte ...

  7. #7
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    jlp65,

    Sinon, pour répondre à ta question, il me semble que les zones de liste reçoivent automatiquement des données de type Texte ...
    Oui et en réception dans la table destination ? (texte également ou entier) - Envoyer un texte dans un id ne fonctionnera pas Mais de toute façon la ligne indiquant l'erreur n'est pas assujettie à ce problème de type de données.

    Je pense que le problème est lié plus aux noms des contrôles que de ton code (qui lui semble cohérent)

    Je t'envoie une base exemple reprenant le même code pour que tu puisses corriger ton erreur

    JimBoLion
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Euh ... je suis un peu perdu, là ! Il n'y a pas de table de destination. Je veux juste modifier une zone de liste en y mettant dedans la sortie d'un SELECT. Le problème est que je ne maîtrise pas vraiment Access et ses "objets" (formulaires, états ...). Je suis parti au départ d'une macro Excel et j'aurais voulu la transposer sur Access pour accélérer les recherches de code postal (sur Excel, je faisais une recherche "manuelle", mais avec l'ensemble des codes postaux français c'est un peu long)

    Quoi qu'il en soit, j'ai examiné ta table et j'ai été un peu surpris que le SELECT que tu mets pour la zone de liste de code postal ne mentionne pas la commune (juste un "SELECT codepostal" et pas de "WHERE commune = ..."). Mais, encore une fois, je n'ai pas l'habitude d'Access ... Je crois qu'une auto-formation s'impose !

    Par rapport au formulaire VBA, ce qui est un peu dommage, c'est que le code (en supposant qu'il n'y en ait qu'un correspondant) ne s'affiche pas automatiquement (il faut cliquer sur le contrôle pour qu'il s'affiche).

    Merci pour ton aide !

  9. #9
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    jlp65,

    Si regarde bien le code VBA de l'evenement on clic.

    C'est n'est que copie conforme de ton code. Tu peux oublier le stockage dans la table. Ce n'était qu'un exemple car je n'avais pas eu réponse à mes différentes questions.Dans la boîte liste je choisi le code postal exclusivement car à quoi sert de sélectionner une commune si celle ci est déjà intégrée dans la première boîte liste ?

    JimBoLion

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Oui. Je suis OK avec ça. Si ça ne marchait pas chez moi, c'est peut-être que mon "formulaire" était en fait un formulaire importé depuis Excel VBA.


    Citation Envoyé par jimbolion Voir le message
    jlp65,

    Si regarde bien le code VBA de l'evenement on clic.

    C'est n'est que copie conforme de ton code. Tu peux oublier le stockage dans la table. Ce n'était qu'un exemple car je n'avais pas eu réponse à mes différentes questions.Dans la boîte liste je choisi le code postal exclusivement car à quoi sert de sélectionner une commune si celle ci est déjà intégrée dans la première boîte liste ?

    JimBoLion

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Pour ce genre de problème, voyez aussi le tutoriel de Pierre Fauconnier Sélection d'une donnée par l'une ou l'autre de ses propriétés.

  12. #12
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Claude,

    Toujours le bon tuto à portée de main

    Jm

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/04/2008, 17h40
  2. Réponses: 5
    Dernier message: 26/02/2008, 12h45
  3. Réponses: 13
    Dernier message: 26/07/2007, 08h50
  4. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 15h25
  5. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07

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