2009-05-29 12 views
1

Ici, je suis à nouveau. J'ai 3 comboboxes sur mon formulaire ie cmbPart_number, cmbPart_name et cmbEOnumber. Tout ce que je veux savoir, c'est comment les boîtes cmbPart_name et cmbEO_number sont autopopulées lorsque l'utilisateur fait une sélection à partir de cmbPart_number. Ce que j'ai essayé à ce jour est l'ajout part_name et EO_number dans la requête source de ligne de SQL et dans la source de contrôle de cmbpart_name j'ai essayé cmbpart_name (valeur) = cmbpart_number.column (1)Auto remplir une zone de liste déroulante

Toute aide à ce qui est vraiment apprécié

Répondre

3

Vous devriez être en mesure de le faire en mettant l'RowSource en cas AprèsMAJ

Private Sub cmbPart_number_AfterUpdate() 

    cmbPart_name.RowSource = "...WHERE [PartNumber] = '" & _ 
                cmbPart_number.value & "'; " 
    cmbPart_name.Requery 

End Sub 

Voici une promenade à travers sur les différentes façons de implement cascading combo boxes in Access

+0

Hey Jeremy. Merci pour la mise à jour rapide. J'ai essayé ce code dans la mise à jour après Evern mais il n'a pas fonctionné. La seule différence dans le comportement que j'ai vu est qu'avant le code, je pouvais voir les valeurs dans la combobox nom_part. Maintenant je ne sais pas. – TT1611

+0

n'est pas là une façon plus simple de le faire dans l'accès sans entrer dans le codage VB? – TT1611

+0

TT1611 - Vous pourriez être en mesure de faire quelque chose avec Macro, mais VBA est la bonne façon de le faire. – BIBD

0

Je savais qu'il devait y avoir un moyen simple de faire e est sans creuser profondément dans VB. Mon premier combobox ie cmbPart_number, j'ai modifié comme suit - Row Source a tous les 3 champs dans la requête SQL à savoir SELECT numéro_part, nom_part, EO_number des pièces ORDER BY ...; J'ai modifié le nombre de colonnes à 2 car Access compte toujours la première colonne d'une table sous le numéro 0. Donc, sa colonne 0,1 & 2 pour tous les 3 champs. Mes largeurs de colonne sont 1 "; 0"

Ensuite, j'ai modifié la source de contrôle cmbPart_name pour lire = cmbpart_number.column (1). Sa source de ligne a une instruction SELECT SELECT PART_NUMBER, part_name à partir de pièces, ORDER BY ... Nombre de colonnes est 1 et la largeur de colonne est 0 "; 1"

Enfin pour cmbEO_number, source de contrôle est = cmbpart_number.column (2). L'instruction de sélection de la source de ligne est SELECT numéro_de_part, numéro_OE FROM parties ORDER BY ... Le nombre de colonnes est 1 et la largeur de colonne est 0 ", 1"

Cela fonctionne maintenant correctement et toute entrée sélectionnée dans la zone cmbPart_number autopopule l'autre 2. Merci à tous pour votre aide.

Questions connexes