Separer le nom du fichier de son chemin sous access

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 771 fois - Téléchargée 46 fois

Contenu du snippet

Separer le nom du fichier de son chemin sous Access. Sous VB il existe InStrRev mais sous acces non. donc j'ai essayé de le faire avec InStr. Voici le code à inserer dans un sub . Avec l'astuce de Seedrof (Rachid) j'ai mis une deuxieme version (sans boucle)

Source / Exemple :


'***** Premiere version avec InStr *****

Dim dbs As DATABASE
Dim txt1, txt2, txt3 As String
Dim c1, c2, c3 As Integer

' cherche le nom du fichier actuel et enleve son chemin
Set dbs = CurrentDb()

txt1 = dbs.Name
c2 = 1
Do While c2 <> 0
c1 = InStr(c2, txt1, "\")
If c1 = 0 Then Exit Do
c2 = c1 + 1
c3 = c1
Loop
txt2 = Right$(txt1, Len(txt1) - c3)
txt3 = Left$(txt1, c3)

msgbox "Nom du fichier: " & txt2
msgbox "Chemin du fichier: " & txt3

'***** Version suivant astuce de Seedrof *****

Function Separ_chemin()
Dim dbs As DATABASE
Dim txt1, txt2, txt3 As String

Set dbs = CurrentDb()

txt1 = dbs.Name
txt2 = Dir(txt1)
txt3 = Left$(txt1, Len(txt1) - Len(txt2))
MsgBox "Nom du fichier: " & txt2
MsgBox "Chemin du fichier: " & txt3

End Function

A voir également

Ajouter un commentaire

Commentaires

je cherchait justement le code!

merci:)
Astuce:
tu peux avoir le nom du fichier avec txt2 = Dir(txt1) qui te donnera le nom du fichier au lieu de faire tte cette boucle.
Rachid
Oui Rachid, mais je veux aussi avoir le chemin du fichier. Avec la boucle j'ai les deux bien séparés.

Merci Qd Même

Remiguel
Apres une bonne nuit de sommeil, j'ai trouvé qu'avec ton astuce on peux vraiment eliminer la boucle. Vor code modifié

Merci


Remiguel
Essayez ceci, c'est pas mal non plus !

Public Function SepareNom(FName As String, Optional Char As String, Optional Extend As Integer) As String
If Char "" Then Char ""
SepareNom = Left(FName, InStrRev(FName, Left(Char, 1)))
End Function

Public Function SepareFile(FName As String, Optional Char As String, Optional Extend As Integer) As String
If Char "" Then Char ""
SepareFile = Right(FName, Len(FName) - InStrRev(FName, Left(Char, 1)))
End Function

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.