Erreur de compilation : Impossible d'affecter à un tableau / OBJ
Earwenn
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Earwenn Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Earwenn Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et à toutes,
Je suis confrontée à un probleme depuis deux jours. Forum et autres tutos ne me donne réponse à mon probleme.
J'ai tenté la mise en place d'objet dans Access.
Je vous explique
j'ai un objet Staff dans lequel je déclare les propriétés etc.
j'ai un objet BDD_STAFF dans lequel je fais ceci :
Mon request est alimenté par des constantes définies.
Mon wrapperRecord est un objet dans lequel je lance mes requetes (pour explication).
Mon Mapping alimente mon objet STAFF.
J'ai effectué des tests avec la récupération d'un seul enregistrement où je n'ai eu aucun probleme (structure idem).
J'ai seulement modifié pour qu'à la place d'un seul objet je récupère un tableau d'objet.
Ma fonction est lancé au chargement de mon formulaire mais voila PROBLEME : Erreur de compilation : Impossible d'affecter à un tableau.
Code sur chargement du formulaire :
Le compilateur relève l'erreur sur la ligne suivante.
Set tab_staff = BDD_STAFF.Select_By_Login(Environ("USERNAME"))
Merci d'avance.
Cordialement
@GLeviavant
Je suis confrontée à un probleme depuis deux jours. Forum et autres tutos ne me donne réponse à mon probleme.
J'ai tenté la mise en place d'objet dans Access.
Je vous explique
j'ai un objet Staff dans lequel je déclare les propriétés etc.
j'ai un objet BDD_STAFF dans lequel je fais ceci :
Public Function Select_By_Login(vLogin As String) As Class_Staff() Dim rs As Recordset Dim wRcd As WrapperRecord Dim users() As Class_Staff Dim i As Integer Dim request As String request = SELECTc & ALL_INFORMATION & FROMc & TABLE & WHEREc & CRITERIA_ID & ANDc & CRITERIA_OUT_F request = Replace(request, "[Id]", vLogin) Set wRcd = New WrapperRecord Set rs = wRcd.executeRequest(request, CurrentDb) i = 0 While Not rs.EOF MsgBox (rs.Fields(1)) Set users(i) = mapping_staff_All(rs) i = i + 1 rs.MoveNext Wend Set Select_By_Login = users End Function
Mon request est alimenté par des constantes définies.
Mon wrapperRecord est un objet dans lequel je lance mes requetes (pour explication).
Mon Mapping alimente mon objet STAFF.
J'ai effectué des tests avec la récupération d'un seul enregistrement où je n'ai eu aucun probleme (structure idem).
J'ai seulement modifié pour qu'à la place d'un seul objet je récupère un tableau d'objet.
Ma fonction est lancé au chargement de mon formulaire mais voila PROBLEME : Erreur de compilation : Impossible d'affecter à un tableau.
Code sur chargement du formulaire :
Dim BDD_STAFF As BDD_STAFF Dim tab_staff() as Class_Staff Set BDD_STAFF = New BDD_STAFF Set tab_staff = BDD_STAFF.Select_By_Login(Environ("USERNAME"))
Le compilateur relève l'erreur sur la ligne suivante.
Set tab_staff = BDD_STAFF.Select_By_Login(Environ("USERNAME"))
Merci d'avance.
Cordialement
@GLeviavant
A voir également:
- Vba impossible d'affecter à un tableau
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
1 réponse
J'ai eu une illumination.
Voila je n'ai pas declaré des tableaus du type de classe voulu mais j'ai remplacé cela par un objet Collection.
Ma fonction retourne une collection et je la récupère ainsi.
En plus de deux trois maladresses j'ai pu atteindre ce que je voulais.
donc pour ce que ca pourrait intéresser voila le nouveau code
et dans la procédure qui fait appel a cette fonction :
"Rien n'est plus insondable que le système de motivations derrière nos actions."
@Earwenn
Voila je n'ai pas declaré des tableaus du type de classe voulu mais j'ai remplacé cela par un objet Collection.
Ma fonction retourne une collection et je la récupère ainsi.
En plus de deux trois maladresses j'ai pu atteindre ce que je voulais.
donc pour ce que ca pourrait intéresser voila le nouveau code
Public Function Select_By_Login(vLogin As String) As Collection Dim rs As Recordset Dim wRcd As WrapperRecord Dim users As New Collection Dim user As Class_Staff Dim request As String request = SELECTc & ALL_INFORMATION & FROMc & TABLE & WHEREc & CRITERIA_ID & ANDc & CRITERIA_OUT_F request = Replace(request, "[Id]", vLogin) Set wRcd = New WrapperRecord Set rs = wRcd.executeRequest(request, CurrentDb) While Not rs.EOF Set user = mapping_staff_All(rs) users.Add Item:=user rs.MoveNext Wend Set Select_By_Login = users End Function
et dans la procédure qui fait appel a cette fonction :
Dim BDD_STAFF As BDD_STAFF
Dim tab_staf As Collection
Dim user As Class_Staff
Set BDD_STAFF = New BDD_STAFF
Set tab_staff = BDD_STAFF.Select_By_Login(Environ("USERNAME"))
Set user = New Class_Staff
Set user = tab_staff.Item(1)
"Rien n'est plus insondable que le système de motivations derrière nos actions."
@Earwenn