OVH Cloud OVH Cloud

Fonction

9 réponses
Avatar
André Houssonloge
Bonsoir,

j'ai créer une fonction sous Excel qui me convient parfaitement, je voudrais
pouvoir l'utiliser dans une requête Access.

Comment doit-on s'y prendre pour qu'elle soit reconnue ou bien comment
l'implémenter dans ma base access?

Merci

André Houssonloge

9 réponses

Avatar
Raymond [mvp]
Bonsoir André.

si c'est une fonction qui est entièrement compatible access dans les
fonctions , tu la copies dans un module standard et tu la déclares Public
pour qu'elle puisse être atteinte par une requête.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
eydjI%
Bonsoir,

j'ai créer une fonction sous Excel qui me convient parfaitement, je
voudrais pouvoir l'utiliser dans une requête Access.

Comment doit-on s'y prendre pour qu'elle soit reconnue ou bien comment
l'implémenter dans ma base access?

Merci

André Houssonloge




Avatar
André Houssonloge
Merci de t'intéresser à mon problème. je me permet de te présenter ma fct.


Function DelCaract(Cellule) As String
'Supprime tous ces CARACTÈRES indésirables (´-.:()/ d'une cellule
Dim LongueurCellule As Integer

Dim Temp1 As String
Dim Temp2 As String
Dim Temp3 As String
Dim Temp4 As String
Dim Temp5 As String
Dim Temp6 As String
Dim Temp7 As String
Dim Temp8 As String
Dim Temp9 As String
Dim Temp10 As String
Dim Temp11 As String

Dim i As Integer
LongueurCellule = Len(Cellule)
Temp1 = ""
Temp2 = ""
Temp3 = ""
Temp4 = ""
Temp5 = ""
Temp6 = ""
Temp7 = ""
Temp8 = ""
Temp9 = ""
Temp10 = ""
Temp11 = ""

For i = 1 To LongueurCellule
Caractère1 = Mid(Cellule, i, 1)
If Caractère1 <> Chr(39) Then Temp1 = Temp1 & Caractère1
Next i
LongueurCellule = Len(Temp1)
For i = 1 To LongueurCellule
Caractère2 = Mid(Temp1, i, 1)
If Caractère2 <> Chr(40) Then Temp2 = Temp2 & Caractère2
Next i
LongueurCellule = Len(Temp2)
For i = 1 To LongueurCellule
Caractère3 = Mid(Temp2, i, 1)
If Caractère3 <> Chr(41) Then Temp3 = Temp3 & Caractère3
Next i
LongueurCellule = Len(Temp3)
For i = 1 To LongueurCellule
Caractère4 = Mid(Temp3, i, 1)
If Caractère4 <> Chr(45) Then Temp4 = Temp4 & Caractère4
Next i
LongueurCellule = Len(Temp4)
For i = 1 To LongueurCellule
Caractère5 = Mid(Temp4, i, 1)
If Caractère5 <> Chr(46) Then Temp5 = Temp5 & Caractère5
Next i
LongueurCellule = Len(Temp5)
For i = 1 To LongueurCellule
Caractère6 = Mid(Temp5, i, 1)
If Caractère6 <> Chr(58) Then Temp6 = Temp6 & Caractère6
Next i
LongueurCellule = Len(Temp6)
For i = 1 To LongueurCellule
Caractère7 = Mid(Temp6, i, 1)
If Caractère7 <> Chr(146) Then Temp7 = Temp7 & Caractère7
Next i
LongueurCellule = Len(Temp7)
For i = 1 To LongueurCellule
Caractère8 = Mid(Temp7, i, 1)
If Caractère8 <> Chr(130) Then Temp8 = Temp8 & Caractère8
Next i
LongueurCellule = Len(Temp8)
For i = 1 To LongueurCellule
Caractère9 = Mid(Temp8, i, 1)
If Caractère9 <> Chr(47) Then Temp9 = Temp9 & Caractère9
Next i
LongueurCellule = Len(Temp9)
For i = 1 To LongueurCellule
Caractère10 = Mid(Temp9, i, 1)
If Caractère10 <> Chr(180) Then Temp10 = Temp10 & Caractère10
Next i
LongueurCellule = Len(Temp10)
For i = 1 To LongueurCellule
Caractère11 = Mid(Temp10, i, 1)
If Caractère11 <> Chr(32) Then Temp11 = Temp11 & Caractère11
Next i
DelCaract = Temp11
End Function



