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 :

Résultat d'une liste déroulante dans une textbox [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Résultat d'une liste déroulante dans une textbox
    Bonjour à tour,

    Je suis sous Access 2007.

    Voilà je galère un peu, j'ai suivi un tuto simple.

    Ca fonctionne, mais au lieu d'afficher le résultat dans une autre liste deroulante, je voudrais que ce soit dans une "zone de liste" mais je n'y arrive pas.

    J'ai créé ce code d’évènement sur la 1ere liste déroulante.

    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
    16
    17
    18
    19
    Private Sub cmbDOSSIER_Click()
    Dim lngIDDOS   As Long
    Dim SQL        As String
     
      '' Vérifie que l'on a cliqué sur une catégorie pour éviter le NULL
      If Not IsNumeric(Me!cmbDOSSIER) Then Exit Sub
      '' Affecte la valeur de IDCategorie à la variable lngIDDOS
      lngIDDOS = Me!cmbDOSSIER
      '' Construit la chaîne SQL avec la catégorie concernée
      SQL = "SELECT IDENT, X, Y, ALT FROM WAYPOINT WHERE IDDOS =" & lngIDDOS & ""
      '' Affecte la chaîne SQL à la liste des moulins
      cmbListe.RowSource = SQL
      '' Déverrouille la liste des moulins
      cmbListe.Enabled = True
      '' Donne le focus la liste des moulins
      cmbListe.SetFocus
      '' Déroule la liste des Liste
      cmbListe.Dropdown
    End Sub
    Ca bloque au niveau de : cmbListe.RowSource = SQL

    cmbDOSSIER est ma 1ere liste deroulante (valeur IDDOS et NOM extrait d'une requête SQL)
    cmbListe est la 2eme liste deroulante dans le tuto , mais quand je met une "zone de liste" ca ne fonctionne plus !! Elle contient 4 colonnes

    Avez vous une idée ? merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Je ferais simplement ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmbDOSSIER_Click()
     
     Me.cmbListe.RowSource = Me.cmbDOSSIER.RowSource
     
    End Sub

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Merci de ta réponse ca m'a aidé, j'ai modifié mon code mais j'ai aussi modifié mon formulaire :
    -cmbDossier Liste déroulante 1
    -cmbListe Liste déroulante 2
    -Liste18 Zone de liste

    Je sélectionne dans ma 1ere liste déroulante un code INSEE
    Ça me rempli ma 2eme liste déroulante avec le champ IDENT
    Mais quand dans la 2eme liste déroulante je sélectionne une ligne, je voudrais que ça me remplisse la Liste18 avec X et Y mais je n'y arrive pas .

    Quand je sélectionne une ligne dans la 2eme liste déroulante il ne se passe rien.

    Quand je clique en haut dans Access sur tout Actualiser il me dit :
    "Erreur de syntaxe (opérateur absent) dans l'expression IDENT =2800001M "
    280001M = IDENT ca veut dire qu'il récupère bien la valeur de la 2eme liste déroulante mais après plus rien, on dirait que ça vient de ma requête mais elle me parait correcte pourtant !!

    Mais en modifiant ma seconde requête par
    SQL = "SELECT X, Y, ALT FROM WAYPOINT WHERE IDENT ='280001M'"
    Là ca fonctionne ! mais c'est fixe !

    Voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub cmbDOSSIER_Click()
    Dim lngIDDOS   As Long
    Dim SQL        As String
     
      '' Vérifie que l'on a cliqué sur une catégorie pour éviter le NULL
      If Not IsNumeric(Me!cmbDOSSIER) Then Exit Sub
      '' Affecte la valeur de IDCategorie à la variable lngIDDOS
      lngIDDOS = Me!cmbDOSSIER
      '' Construit la chaîne SQL avec la catégorie concernée
      SQL = "SELECT IDENT FROM WAYPOINT WHERE IDDOS =" & lngIDDOS & ""
      '' Affecte la chaîne SQL à la liste des moulins
       cmbListe.RowSource = SQL
      '' Déverrouille la liste des moulins
      cmbListe.Enabled = True
      '' Donne le focus la liste des moulins
      cmbListe.SetFocus
      '' Déroule la liste des Liste
      cmbListe.Dropdown
    End Sub
     
    Private Sub cmbListe_BeforeUpdate(Cancel As Integer)
     
    End Sub
     
    Private Sub cmbListe_Click()
    Dim IIDENT   As String
    Dim SQL        As String
     
      IIDENT = Me!cmbListe
      '' Construit la chaîne SQL avec la catégorie concernée
      SQL = "SELECT X, Y, ALT FROM WAYPOINT WHERE IDENT =" & IIDENT & ""
       Me.Liste18.RowSource = SQL
      Liste18.Enabled = True
    End Sub



    une idée ???

    Merci d'avance

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Résolu
    Finalement j'ai trouvé mon erreur , enfin pas réélement mais ca vient du fait que dans IDENT il y a une lettre, visiblement ca ne fonctionne que avec des chiffres, je suis donc passé par IDWPT qui est un chiffre et là ca fonctionne.

    Merci à tous.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/02/2012, 16h59
  2. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  3. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  4. Afficher la valeur choisie d'une liste déroulante dans une textbox
    Par bouchette63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 14h26
  5. [VB6]Créer une liste déroulante dans une dataGrid
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2006, 09h32

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