Bonjour à tous,
J'utilise Access 2003.
Je cherche "simplement" à utiliser une variable string pour la condition where d'une requête select.
Ma table s'appelle Outils, la clé est N° d'identification et Type d'outil un champ dont la valeur est commune à plusieurs enregistrements.
Voici le code essayé:
Dans un module
Dans ma procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public num_identification As Variant Public Function numident() As Variant numident = num_identification End Function
J'obtiens l'erreur 3021, aucun enregistrement en cours alors que je suis certain d'avoir un enregistrement correspondant puisque la valeur de ma variable num_identification provient d'une listbox qui elle-même récupère les numéros d'identification existants dans ma table.
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 Dim bdd As DAO.Database Dim tableactive As DAO.Recordset Dim type_outil As String 'On récupère la variable saisie par l'utilisateur dans le formulaire actif num_identification = Me.Listbox_numoutil.Value 'Sélectionner la bdd voulue Set bdd = CurrentDb 'Je pense qu'il y a un probléme de syntaxe ici type_outil = "SELECT [Type d'outil] from [Outils] where [N° d'identification]= numident()" Set tableactive = bdd.OpenRecordset(type_outil, dbOpenDynaset) If Not tableactive.EOF Then tableactive.MoveFirst While Not tableactive.EOF tableactive.MoveNext Wend Else MsgBox "La requête ne correspond à aucun enregistrement." End If 'J'essaye d'utiliser le résultat de la requête If tableactive("Type d'outil").Value = "F" Then masquer_masques_saisie Me.Textbox_diafiliere.Visible = True End If
Est-ce que vous avez une idée des erreurs que j'ai commises?
Merci d'avance pour vos réponses.
Partager