"Raymond [mvp]" a écrit dans le message de
news: ey$
Bonsoir André.

si c'est une fonction qui est entièrement compatible access dans les
fonctions , tu la copies dans un module standard et tu la déclares Public
pour qu'elle puisse être atteinte par une requête.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
eydjI%
Bonsoir,

j'ai créer une fonction sous Excel qui me convient parfaitement, je
voudrais pouvoir l'utiliser dans une requête Access.

Comment doit-on s'y prendre pour qu'elle soit reconnue ou bien comment
l'implémenter dans ma base access?

Merci

André Houssonloge








Avatar
Raymond [mvp]
C'est une fonction qui est compatible access et qui peut être utilisée.
cette fonction étant, d'après ce que j'ai lu, faite pour remplacer les
caractères indésirables, je pense qu'une fonction Replace devrait donner le
même résultat en très peu de lignes de code et serait nettement plus rapide
et performante.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:

Merci de t'intéresser à mon problème. je me permet de te présenter ma fct.


Function DelCaract(Cellule) As String
'Supprime tous ces CARACTÈRES indésirables (´-.:()/ d'une cellule
Dim LongueurCellule As Integer

Dim Temp1 As String
Dim Temp2 As String
Dim Temp3 As String
Dim Temp4 As String
Dim Temp5 As String
Dim Temp6 As String
Dim Temp7 As String
Dim Temp8 As String
Dim Temp9 As String
Dim Temp10 As String
Dim Temp11 As String

Dim i As Integer
LongueurCellule = Len(Cellule)
Temp1 = ""
Temp2 = ""
Temp3 = ""
Temp4 = ""
Temp5 = ""
Temp6 = ""
Temp7 = ""
Temp8 = ""
Temp9 = ""
Temp10 = ""
Temp11 = ""

For i = 1 To LongueurCellule
Caractère1 = Mid(Cellule, i, 1)
If Caractère1 <> Chr(39) Then Temp1 = Temp1 & Caractère1
Next i
LongueurCellule = Len(Temp1)
For i = 1 To LongueurCellule
Caractère2 = Mid(Temp1, i, 1)
If Caractère2 <> Chr(40) Then Temp2 = Temp2 & Caractère2
Next i
LongueurCellule = Len(Temp2)
For i = 1 To LongueurCellule
Caractère3 = Mid(Temp2, i, 1)
If Caractère3 <> Chr(41) Then Temp3 = Temp3 & Caractère3
Next i
LongueurCellule = Len(Temp3)
For i = 1 To LongueurCellule
Caractère4 = Mid(Temp3, i, 1)
If Caractère4 <> Chr(45) Then Temp4 = Temp4 & Caractère4
Next i
LongueurCellule = Len(Temp4)
For i = 1 To LongueurCellule
Caractère5 = Mid(Temp4, i, 1)
If Caractère5 <> Chr(46) Then Temp5 = Temp5 & Caractère5
Next i
LongueurCellule = Len(Temp5)
For i = 1 To LongueurCellule
Caractère6 = Mid(Temp5, i, 1)
If Caractère6 <> Chr(58) Then Temp6 = Temp6 & Caractère6
Next i
LongueurCellule = Len(Temp6)
For i = 1 To LongueurCellule
Caractère7 = Mid(Temp6, i, 1)
If Caractère7 <> Chr(146) Then Temp7 = Temp7 & Caractère7
Next i
LongueurCellule = Len(Temp7)
For i = 1 To LongueurCellule
Caractère8 = Mid(Temp7, i, 1)
If Caractère8 <> Chr(130) Then Temp8 = Temp8 & Caractère8
Next i
LongueurCellule = Len(Temp8)
For i = 1 To LongueurCellule
Caractère9 = Mid(Temp8, i, 1)
If Caractère9 <> Chr(47) Then Temp9 = Temp9 & Caractère9
Next i
LongueurCellule = Len(Temp9)
For i = 1 To LongueurCellule
Caractère10 = Mid(Temp9, i, 1)
If Caractère10 <> Chr(180) Then Temp10 = Temp10 & Caractère10
Next i
LongueurCellule = Len(Temp10)
For i = 1 To LongueurCellule
Caractère11 = Mid(Temp10, i, 1)
If Caractère11 <> Chr(32) Then Temp11 = Temp11 & Caractère11
Next i
DelCaract = Temp11
End Function



