Utilisation chaine de caracteres
Résolu
boborog
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
boborog Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
boborog Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sur mon formulaire "Formulaire X" dans une procedure, j'ai ceux-ci
Private Sub Commande148_Click()
On Error GoTo Err_Commande148_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Formulaire saisie tous timbres"
stLinkCriteria = "[Numéro YT]=" & "'" & Me![Numéro YT] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Commande148_Click:
Exit Sub
Err_Commande148_Click:
MsgBox Err.Description
Resume Exit_Commande148_Click
End Sub
qui me permet d'ouvrir par click sur bouton 148 le formulaire ""Formulaire saisie tous timbres" sur un enregistrement qui possede le meme Numéro YT que dans le "Formulaire X".
Je voudrais faire la meme chose mais en comparant une chaine de caractère de ce numéro YT
EX: Actuel Sur mon "formulaire X" numero YT =TI00107a,, en cliquant sur le bouton 148, cela ouvre "Formulaire saisie tous timbres" sur l'enregistrement avec Numero YT = TI00107a,,
Maintenant, je voudrais ouvrir "Formulaire saisie tous timbres" sur l'enregistrement avec Numero YT = TI00107 c'est à dire correspondant à une chaine de caractère de Numero YT sur mon "Formulaire X".
J'espere que mes explications conviendront.
A voir également:
- Utilisation chaine de caracteres
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
1 réponse
Bonsoir,
Dans ce cas il faut utiliser la fonction Left(ChaineDeCaractère,NbCaractereARetenir)
càd dans le cas donné en exemple Left(Me![Numéro YT],7)
mais il est possible de ruser si on ignore le nombre de caractères du contrôle ou de la chaîne, mais qu'on sait celui qu'on veut exclure à la fin. Il suffit alors de lui faire calculer le nombre de caractères de la chaîne len(Chaine) et de soustraire le nbre à exclure (n): len(Chaine) - n
L'aide est correctement faite et vous en dira plus, plus en détail.
Cordialement.
NB qui me tient à coeur : Proscrivez de vos noms d'objets (tables, requêtes, champs, formulaires, etc, etc, tout) les espaces et les accents. Vous vous éviterez de très graves désagréments.
https://forums.commentcamarche.net/forum/affich-26623299-fichiers-corrompus-erreurs-lecture-seule-sur-access
Dans ce cas il faut utiliser la fonction Left(ChaineDeCaractère,NbCaractereARetenir)
càd dans le cas donné en exemple Left(Me![Numéro YT],7)
mais il est possible de ruser si on ignore le nombre de caractères du contrôle ou de la chaîne, mais qu'on sait celui qu'on veut exclure à la fin. Il suffit alors de lui faire calculer le nombre de caractères de la chaîne len(Chaine) et de soustraire le nbre à exclure (n): len(Chaine) - n
L'aide est correctement faite et vous en dira plus, plus en détail.
Cordialement.
NB qui me tient à coeur : Proscrivez de vos noms d'objets (tables, requêtes, champs, formulaires, etc, etc, tout) les espaces et les accents. Vous vous éviterez de très graves désagréments.
https://forums.commentcamarche.net/forum/affich-26623299-fichiers-corrompus-erreurs-lecture-seule-sur-access
stLinkCriteria = "[Numéro YT]=" & "'" & Me![Numéro YT] & "'"
Si ce n'est que cette ligne à rectifier ?
J'ai essayé mais je n'arrive pas.
stLinkCriteria = "Left([Numéro YT],7)=" & "'" & Left(Me![Numéro YT], 7) & "'"
Mais j'ai mal etudier mon problème et cela resoud qu'une partie.
Donc j'ai mes differents enregistrement avec numéro YT = TI00107a,, puis TI00107b,, puis TI00107c,, ect
Mon but est donc sur le formulaire X, lorsque j'ai TI00107a.. c'est d'atteindre sur l'autre formulaire l'enregistrement qui correspond à TI00107... et uniquement celui là.
D'ailleurs peut-etre qu'avec len cela marcherais mieux sachant que je veux toujours éliminer les 3 derniers caracteres quelque soit le nombre de caracteres avant.
Finalement TI00107a.. doit retrouver TI00107...
TI00107b.. doit retrouver TI00107...
TI00107c.. doit retrouver TI00107...
ect..ect
' Prend les 7 1er caractères
NumeroYT=left(Me![Numéro YT],7)
stLinkCriteria = "[Numéro YT]=" & "'" & NumeroYT & "'"
ou bien
' Ne prend pas le dernier caractère
NumeroYT=left(Me![Numéro YT], len(Me![Numéro YT])-1)
stLinkCriteria = "[Numéro YT]=" & "'" & NumeroYT & "'"
Le reste étant identique.
Attention: l" ' " en début de ligne signale à VBA qu'il s'agit d'un commentaire qui n'est pas pris en charge dans le déroulement de la procédure
Ex: TI00107... ou TI00107a.. ou TI00107Aa. ou encore TI00107Aba
Peut-etre une autre solution dans tes bagages car il m'est impossible de changer mon système de numérotation ?
Encore merci et salutations