-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" a écrit dans
le message de
news:045a01c3b06b$55417bd0$
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:045a01c3b06b$55417bd0$a101280a@phx.gbl...
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" a écrit dans
le message de
news:045a01c3b06b$55417bd0$
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" a écrit dans
le message de
news:045a01c3b06b$55417bd0$
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:045a01c3b06b$55417bd0$a101280a@phx.gbl...
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
-----Message d'origine-----
Salut ;O)
Voici la fonction Replace que j'utilise. De là à dire
qu'elle est plus
rapide que la tienne...
Function Replace(ByVal Expression As String, ByVal Find
As String, ByVal
ReplaceWith As String) As String
Dim Temp As String
Dim P As Long
Temp = Expression
P = InStr(Temp, Find)
Do While P > 0
Temp = Left$(Temp, P - 1) & ReplaceWith &
Mid$(Temp, P +
Len(Find))
P = InStr(P + Len(ReplaceWith), Temp, Find, 1)
Loop
Replace = Temp
End Function
Guy
--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD
"Jess" a écrit dans
le message de
news:045a01c3b06b$55417bd0$
Bonjour à tous,
Voilà, depuis que mois je liais une table avec un fichier
texte avec un VbCrlf pour chaque ligne... mais voilà que
le fournisseur à changé de plateforme et maintenant ne
fait qu'un VbLf... alors Access 97 et notepad interprêtent
le fichier comme un fichier contenant qu'une ligne.
Il faut donc que je remplace les VbLf par des VbCrlf.
Pour se faire j'ouvre le fichier et je mets dans une
chaine de charactère, utilise la fonction "replace", et
regénrer le fichier.
Le problème c'est que pour une raison quelquonque la
fonction "replace" est pas diponible sur mon Access 97.
J'ai beau essayé d'activer le "msvbvm60.dll" dans les
références mais il m'affiches toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
J'ai essayé de construire une fonction de replace... par
contre elle est terriblement lente.
Quelqu'un pourrais m'aider pour trouver une solution afin
que je puisse avoir accès à la fonction replace?
J'ai aussi pensé à faire une déclaration implicite lié à
la DLL dans mon module de "replace"mais cela n'a pas
marché... je crois que je ne suis pas tout à fait à l'aise
à ce niveau là...
Merci
.
Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est facile
à
dire ;O)
Bonne chance.
Guy
Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est facile
à
dire ;O)
Bonne chance.
Guy
Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est facile
à
dire ;O)
Bonne chance.
Guy
Bonjour Guy et jess.
Il y a une solution par une DLL vb6.
si jess a le vb6, il faut créer une DLL activex avec mode d'exécution
autonome.
cette dll a une seule ligne, la fonction replace.
on référence la dll dans acess97 et on l'utilise normalement comme tout
objet de classe du type
Dim R As New Remplacer
Private Sub Commande14_Click()
Me.Destination = R.Execute(Me.Destination, "A", "B")
End Sub
ce n'est peut-être pas plus rapide mais tellement plus pratique et
lorsqu'on
passe en 2000 on remplace R.Execute par Replace.
Si Jess n'a pas le vb6 et s'il veut la dll, je l'améliorerai avec le
positionnement et je la mettrai sur mon site.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Guy DETIENNE" a écrit dans le message de
news:u%Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction
ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est
facile
àdire ;O)
Bonne chance.
Guy
Bonjour Guy et jess.
Il y a une solution par une DLL vb6.
si jess a le vb6, il faut créer une DLL activex avec mode d'exécution
autonome.
cette dll a une seule ligne, la fonction replace.
on référence la dll dans acess97 et on l'utilise normalement comme tout
objet de classe du type
Dim R As New Remplacer
Private Sub Commande14_Click()
Me.Destination = R.Execute(Me.Destination, "A", "B")
End Sub
ce n'est peut-être pas plus rapide mais tellement plus pratique et
lorsqu'on
passe en 2000 on remplace R.Execute par Replace.
Si Jess n'a pas le vb6 et s'il veut la dll, je l'améliorerai avec le
positionnement et je la mettrai sur mon site.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Guy DETIENNE" <gd@tchao.net.nospam> a écrit dans le message de
news:u%23jl1UHsDHA.556@TK2MSFTNGP11.phx.gbl...
Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction
ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est
facile
à
dire ;O)
Bonne chance.
Guy
Bonjour Guy et jess.
Il y a une solution par une DLL vb6.
si jess a le vb6, il faut créer une DLL activex avec mode d'exécution
autonome.
cette dll a une seule ligne, la fonction replace.
on référence la dll dans acess97 et on l'utilise normalement comme tout
objet de classe du type
Dim R As New Remplacer
Private Sub Commande14_Click()
Me.Destination = R.Execute(Me.Destination, "A", "B")
End Sub
ce n'est peut-être pas plus rapide mais tellement plus pratique et
lorsqu'on
passe en 2000 on remplace R.Execute par Replace.
Si Jess n'a pas le vb6 et s'il veut la dll, je l'améliorerai avec le
positionnement et je la mettrai sur mon site.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Guy DETIENNE" a écrit dans le message de
news:u%Salut ;O)
Dans Access 97, la fonction Replace n'était pas encore intégrée au VBA.
Seulement à partir de la version 2000.
Je ne vois pas comment tu pourrais faire appel à cette fonction
ailleurs.
Selon moi, c'est la seule façon d'y parvenir.
Optimise peut-être la fonction que je t'ai envoyé. Je sais, c'est
facile
àdire ;O)
Bonne chance.
Guy
-----Message d'origine-----
Bonjour Jess.
je n'ai pas de poste avec 97 tout seul.
référence ma dll .
qu'est-ce quelle donne ?
si marche pas copie la dll vb6 sans rien faire d'autre
mais au bon endroit.
qu'est-ce quelle donne ?
à suivre .....
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jess" a écrit dans
le message de
news:0a0501c3b29c$cbd23860$
Bonjour Raymond,
Je sais que la fonction replace est dans le
dll "msvbvm60.dll"... j'Ai essayé de l'inclure dans les
référence mais il m'affiche toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
Je ne m'y connais pas trop en ce qui concerne la création
de dll activeX en mode de création autonome.
Je sais qu'il est possible de déclarer des function
existante dans certaine dll... comme je fait déjà afin de
télécharger des fichier à partir d'un serveur ftp.... tel
que la suivante...
Public Declare Function FtpGetFile Lib "wininet.dll"
Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As
String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As
Boolean, _
ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As
Long, _
ByVal dwContext As Long) As Boolean
ca marche à merveille... par contre je ne sais pas comment
je pourrais faire la meme chose pour le msvbvm60.dll.
Je tiens à souligner que VB6 est installé sur la majorité
des postes ici... donc je ne vois pas de problème mise à
part mon manque de conaissance...
Alors Raymond... j'aurais besoin d'aide svp...
Merci beaucoup.
.
-----Message d'origine-----
Bonjour Jess.
je n'ai pas de poste avec 97 tout seul.
référence ma dll .
qu'est-ce quelle donne ?
si marche pas copie la dll vb6 sans rien faire d'autre
mais au bon endroit.
qu'est-ce quelle donne ?
à suivre .....
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jess" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:0a0501c3b29c$cbd23860$a301280a@phx.gbl...
Bonjour Raymond,
Je sais que la fonction replace est dans le
dll "msvbvm60.dll"... j'Ai essayé de l'inclure dans les
référence mais il m'affiche toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
Je ne m'y connais pas trop en ce qui concerne la création
de dll activeX en mode de création autonome.
Je sais qu'il est possible de déclarer des function
existante dans certaine dll... comme je fait déjà afin de
télécharger des fichier à partir d'un serveur ftp.... tel
que la suivante...
Public Declare Function FtpGetFile Lib "wininet.dll"
Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As
String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As
Boolean, _
ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As
Long, _
ByVal dwContext As Long) As Boolean
ca marche à merveille... par contre je ne sais pas comment
je pourrais faire la meme chose pour le msvbvm60.dll.
Je tiens à souligner que VB6 est installé sur la majorité
des postes ici... donc je ne vois pas de problème mise à
part mon manque de conaissance...
Alors Raymond... j'aurais besoin d'aide svp...
Merci beaucoup.
.
-----Message d'origine-----
Bonjour Jess.
je n'ai pas de poste avec 97 tout seul.
référence ma dll .
qu'est-ce quelle donne ?
si marche pas copie la dll vb6 sans rien faire d'autre
mais au bon endroit.
qu'est-ce quelle donne ?
à suivre .....
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jess" a écrit dans
le message de
news:0a0501c3b29c$cbd23860$
Bonjour Raymond,
Je sais que la fonction replace est dans le
dll "msvbvm60.dll"... j'Ai essayé de l'inclure dans les
référence mais il m'affiche toujours : "Nom de module,
de projet ou de bibliothèque d'objets déjà utilisé".
Je ne m'y connais pas trop en ce qui concerne la création
de dll activeX en mode de création autonome.
Je sais qu'il est possible de déclarer des function
existante dans certaine dll... comme je fait déjà afin de
télécharger des fichier à partir d'un serveur ftp.... tel
que la suivante...
Public Declare Function FtpGetFile Lib "wininet.dll"
Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As
String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As
Boolean, _
ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As
Long, _
ByVal dwContext As Long) As Boolean
ca marche à merveille... par contre je ne sais pas comment
je pourrais faire la meme chose pour le msvbvm60.dll.
Je tiens à souligner que VB6 est installé sur la majorité
des postes ici... donc je ne vois pas de problème mise à
part mon manque de conaissance...
Alors Raymond... j'aurais besoin d'aide svp...
Merci beaucoup.
.