Avatar
André Houssonloge
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas


"Raymond [mvp]" a écrit dans le message de
news:
C'est une fonction qui est compatible access et qui peut être utilisée.
cette fonction étant, d'après ce que j'ai lu, faite pour remplacer les
caractères indésirables, je pense qu'une fonction Replace devrait donner
le même résultat en très peu de lignes de code et serait nettement plus
rapide et performante.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:

Merci de t'intéresser à mon problème. je me permet de te présenter ma
fct.


Function DelCaract(Cellule) As String
'Supprime tous ces CARACTÈRES indésirables (´-.:()/ d'une cellule
Dim LongueurCellule As Integer

Dim Temp1 As String
Dim Temp2 As String
Dim Temp3 As String
Dim Temp4 As String
Dim Temp5 As String
Dim Temp6 As String
Dim Temp7 As String
Dim Temp8 As String
Dim Temp9 As String
Dim Temp10 As String
Dim Temp11 As String

Dim i As Integer
LongueurCellule = Len(Cellule)
Temp1 = ""
Temp2 = ""
Temp3 = ""
Temp4 = ""
Temp5 = ""
Temp6 = ""
Temp7 = ""
Temp8 = ""
Temp9 = ""
Temp10 = ""
Temp11 = ""

For i = 1 To LongueurCellule
Caractère1 = Mid(Cellule, i, 1)
If Caractère1 <> Chr(39) Then Temp1 = Temp1 & Caractère1
Next i
LongueurCellule = Len(Temp1)
For i = 1 To LongueurCellule
Caractère2 = Mid(Temp1, i, 1)
If Caractère2 <> Chr(40) Then Temp2 = Temp2 & Caractère2
Next i
LongueurCellule = Len(Temp2)
For i = 1 To LongueurCellule
Caractère3 = Mid(Temp2, i, 1)
If Caractère3 <> Chr(41) Then Temp3 = Temp3 & Caractère3
Next i
LongueurCellule = Len(Temp3)
For i = 1 To LongueurCellule
Caractère4 = Mid(Temp3, i, 1)
If Caractère4 <> Chr(45) Then Temp4 = Temp4 & Caractère4
Next i
LongueurCellule = Len(Temp4)
For i = 1 To LongueurCellule
Caractère5 = Mid(Temp4, i, 1)
If Caractère5 <> Chr(46) Then Temp5 = Temp5 & Caractère5
Next i
LongueurCellule = Len(Temp5)
For i = 1 To LongueurCellule
Caractère6 = Mid(Temp5, i, 1)
If Caractère6 <> Chr(58) Then Temp6 = Temp6 & Caractère6
Next i
LongueurCellule = Len(Temp6)
For i = 1 To LongueurCellule
Caractère7 = Mid(Temp6, i, 1)
If Caractère7 <> Chr(146) Then Temp7 = Temp7 & Caractère7
Next i
LongueurCellule = Len(Temp7)
For i = 1 To LongueurCellule
Caractère8 = Mid(Temp7, i, 1)
If Caractère8 <> Chr(130) Then Temp8 = Temp8 & Caractère8
Next i
LongueurCellule = Len(Temp8)
For i = 1 To LongueurCellule
Caractère9 = Mid(Temp8, i, 1)
If Caractère9 <> Chr(47) Then Temp9 = Temp9 & Caractère9
Next i
LongueurCellule = Len(Temp9)
For i = 1 To LongueurCellule
Caractère10 = Mid(Temp9, i, 1)
If Caractère10 <> Chr(180) Then Temp10 = Temp10 & Caractère10
Next i
LongueurCellule = Len(Temp10)
For i = 1 To LongueurCellule
Caractère11 = Mid(Temp10, i, 1)
If Caractère11 <> Chr(32) Then Temp11 = Temp11 & Caractère11
Next i
DelCaract = Temp11
End Function







Avatar
Raymond [mvp]
ta fonction est-elle dans un module standard et est-elle écrite comme ceci ?
Public Function DelCaract(Cellule as string) As String

L'appel doit se faire par :

expr1: DelCaract([GSM] )

GSM étant le champ de table

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
e%
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à
l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas



Avatar
André Houssonloge
Oui

"Raymond [mvp]" a écrit dans le message de
news:
ta fonction est-elle dans un module standard et est-elle écrite comme ceci
?
Public Function DelCaract(Cellule as string) As String

