Erreur de compilation : Impossible d'affecter à un tableau / OBJ
Earwenn
Messages postés
2
Statut
Membre
-
Earwenn Messages postés 2 Statut Membre -
Earwenn Messages postés 2 Statut Membre -
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