Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ADO et fonction personnalisée

5 réponses
Avatar
michdenis
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.

5 réponses

Avatar
Fabien
michdenis a écrit :
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.




Salut,
La réponse est oui. A condition que ta fonction soit définie Public dans
un module.

Public function ma_fonction(mes parametre as typeduparametre) as
typedela réponse

end function

et dans ta définition du SQL
StrSql="select ma_fonction([MonChamp]) as ma_reponse from matable";
@+
Avatar
michdenis
Merci Fabien pour ton intervention.

Je suis présentement dans Excel.

Dans un module standard, si j'essaie cette requête :
requete = "SELECT left(Fonction,1) FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"

Je n'ai aucun problème,

Mais si je remplace la fonction "Left()" par une fonction
perso, j'obtiens un message d'erreur :
Fonction "LeSplit" non définie dans l'expression"

requete = "SELECT LeSplit([MonChamp]) as Toto FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"

La fonction Publique utilisée :
'-------------------------------------
Public Function LeSplit(V) As String
LeSplit = Split(V, " ")(0)
End Function
'-------------------------------------

As-tu une idée de ce qui se passe ?

Merci pour ta collaboration.



"Fabien" a écrit dans le message de groupe de discussion :

michdenis a écrit :
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.




Salut,
La réponse est oui. A condition que ta fonction soit définie Public dans
un module.

Public function ma_fonction(mes parametre as typeduparametre) as
typedela réponse

end function

et dans ta définition du SQL
StrSql="select ma_fonction([MonChamp]) as ma_reponse from matable";
@+
Avatar
Fabien
michdenis a écrit :
Merci Fabien pour ton intervention.

Je suis présentement dans Excel.

Dans un module standard, si j'essaie cette requête :
requete = "SELECT left(Fonction,1) FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"

Je n'ai aucun problème,

Mais si je remplace la fonction "Left()" par une fonction
perso, j'obtiens un message d'erreur :
Fonction "LeSplit" non définie dans l'expression"

requete = "SELECT LeSplit([MonChamp]) as Toto FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"

La fonction Publique utilisée :
'-------------------------------------
Public Function LeSplit(V) As String
LeSplit = Split(V, " ")(0)
End Function
'-------------------------------------

As-tu une idée de ce qui se passe ?

Merci pour ta collaboration.



"Fabien" a écrit dans le message de groupe de discussion :

michdenis a écrit :
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.




Salut,
La réponse est oui. A condition que ta fonction soit définie Public dans
un module.

Public function ma_fonction(mes parametre as typeduparametre) as
typedela réponse

end function

et dans ta définition du SQL
StrSql="select ma_fonction([MonChamp]) as ma_reponse from matable";
@+



A ba ouai mais là t'es dans un groupe ms-Access ;-)
Alors si excel ne fonctionne pas comme Access je sais pas. Désolé :-(
@+
Avatar
Sylvain Lafontaine
Je ne sais pas si vous pouvez faire cela avec ADO. Je sais que vous pouvez
le faire avec DAO lorsque exécuté dans un environnement Access/JET mais avec
ADO, cela fait la première fois que j'en entends parlé.

Si vous travaillez contre un SQL-Server, il serait peut-être mieux de coder
cette fonction directement sur le serveur SQL; sinon, vous devriez faire une
boucle en VBA qui va modifier votre recordset en local.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"michdenis" wrote in message
news:
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.




Avatar
michdenis
Merci Sylvain de ton intervention.

Salutations.



"Sylvain Lafontaine" a écrit dans le message de groupe de
discussion :
Je ne sais pas si vous pouvez faire cela avec ADO. Je sais que vous pouvez
le faire avec DAO lorsque exécuté dans un environnement Access/JET mais avec
ADO, cela fait la première fois que j'en entends parlé.

Si vous travaillez contre un SQL-Server, il serait peut-être mieux de coder
cette fonction directement sur le serveur SQL; sinon, vous devriez faire une
boucle en VBA qui va modifier votre recordset en local.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"michdenis" wrote in message
news:
Bonjour,

Comment fait-on si la chose est possible pour utiliser une
fonction personnelle avec ADO (activex data object) dans
une requête ?

Exemple :
Dim Requete As String

Requete = "Select Left(MonChamp,2) FROM ......)
Ceci fonctionne très bien.

Est-ce que je peux remplacer la fonction "Left" par
une fonction personnelle ? Si oui, quelle est la syntaxe
à employer ?

Si non, est-ce quelqu'un connaît la liste des fonctions
supportées par ADO ?

Merci de votre collaboration.