Question sur le rapatriement d'une chaîne de caractères
11 réponses
fredonnon
Bonjour,
J'ai une fonction qui rapatrie le nom d'un fichier dans une zone
nommée NomPhoto pour afficher une photo dans un cadre indépendant.
J'ouvre le répertoire du fichier à choisir grâce à la fonction
ChoixDuFichier
Private Sub NomPhoto_Click()
Fichier_Provisoire = ChoixDuFichier
' Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) -
25)
If Fichier_Provisoire <> "" Then
Me.NomPhoto = Fichier_Provisoire
End if
End sub
Public Function ChoixDuFichier() As String
ChoixDuFichier = OpenFile(CurrentProject.Path)
End Function
Par exemple, en cliquant sur la zone NomPhoto, j'atterris dans le
répertoire C:\Mes documents\Perso\V\ et si je choisis le fichier
photo1.jpg (en double cliquant dessus 1 fois), alors j'aurai
C:\Mes documents\Perso\V\photo1.jpg
Je souhaite ne récupérer que le nom du fichier et pas son
emplacement+nomfichier sur le disque dur, c'est à dire dans ce cas là
tout ce qui est après le 25ème caractère.
Il me suffit normalement d'utiliser une fonction Right comme je l'ai
mis. Ca marche sauf que étant donné que je dois à chaque fois calculer
à quel point je dois partir pour avoir le nom du fichier en entier, si
je choisis de prendre
Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) ,
je suis obligé de double cliquer 2 fois (à cause du calcul de
len(ChoixDuFichier) apparemment).
Je me pose la question s'il est faisable de n'avoir qu'une seule fois
à cliquer pour obtenir le nom du fichier seul.
.../... la réaction d'access est normale, ce qui l'est moins, c'est la construction de ta base :o)))
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Fredonnon" a écrit dans le message de news:
Je ne sais pas comment je me débrouille pour avoir les réponses dans un thread et les aides de tout le monde dans un autre ?!?!
Bref, merci pour vos réactions. Voici un complément d'information sur ce qui ce passe. C'est vrai que la table semble ouverte par 2 forms en même temps. J'ai un formulaire qui affiche les enregistrements d'une vidéothèque avec la pochette. Lorsque je souhaite modifier la photo (pochette), j'ouvre un autre formulaire. Je clique dans une zone qui ouvre une fenetre (nouveau formulaire avec l'enregistrement en cours) pour choisir le nouveau nom de fichier vers lequel pointer pour afficher la photo remplaçante. Je lance la mise à jour dans la table sur l'enregistrement dans ce deuxième formulaire. lorsque je le ferme et reviens sur le formulaire principal, je n'ai pas la nouvelle photo à l'écran mais l'ancienne. C'est en changeant d'enregistrement, soit par une liste déroulante pour choisir le titre de film, soit avec les flèches pour changer d'enregistrement que le problème a lieu. Comme si j'étais toujours en mode mise à jour sans avoir validé dans la table qui contient les infos du film.
"Pierre CFI [mvp]" wrote in message news:<ufcZ1h$...
bonjour ce type de message se produit si ta base est partagée et que vous étes plusieurs à faire la méme mise à jour, ou que table est "ouverte" par 2 forms en méme temps,
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Fredonnon" a écrit dans le message de news:
Non non, je suis version 2000.
L'astuce de Pierrre maarche bien ; je l'en remercie bien d'ailleurs.
Je vais aller examiner à la loupe instrrev.
En attendant, cette petite aide me permet bien d'avoir la bonne chaîne de caractères dans la table mais losque je retourne sur mon formulaire de départ et que je vais à l'enregistrement suivant via les fleches, j'ai un message d'erreur avec une légende "Conflit d'écriture". J'ai alors 3 boutons au choix : sauvegarder enregistrement copier dans le presse papier annuler.
Si je fais annuler, que je vais sur un autre enregistrement puis reviens dessus, je me rends compte que tout fonctionne, j'ai bien la bonne image à l'écran.
Vous avez une idée ?
"Maxence HUBICHE" wrote in message news:<u#...
:? euh... il n'a pas parlé d'access 97 ...:? J'ai raté quelque chose ?
"Pierre CFI [mvp]" a écrit dans le message de news: eaz1$
..../... oui, mais cette fonction n'existe pas en 97
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Maxence HUBICHE" a écrit dans le message de news: OlWp#
il y a une fonction géniale pour cela : InstrRev Je t'invite à aller jeter un oeil sur cette fonction dans l'aide (bibliothèque VBA/ Strings)
"Fredonnon" a écrit dans le message de news:
Bonjour,
J'ai une fonction qui rapatrie le nom d'un fichier dans une zone nommée NomPhoto pour afficher une photo dans un cadre indépendant. J'ouvre le répertoire du fichier à choisir grâce à la fonction ChoixDuFichier
Private Sub NomPhoto_Click() Fichier_Provisoire = ChoixDuFichier ' Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) If Fichier_Provisoire <> "" Then Me.NomPhoto = Fichier_Provisoire End if End sub
Public Function ChoixDuFichier() As String ChoixDuFichier = OpenFile(CurrentProject.Path) End Function
Par exemple, en cliquant sur la zone NomPhoto, j'atterris dans le répertoire C:Mes documentsPersoV et si je choisis le fichier photo1.jpg (en double cliquant dessus 1 fois), alors j'aurai
C:Mes documentsPersoVphoto1.jpg
Je souhaite ne récupérer que le nom du fichier et pas son emplacement+nomfichier sur le disque dur, c'est à dire dans ce cas là tout ce qui est après le 25ème caractère. Il me suffit normalement d'utiliser une fonction Right comme je l'ai mis. Ca marche sauf que étant donné que je dois à chaque fois calculer à quel point je dois partir pour avoir le nom du fichier en entier, si je choisis de prendre Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) , je suis obligé de double cliquer 2 fois (à cause du calcul de len(ChoixDuFichier) apparemment).
Je me pose la question s'il est faisable de n'avoir qu'une seule fois à cliquer pour obtenir le nom du fichier seul.
D'avance, merci pour vos réponses ou suggestions.
.../...
la réaction d'access est normale, ce qui l'est moins, c'est la construction de ta base :o)))
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Fredonnon" <fredonnon@yahoo.fr> a écrit dans le message de news: 84192bd7.0402060237.1fcab2e1@posting.google.com...
Je ne sais pas comment je me débrouille pour avoir les réponses dans
un thread et les aides de tout le monde dans un autre ?!?!
Bref, merci pour vos réactions. Voici un complément d'information sur
ce qui ce passe. C'est vrai que la table semble ouverte par 2 forms en
même
temps. J'ai un formulaire qui affiche les enregistrements d'une
vidéothèque avec la pochette. Lorsque je souhaite modifier la photo
(pochette), j'ouvre un autre formulaire. Je clique dans une zone qui
ouvre une fenetre (nouveau formulaire avec l'enregistrement en cours)
pour choisir le nouveau nom de fichier vers lequel pointer pour
afficher la photo remplaçante. Je lance la mise à jour dans la table
sur l'enregistrement dans ce deuxième formulaire. lorsque je le ferme
et reviens sur le formulaire principal, je n'ai pas la nouvelle photo
à l'écran mais l'ancienne. C'est en changeant d'enregistrement, soit
par une liste déroulante pour choisir le titre de film, soit avec les
flèches pour changer d'enregistrement que le problème a lieu. Comme si
j'étais toujours en mode mise à jour sans avoir validé dans la table
qui contient les infos du film.
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> wrote in message news:<ufcZ1h$6DHA.2540@TK2MSFTNGP11.phx.gbl>...
bonjour
ce type de message se produit si ta base est partagée et que vous étes plusieurs à faire la méme mise à jour, ou que table est
"ouverte" par 2 forms en méme temps,
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Fredonnon" <fredonnon@yahoo.fr> a écrit dans le message de news: 84192bd7.0402050511.3d22b455@posting.google.com...
Non non, je suis version 2000.
L'astuce de Pierrre maarche bien ; je l'en remercie bien d'ailleurs.
Je vais aller examiner à la loupe instrrev.
En attendant, cette petite aide me permet bien d'avoir la bonne chaîne
de caractères dans la table mais losque je retourne sur mon formulaire
de départ et que je vais à l'enregistrement suivant via les fleches,
j'ai un message d'erreur avec une légende "Conflit d'écriture". J'ai
alors 3 boutons au choix :
sauvegarder enregistrement
copier dans le presse papier
annuler.
Si je fais annuler, que je vais sur un autre enregistrement puis
reviens dessus, je me rends compte que tout fonctionne, j'ai bien la
bonne image à l'écran.
Vous avez une idée ?
"Maxence HUBICHE" <mh.webmaster@club-internet.fr> wrote in message news:<u#Xir276DHA.1672@TK2MSFTNGP12.phx.gbl>...
:? euh... il n'a pas parlé d'access 97 ...:?
J'ai raté quelque chose ?
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de
news: eaz1$c76DHA.2576@TK2MSFTNGP11.phx.gbl...
..../...
oui, mais cette fonction n'existe pas en 97
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Maxence HUBICHE" <mhubicheMS_nospam@club-internet.fr> a écrit dans le
message de news: OlWp#626DHA.1672@TK2MSFTNGP12.phx.gbl...
il y a une fonction géniale pour cela :
InstrRev
Je t'invite à aller jeter un oeil sur cette fonction dans l'aide
(bibliothèque VBA/ Strings)
"Fredonnon" <fredonnon@yahoo.fr> a écrit dans le message de news:
84192bd7.0402040743.7470fb1@posting.google.com...
Bonjour,
J'ai une fonction qui rapatrie le nom d'un fichier dans une zone
nommée NomPhoto pour afficher une photo dans un cadre indépendant.
J'ouvre le répertoire du fichier à choisir grâce à la fonction
ChoixDuFichier
Private Sub NomPhoto_Click()
Fichier_Provisoire = ChoixDuFichier
' Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) -
25)
If Fichier_Provisoire <> "" Then
Me.NomPhoto = Fichier_Provisoire
End if
End sub
Public Function ChoixDuFichier() As String
ChoixDuFichier = OpenFile(CurrentProject.Path)
End Function
Par exemple, en cliquant sur la zone NomPhoto, j'atterris dans le
répertoire C:Mes documentsPersoV et si je choisis le fichier
photo1.jpg (en double cliquant dessus 1 fois), alors j'aurai
C:Mes documentsPersoVphoto1.jpg
Je souhaite ne récupérer que le nom du fichier et pas son
emplacement+nomfichier sur le disque dur, c'est à dire dans ce cas là
tout ce qui est après le 25ème caractère.
Il me suffit normalement d'utiliser une fonction Right comme je l'ai
mis. Ca marche sauf que étant donné que je dois à chaque fois calculer
à quel point je dois partir pour avoir le nom du fichier en entier, si
je choisis de prendre
Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) ,
je suis obligé de double cliquer 2 fois (à cause du calcul de
len(ChoixDuFichier) apparemment).
Je me pose la question s'il est faisable de n'avoir qu'une seule fois
à cliquer pour obtenir le nom du fichier seul.
.../... la réaction d'access est normale, ce qui l'est moins, c'est la construction de ta base :o)))
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Fredonnon" a écrit dans le message de news:
Je ne sais pas comment je me débrouille pour avoir les réponses dans un thread et les aides de tout le monde dans un autre ?!?!
Bref, merci pour vos réactions. Voici un complément d'information sur ce qui ce passe. C'est vrai que la table semble ouverte par 2 forms en même temps. J'ai un formulaire qui affiche les enregistrements d'une vidéothèque avec la pochette. Lorsque je souhaite modifier la photo (pochette), j'ouvre un autre formulaire. Je clique dans une zone qui ouvre une fenetre (nouveau formulaire avec l'enregistrement en cours) pour choisir le nouveau nom de fichier vers lequel pointer pour afficher la photo remplaçante. Je lance la mise à jour dans la table sur l'enregistrement dans ce deuxième formulaire. lorsque je le ferme et reviens sur le formulaire principal, je n'ai pas la nouvelle photo à l'écran mais l'ancienne. C'est en changeant d'enregistrement, soit par une liste déroulante pour choisir le titre de film, soit avec les flèches pour changer d'enregistrement que le problème a lieu. Comme si j'étais toujours en mode mise à jour sans avoir validé dans la table qui contient les infos du film.
"Pierre CFI [mvp]" wrote in message news:<ufcZ1h$...
bonjour ce type de message se produit si ta base est partagée et que vous étes plusieurs à faire la méme mise à jour, ou que table est "ouverte" par 2 forms en méme temps,
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Fredonnon" a écrit dans le message de news:
Non non, je suis version 2000.
L'astuce de Pierrre maarche bien ; je l'en remercie bien d'ailleurs.
Je vais aller examiner à la loupe instrrev.
En attendant, cette petite aide me permet bien d'avoir la bonne chaîne de caractères dans la table mais losque je retourne sur mon formulaire de départ et que je vais à l'enregistrement suivant via les fleches, j'ai un message d'erreur avec une légende "Conflit d'écriture". J'ai alors 3 boutons au choix : sauvegarder enregistrement copier dans le presse papier annuler.
Si je fais annuler, que je vais sur un autre enregistrement puis reviens dessus, je me rends compte que tout fonctionne, j'ai bien la bonne image à l'écran.
Vous avez une idée ?
"Maxence HUBICHE" wrote in message news:<u#...
:? euh... il n'a pas parlé d'access 97 ...:? J'ai raté quelque chose ?
"Pierre CFI [mvp]" a écrit dans le message de news: eaz1$
..../... oui, mais cette fonction n'existe pas en 97
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Maxence HUBICHE" a écrit dans le message de news: OlWp#
il y a une fonction géniale pour cela : InstrRev Je t'invite à aller jeter un oeil sur cette fonction dans l'aide (bibliothèque VBA/ Strings)
"Fredonnon" a écrit dans le message de news:
Bonjour,
J'ai une fonction qui rapatrie le nom d'un fichier dans une zone nommée NomPhoto pour afficher une photo dans un cadre indépendant. J'ouvre le répertoire du fichier à choisir grâce à la fonction ChoixDuFichier
Private Sub NomPhoto_Click() Fichier_Provisoire = ChoixDuFichier ' Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) If Fichier_Provisoire <> "" Then Me.NomPhoto = Fichier_Provisoire End if End sub
Public Function ChoixDuFichier() As String ChoixDuFichier = OpenFile(CurrentProject.Path) End Function
Par exemple, en cliquant sur la zone NomPhoto, j'atterris dans le répertoire C:Mes documentsPersoV et si je choisis le fichier photo1.jpg (en double cliquant dessus 1 fois), alors j'aurai
C:Mes documentsPersoVphoto1.jpg
Je souhaite ne récupérer que le nom du fichier et pas son emplacement+nomfichier sur le disque dur, c'est à dire dans ce cas là tout ce qui est après le 25ème caractère. Il me suffit normalement d'utiliser une fonction Right comme je l'ai mis. Ca marche sauf que étant donné que je dois à chaque fois calculer à quel point je dois partir pour avoir le nom du fichier en entier, si je choisis de prendre Fichier_Provisoire = Right(ChoixDuFichier, Len(ChoixDuFichier) - 25) , je suis obligé de double cliquer 2 fois (à cause du calcul de len(ChoixDuFichier) apparemment).
Je me pose la question s'il est faisable de n'avoir qu'une seule fois à cliquer pour obtenir le nom du fichier seul.