L'appel doit se faire par :

expr1: DelCaract([GSM] )

GSM étant le champ de table

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
e%
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à
l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas








Avatar
Jessy Sempere [MVP]
Bonjour

Je ne vois pas spécialement pourquoi ta fonction ne fonctionne pas mais bon,
copis le code (un peu plus simple) qui suit dans un module standard de ta
base
de données est en théorie, ça devrait fonctionner

************************************************
Function DelCaractBis(strField) As String

Dim tabCaract As Variant
Dim intTab As Integer
Dim strTmp As String

tabCaract = Array(Chr(39), Chr(40), Chr(41), _
Chr(45), Chr(46), Chr(58), Chr(146), _
Chr(130), Chr(47), Chr(180), Chr(32))

strTmp = strField
For intTab = 0 To UBound(tabCaract)
strTmp = Replace(strTmp, tabCaract(intTab), "")
Next
DelCaractBis = strTmp
End Function
************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"André Houssonloge" a écrit dans le message news:

Oui

"Raymond [mvp]" a écrit dans le message
de

news:
ta fonction est-elle dans un module standard et est-elle écrite comme
ceci


?
Public Function DelCaract(Cellule as string) As String

L'appel doit se faire par :

expr1: DelCaract([GSM] )

GSM étant le champ de table

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
e%
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à
l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas












Avatar
André Houssonloge
Merci, mais étrange j'ai le même message d'erreur.

Merci du temps que vous passez sur mon problème.

André Houssonloge



"Jessy Sempere [MVP]" a écrit dans le message de
news: 425f6cbf$
Bonjour

Je ne vois pas spécialement pourquoi ta fonction ne fonctionne pas mais
bon,
copis le code (un peu plus simple) qui suit dans un module standard de ta
base
de données est en théorie, ça devrait fonctionner

************************************************
Function DelCaractBis(strField) As String

Dim tabCaract As Variant
Dim intTab As Integer
Dim strTmp As String

tabCaract = Array(Chr(39), Chr(40), Chr(41), _
Chr(45), Chr(46), Chr(58), Chr(146), _
Chr(130), Chr(47), Chr(180), Chr(32))

strTmp = strField
For intTab = 0 To UBound(tabCaract)
strTmp = Replace(strTmp, tabCaract(intTab), "")
Next
DelCaractBis = strTmp
End Function
************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"André Houssonloge" a écrit dans le message news:

Oui

"Raymond [mvp]" a écrit dans le message
de

news:
ta fonction est-elle dans un module standard et est-elle écrite comme
ceci


?
Public Function DelCaract(Cellule as string) As String

L'appel doit se faire par :

expr1: DelCaract([GSM] )

GSM étant le champ de table

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
e%
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à
l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas
















Avatar
André Houssonloge
Bonjour,

Merci çà marche. J'ai enlevé ceci qui se trouvait dans mon module.
Option Compare Database

MERCI

André Houssonloge

"Jessy Sempere [MVP]" a écrit dans le message de
news: 425f6cbf$
Bonjour

Je ne vois pas spécialement pourquoi ta fonction ne fonctionne pas mais
bon,
copis le code (un peu plus simple) qui suit dans un module standard de ta
base
de données est en théorie, ça devrait fonctionner

************************************************
Function DelCaractBis(strField) As String

Dim tabCaract As Variant
Dim intTab As Integer
Dim strTmp As String

tabCaract = Array(Chr(39), Chr(40), Chr(41), _
Chr(45), Chr(46), Chr(58), Chr(146), _
Chr(130), Chr(47), Chr(180), Chr(32))

strTmp = strField
For intTab = 0 To UBound(tabCaract)
strTmp = Replace(strTmp, tabCaract(intTab), "")
Next
DelCaractBis = strTmp
End Function
************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"André Houssonloge" a écrit dans le message news:

Oui

"Raymond [mvp]" a écrit dans le message
de

news:
ta fonction est-elle dans un module standard et est-elle écrite comme
ceci


?
Public Function DelCaract(Cellule as string) As String

L'appel doit se faire par :

expr1: DelCaract([GSM] )

GSM étant le champ de table

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"André Houssonloge" a écrit dans le message de news:
e%
Merci Raymond,

dans ma requête, j'écris DelCaract([GSM] j'obtiens ce message à
l'exécution.


Fonction " DelCaract" non définie dans l'expression

Je ne le comprend pas