2009-08-24 6 views
0

Bonne journéems access création par rapport cases à cocher

créés Tableaux = Fournisseurs, Produits

J'ai créé un form.I créé une liste déroulante qui affiche tous les produits d'une entreprise particulière. J'ai besoin de cette combo-box qui affiche tous les produits pour avoir une case à cocher ou tout autre contrôle à côté de chaque produit SO que je serai en mesure de sélectionner plus d'un produit.

Ensuite, comment puis-je créer un rapport uniquement des produits vérifiés.

.... newbie ms access 2007

+1

Pouvez-vous nous dire ce que vous avez essayé et où vous rencontrez des difficultés? Malheureusement, il n'y a pas assez d'informations ici pour nous aider. –

+0

Cela ne semble pas être un bon moyen de configurer cela dans l'accès, sauf si les produits sont listés sous une forme continue, et même ainsi, une case à cocher qui doit être effacée chaque fois peut ne pas être la meilleure approche. – Fionnuala

+0

Est-ce un doublon? http://stackoverflow.com/questions/1305778/ms-access-check-box – JeffO

Répondre

4

Malheureusement, cette nouvelle baisse multi-valeur marée noire vers le bas zone de liste déroulante avec une case à cocher inclus dans les colonnes ne sont pas disponibles à partir du point de vue du développement d'un programmeur. (La possibilité d'utiliser ce contrôle pour nos propres besoins devient plutôt une demande fréquente ces jours-ci - c'est très conthorl)

Je ne suis pas sûr si d'autres affiches sont confuses ou pas au courant de cette nouvelle fonctionnalité dans l'accès 2007 Il est donc tout à fait naturel que vous demandiez cette possibilité d'utiliser cette option de combo pour piloter et alimenter les paramètres d'un rapport.

Malheureusement, sans beaucoup d'astuces de codage et d'utiliser une table liée pour les valeurs sélectionnées, vous ne pouvez pas utiliser ce contrôle. (Donc c'est possible, mais pas facile).

L'approche recommandée dans ce cas est simplement de déposer une zone de liste sur votre formulaire d'invite.

Faites de la première colonne de la liste la clé primaire ou l'ID de produit utilisé en interne dans votre application. Faites la deuxième colonne deuxième la description que l'utilisateur verra et sélectionner dans la zone de liste. (L'assistant doit faire en sorte que la longueur de la première colonne soit nulle afin que les ID de produit ne soient pas visibles par l'utilisateur - sinon vous pouvez le définir manuellement après que l'assistant ait créé la liste pour vous).

Vous devrez ensuite ouvrir le formulaire en mode conception et modifier dans l'autre onglet d'une zone de liste pour définir et autoriser la sélection multiple = oui. Ce paramètre permettra à l'utilisateur de sélectionner plus d'une option dans la zone de liste.

Vous devrez ensuite placer un bouton sur le formulaire avec le code suivant derrière ce bouton qui prend la liste des paramètres ou des valeurs de la zone de liste et les transmet au rapport

Dim MySql   As String 
Dim MySelection As Variant 

MySql = "" 
    If Me.lstProducts.ItemsSelected.Count > 0 Then 
     For Each MySelection In Me.lstProducts.ItemsSelected 
     If MySql = "" Then 
      MySql = "(" 
     Else 
      MySql = MySql & " or " 
     End If 
     MySql = MySql & " ProductID = " & Me.lstProducts.Column(0, MySelection) 
     Next MySelection 
     MySql = MySql & ") " 
    End If 
End If 

Docmd.OpenReprot “nameOfRepor”,acViewPreview,,mySql 

ci-dessus suppose que votre champ pour l'ID de produit est ProductID