OVH Cloud OVH Cloud

Pour raymond - Comparelist

4 réponses
Avatar
alan.jestin
Bonjour,
Tout d'abord merci pour les explications et exemples que=20
vous nous faites partager sur votre site.
J'utilise votre fonction comparlist pour une s=E9lection=20
multiple et cela fonctionne parfaitement bien dans le cas=20
ou il s'agit d'une requete g=E9n=E9r=E9 dans ACCESS. Cependant,=20
lorsque je l'imbrique dans du code VBA, un message=20
d'erreur m'indique que 'Comparelist n'est pas une=20
fonction reconnu'.
Voici le bout de code :
Sub select_tarif()
Dim rs As New ADODB.Recordset
Set rs =3D New ADODB.Recordset
rs.CursorLocation =3D adUseClient
Dim MYSQL As String
MYSQL =3D "SELECT PRX_TYPE, PRX_VALEUR, PRX_DATE_DEB,=20
PRX_DATE_FIN, "
MYSQL =3D MYSQL + "PRX_CODART,PRX_PRIX,PRX_UV "
MYSQL =3D MYSQL + "FROM TARIF "
MYSQL =3D MYSQL + "WHERE CompareList([PRX_VALEUR])=3DTrue;"
Set cn =3D New ADODB.Connection
With cn
.Provider =3D "Microsoft.Access.OLEDB.10.0"
.Properties("Data Provider").Value =3D "SQLOLEDB"
.Properties("Data Source").Value =3D "108.29.1.8"
.Properties("User ID").Value =3D "sa"
.Properties("Password").Value =3D ""
.Properties("Initial Catalog").Value =3D "SAI_GCCOM"
.Open
End With

With rs
Set .ActiveConnection =3D cn
.Source =3D MYSQL
.LockType =3D adLockOptimistic
.CursorType =3D adOpenKeyset
.Open
End With
rs.Properties.Refresh
While (Not rs.EOF)
Debug.Print rs![PRX_VALEUR], rs![PRX_DATE_DEB], rs!
[PRX_CODART]
rs.MoveNext
Wend
rs.Close
End Sub
Dans l'attente de vos suggestions
Merci

4 réponses

Avatar
Raymond [mvp]
Bonjour.

il manque la fonction PrepareList avant de lancer la requête. voir page :
http://officesystem.access.free.fr/ex_selection_multiple.htm

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


"" a écrit
dans le message de news: 09ce01c4f4a0$e2fbe440$
Bonjour,
Tout d'abord merci pour les explications et exemples que
vous nous faites partager sur votre site.
J'utilise votre fonction comparlist pour une sélection
multiple et cela fonctionne parfaitement bien dans le cas
ou il s'agit d'une requete généré dans ACCESS. Cependant,
lorsque je l'imbrique dans du code VBA, un message
d'erreur m'indique que 'Comparelist n'est pas une
fonction reconnu'.
Voici le bout de code :
Sub select_tarif()
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim MYSQL As String
MYSQL = "SELECT PRX_TYPE, PRX_VALEUR, PRX_DATE_DEB,
PRX_DATE_FIN, "
MYSQL = MYSQL + "PRX_CODART,PRX_PRIX,PRX_UV "
MYSQL = MYSQL + "FROM TARIF "
MYSQL = MYSQL + "WHERE CompareList([PRX_VALEUR])=True;"
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Access.OLEDB.10.0"
.Properties("Data Provider").Value = "SQLOLEDB"
.Properties("Data Source").Value = "108.29.1.8"
.Properties("User ID").Value = "sa"
.Properties("Password").Value = ""
.Properties("Initial Catalog").Value = "SAI_GCCOM"
.Open
End With

With rs
Set .ActiveConnection = cn
.Source = MYSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
rs.Properties.Refresh
While (Not rs.EOF)
Debug.Print rs![PRX_VALEUR], rs![PRX_DATE_DEB], rs!
[PRX_CODART]
rs.MoveNext
Wend
rs.Close
End Sub
Dans l'attente de vos suggestions
Merci
Avatar
alan
Bonjour,
j'ai insérer Preparelist, avant 'with rs' mais rien à
faire il ne considère pas Comparelist comme une fonction.

-----Message d'origine-----
Bonjour.

il manque la fonction PrepareList avant de lancer la
requête. voir page :

http://officesystem.access.free.fr/ex_selection_multiple.
htm


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


""
a écrit

dans le message de news: 09ce01c4f4a0$e2fbe440
$

Bonjour,
Tout d'abord merci pour les explications et exemples que
vous nous faites partager sur votre site.
J'utilise votre fonction comparlist pour une sélection
multiple et cela fonctionne parfaitement bien dans le cas
ou il s'agit d'une requete généré dans ACCESS. Cependant,
lorsque je l'imbrique dans du code VBA, un message
d'erreur m'indique que 'Comparelist n'est pas une
fonction reconnu'.
Voici le bout de code :
Sub select_tarif()
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim MYSQL As String
MYSQL = "SELECT PRX_TYPE, PRX_VALEUR, PRX_DATE_DEB,
PRX_DATE_FIN, "
MYSQL = MYSQL + "PRX_CODART,PRX_PRIX,PRX_UV "
MYSQL = MYSQL + "FROM TARIF "
MYSQL = MYSQL + "WHERE CompareList([PRX_VALEUR])=True;"
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Access.OLEDB.10.0"
.Properties("Data Provider").Value = "SQLOLEDB"
.Properties("Data Source").Value = "108.29.1.8"
.Properties("User ID").Value = "sa"
.Properties("Password").Value = ""
.Properties("Initial Catalog").Value = "SAI_GCCOM"
.Open
End With

With rs
Set .ActiveConnection = cn
.Source = MYSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
rs.Properties.Refresh
While (Not rs.EOF)
Debug.Print rs![PRX_VALEUR], rs![PRX_DATE_DEB], rs!
[PRX_CODART]
rs.MoveNext
Wend
rs.Close
End Sub
Dans l'attente de vos suggestions
Merci


.



Avatar
Raymond [mvp]
je ne l'ai pas testé dans ces conditions exacts, ado, optimiste..... tu
pourrais me faire passer les objets en question (juste ceux-là) pour je
jette un oeil? tu enlèves XYZ. à mon adresse.

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


"alan" a écrit dans le message de
news: 0fc101c4f4db$e900b790$
Bonjour,
j'ai insérer Preparelist, avant 'with rs' mais rien à
faire il ne considère pas Comparelist comme une fonction.
Avatar
Raymond [mvp]
Bonjour.

il y a une erreur dans ton instruction sql concernant le champ
TARIF.PRX_DATE_DEB qui est un champ date. il faut donc l'entourer de # et
l'indiquer en format US.
MYSQL = MYSQL + " WHERE TARIF.PRX_DATE_DEB = #" & Format(LISTE2.Value,
"mm/dd/yyyy") & "#"

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