OVH Cloud OVH Cloud

récupérer la taille d'une partie d'un champ dans une requete

3 réponses
Avatar
oualaléreur
Bonjour,

Dans une requ=EAte, j'ai besoin de r=E9cup=E9rer la taille du champ
entr=E9 dans une combo-box. C'est aussi la taille de la partie d'un
champ texte situ=E9e avant le premier caract=E8re =AB / =BB, ce dernier
=E9tant pr=E9sent dans une des tables de la base, ce qui n'est pas le
cas du premier (puisque ce n'est que le d=E9but de ce champ).

J'ai d=E9ja essay=E9 avec la fonction Left suivie de InStr (qui retourne
un Long) , mais la requete est alors trop compliqu=E9e pour etre lue par
access. Et je ne connais pas la marche =E0 suivre pour remplacer la
partie InStr... par une variable. Suis d=E9butant en VBA...

Donc je cherche des solutions, toute proposition est la bienvenue, et
si c'est un peut obscur, n'h=E9sitez pas =E0 me poser des questions.

merci

3 réponses

Avatar
oualaléreur
Pour compléter ma question :

J'ai pensé utiliser Left([Tbl_CIS]![SchematicPart],Taille()) Like
[combo_Schematic_Library] & "*" dans ma requête et rafraîchir
taille dans l'event afterupdate de la première combo-box :

Private Sub combo_Schematic_Library_AfterUpdate()
Dim taille As Integer
taille = InStr([Tbl_CIS]![SchematicPart], "")
End Sub

Puis de passer par la fonction :

Public Function Taille() As Integer
Taille = taille
End Function

Mais je ne sais ni si j'oublie quelque chose, ni ou placer la
fonction Taille.
Avatar
Pierre CFI [mvp]
bonjour
tu peux donner ce que tu as écrit dans la req
pour l'autre solution il ne faut pas donner le méme nom à ta fonction et ta
variable, de plus déclare là en public dans un module
mais une requete devrait fonctionner à condition d'avoir bien choisit le no
de colonne de ta liste :o)

--
Pierre
MVP microsoft Access
Plein de choses à voir ici :
http://users.skynet.be/mpfa/

"oualaléreur" a écrit dans le message de news:

Pour compléter ma question :

J'ai pensé utiliser Left([Tbl_CIS]![SchematicPart],Taille()) Like
[combo_Schematic_Library] & "*" dans ma requête et rafraîchir
taille dans l'event afterupdate de la première combo-box :

Private Sub combo_Schematic_Library_AfterUpdate()
Dim taille As Integer
taille = InStr([Tbl_CIS]![SchematicPart], "")
End Sub

Puis de passer par la fonction :

Public Function Taille() As Integer
Taille = taille
End Function

Mais je ne sais ni si j'oublie quelque chose, ni ou placer la
fonction Taille.
Avatar
oualaléreur
Bonjour,

le problème venait effectivement de la requête : Expr1:
Right(Tbl_CIS!SchematicPart,Len(Tbl_CIS!SchematicPart)-InStr(Tbl_CIS!Schema ticPart,""))
pour la liste, et
Left([Tbl_CIS]![SchematicPart],Len([combo_Schematic_Library])) pour
filtrer avec comme critère : Like [combo_Schematic_Library].
(juste)

Au lieu de :
(Left([Tbl_CIS]![SchematicPart],InStr([Tbl_CIS]![SchematicPart],"")-1))
Like [combo_Schematic_Library]. (faux)

C'est plus simple et quand même plus logique. Merci