2017-04-20 4 views
0

Avez-vous des idées pour l'obtention d'une zone de saisie "Entrer la valeur du paramètre" lors de l'exécution de ce code?Zone de liste déroulante affichant l'invite "Entrer la valeur du paramètre" lorsque vous cliquez sur un bouton

Private Sub cmdPrint_Click() 
    Dim str As String 
    On Error GoTo ErrHandler 
    If IsNull(Me.Combo_1) Then 
     MsgBox "Can't print an unsaved record", _ 
     vbOKOnly, "Error" 
     Exit Sub 
    End If 
    str = "Combo_1 = '" & Me!Combo_1 & "'" 
    Debug.Print str 
    DoCmd.OpenReport "rptBarCodeLabels(2)", acViewPreview, , str 
    Exit Sub 
ErrHandler: 
    MsgBox Err.Number & ": " _ 
    & Err.Description, vbOKOnly, "Error" 
End Sub 

Edit: Le bouton est utilisé pour imprimer une étiquette de ce qui est sélectionné dans Combo_1. Une fois le bouton d'impression cliqué, je voulais qu'il affiche le seul enregistrement que j'ai choisi dans le rapport d'étiquette que j'ai référencé. J'utilise Access 2003 si cela veut dire quelque chose.

Répondre

0

Si un nom de champ dans une requête contient la ponctuation (Combo_1), vous devez placer entre parenthèses, comme ceci:

str = "[Combo_1] = '" & Me!Combo_1 & "'" 

Le rapport attend un paramètre, mais pas l'obtenir parce qu'il est pas passé par de la manière correcte.

+0

Il me donne toujours les mêmes résultats –

+0

Quelle est la source d'enregistrement pour le rapport - est-ce une requête? La requête comporte-t-elle un champ nommé "Combo_1"? – AdzzzUK

+0

La source est une requête et n'a pas de champ nommé Combo_1. Combo_1 descend la liste dans la colonne 1 de la requête et j'ai 2 zones de texte qui remplissent les colonnes 2 et 3. La zone de liste déroulante est illimitée pour que je puisse utiliser le menu déroulant et ne pas pouvoir être édité. –