Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle n'est
pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle n'est
pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
ea4qJL$$FHA.504@TK2MSFTNGP12.phx.gbl...
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eHFADs%23$FHA.2392@TK2MSFTNGP09.phx.gbl...
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle n'est
pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plu s à
utiliser on error mais il faudra quand même faire un test sur ce comp teur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulem ent à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'a i plus à me
préocuper de comment je vais gérer mes erruer lorsque je vais rempl ir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impress ion que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au momen t
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléme nts d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'er reur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y a i
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sa ns
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la fa çon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau d e
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau d e
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plu s à
utiliser on error mais il faudra quand même faire un test sur ce comp teur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulem ent à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'a i plus à me
préocuper de comment je vais gérer mes erruer lorsque je vais rempl ir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impress ion que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au momen t
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléme nts d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'er reur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y a i
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sa ns
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la fa çon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau d e
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau d e
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plu s à
utiliser on error mais il faudra quand même faire un test sur ce comp teur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulem ent à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'a i plus à me
préocuper de comment je vais gérer mes erruer lorsque je vais rempl ir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impress ion que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au momen t
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléme nts d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'er reur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y a i
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sa ns
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la fa çon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau d e
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau d e
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression que ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression que ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus à
me préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression que ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je suis d'accord que cette methode marche mais ce n'est pas ce que je veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je suis d'accord que cette methode marche mais ce n'est pas ce que je veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
OqC1GV$$FHA.516@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
ea4qJL$$FHA.504@TK2MSFTNGP12.phx.gbl...
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eHFADs%23$FHA.2392@TK2MSFTNGP09.phx.gbl...
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je suis d'accord que cette methode marche mais ce n'est pas ce que je veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section (seulement
à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox (sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" a écrit dans le message de news:
eZRK3f$$je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message
de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eZRK3f$$FHA.1028@TK2MSFTNGP11.phx.gbl...
je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
OqC1GV$$FHA.516@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
ea4qJL$$FHA.504@TK2MSFTNGP12.phx.gbl...
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eHFADs%23$FHA.2392@TK2MSFTNGP09.phx.gbl...
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message
de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" a écrit dans le message de news:
eZRK3f$$je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai plus
à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message
de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je veux que ma listbox soit vide (comme le resultat de la fonction) ...
"Daniel" a écrit dans le message de news:
uEWZvo$$Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" a écrit dans le message de news:
eZRK3f$$je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau
défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox
un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai
plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer
la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message
de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je veux que ma listbox soit vide (comme le resultat de la fonction) ...
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uEWZvo$$FHA.3864@TK2MSFTNGP12.phx.gbl...
Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eZRK3f$$FHA.1028@TK2MSFTNGP11.phx.gbl...
je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
OqC1GV$$FHA.516@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
ea4qJL$$FHA.504@TK2MSFTNGP12.phx.gbl...
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau
défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox
un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eHFADs%23$FHA.2392@TK2MSFTNGP09.phx.gbl...
Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news:
%2328%23oi%23$FHA.504@TK2MSFTNGP12.phx.gbl...
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai
plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OPK1AE%23$FHA.664@TK2MSFTNGP10.phx.gbl...
Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" <toto@bla.com> a écrit dans le message de news:
eqAETy9$FHA.504@TK2MSFTNGP12.phx.gbl...
malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer
la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" <toto@bla.com> a écrit dans le message de news:
et97VO8$FHA.1676@TK2MSFTNGP09.phx.gbl...
mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" <michel.gaboly@wanadoo.fr> a écrit dans le message
de
news: O%23i470v$FHA.2520@TK2MSFTNGP15.phx.gbl...
Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.
bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com
je veux que ma listbox soit vide (comme le resultat de la fonction) ...
"Daniel" a écrit dans le message de news:
uEWZvo$$Et si tu disais ce que tu veux faire en cas de tableau vide au lieu de
dire ce que tu ne veux pas ?
Daniel
"Emcy" a écrit dans le message de news:
eZRK3f$$je suis d'accord que cette methode marche mais ce n'est pas ce que je
veux
=> je ne veux pas avoir à fare de teste d'erreur à chaque fois que
j'appele ma fonction (je veux que ça soit fait à l'interrieur de la
fonction) : est-ce possible ?
cette fois, vous comprennez ou pas ?
"michdenis" a écrit dans le message de news:
OqC1GV$$Bonjour Emcy,
Tu cherches à faire rouler une fonction même si dans les cas où elle
n'est pas requise...
Est-ce normal ?
Un recordset s'ouvre sur le premier enregistrement disponible.
Si le curseur se retrouve à la position EOF (End Of File)
c'est qu'il n'y a pas d'enregistrements dans le recordset
en conséquence, aucun besoin d'appliquer une fonction à
un recordset vide ! Est-ce déraisonnable de penser ainsi ?
'----------------------
If Rst.EOF = True Then
Msgbox "aucune information à afficher dans le listbox."
else
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End if
'----------------------
Salutations!
"Emcy" a écrit dans le message de news:
ea4qJL$$
décidemment j'ai du mal à me faire comprendre :(
je programme en ADO => j'arrive à récupérer mes donnée et à les
retourner
dans ma fonction
le probleme est lorsque j'execute cette commande :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> s'il n'y a aucun element dans le resultat de ma requete alors ma
fonction
revoie la valeur d'un tableau "vide" et donc une erreur se produit.
=> j'ai aussi essayé de dire à ma fonction de renvoyer un tableau
défini
comme ceci lorsque le resultat de ma requete est vide :
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
'si le resultat de ma requete est vide alors je fais ça
Redim MonTableau(0)
MonTableau(0) = empty
.....
FonctionRecupere = MonTableau
End Function
=> avec cette methode je n'ai plus d'erreur mais j'ai dans ma ListBox
un
element "vide" (ce que je ne veux pas)
comment faire pour ne pas avoir ni d'element vide ni d'erreur ?
n'oubliez pas que je ne veux pas qu'on fasse un control d'erreur sur la
ligne d'appel de la fonction (seulement à l'interrieur de la fonction)
pour
facilité l'utilisation de ma fonction.
"michdenis" a écrit dans le message de news:
eHFADs%23$Bonjour Emcy,
Comment fais-tu pour obtenir ton recordset ? Par ADO, par DAO ?
De tester si ta requête retourne des enregistrements avant l'usage de
ta fonction devrait être relativement simple
Par exemple ceci :
Rst étant une variable de type recordset
If Rst.EOF = True Then
MsgBox "aucun enregistrement"
'arrêt de la procédure !
End If
Salutations!
"Emcy" a écrit dans le message de news:
%2328%23oi%23$
ça ne resoudera pas réellement mon probleme : certe je n'aurais plus à
utiliser on error mais il faudra quand même faire un test sur ce
compteur
ce que je veux c'est créer une fonction qui me permette de remplir ma
ListBox simplement en utilisant la ligne de commande suivante :
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
=> je ne veux faire aucun control d'erreur dans cette section
(seulement à
l'interieur de la fonction)
=> ce que je veux c'est qu'une fois ma fonction créée, que je n'ai
plus à
me
préocuper de comment je vais gérer mes erruer lorsque je vais remplir
ma
ListBox ... j'espere avoir ete assez explicite => mais j'ai
l'impression
que
ce n'est pas possible....
"Daniel" a écrit dans le message de news:
OPK1AE%23$Est-ce que tu ne peux pas mettre un compteur d'enregistrements au
moment
du remplissage ?
Daniel
"Emcy" a écrit dans le message de news:
eqAETy9$malheuresement, je ne peux garantir que le tableau soit non vide.
j'ai fait une fonction qui revoie un tableau constitué des éléments
d'un
RecordSet (BDD Access) => donc je ne peux pas avoir comme certitude
que
mon tableau ne sera pas vide
Sub Main()
Me.ListBox1.List = FonctionRecupere(MaColonne, Filtre)
End Sub
Function FonctionRecupere(MaColonne As String, Filtre As String) as
Variant
Dim MonTableau() As String
.....
..... 'remplissage de MonTableau (en utilisant Redim pour fixer
la
taille)
.....
FonctionRecupere = MonTableau
End Function
=> si la fonction renvoie un tableau vide alors j'ai un message
d'erreur
lorsque je remplis la ListBox : je recherche un moyen pour qu'il n'y
ai
pas d'erreur s'il n'y a aucuns element à rentrer dans la ListBox
(sans
avoir à toucher le code de la sub Main)
"Emcy" a écrit dans le message de news:
et97VO8$mon cas est pour Mat3 : y a t-il un moyen de ne pas avoir à utliser
On
Error ?
"Michel Gaboly" a écrit dans le message
de
news: O%23i470v$Bonjour Emcy
Cela dépend de ce que tu appelles une variable tableau et de la
façon
dont elle a été définie.
Avec ce code :
Private Sub Tableaux()
Dim Mat1, Mat2(0), Mat3()
Mat1 = Array()
MsgBox UBound(Mat1)
MsgBox UBound(Mat2)
MsgBox UBound(Mat3)
End Sub
Mat1, sans parenthèse est un Variant auquel on affecte un tableau
vide
Mat2, avec parenthèses est défini directement comme un tableau de
Variant à une dimension.
Mat3, avec parenthèses est défini directement comme un tableau de
Variant non dimensionné.
UBound(Mat1) est égal à -1, tandis que UBound(Mat2) est égal à 0
(indice maximal), tandis que UBound(Mat3) déclenche une erreur.bonjour,
existe t-il un moyen de voir si une variable tableau (vba) est
vide
sans utiliser les OnError ?
--
Cordialement,
Michel Gaboly
www.gaboly.com