Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2011, 11h34   #1
Futur Membre du Club
 
Inscription : février 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2010
Messages : 36
Points : 16
Points : 16
Par défaut Erreur 2448 - Impossible attribuer valeur

Bonjour,

Voilà je tourne en rond depuis déjà 2 heures sur un bout de code qui fonctionnait pas plus tard qu'hier. VBA me renvoie une erreur 2448 - Impossible d'attribuer une valeur à cette objet.

A savoir : BS01, BS02, BS03 sont des labels, et S01, S02, S03 sont des champs de la requête sur laquelle le form est basé.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub BS01_Click()
    Call clic_sxx(Me!BS01, Me!BS02, Me!BS03, Me!S01, Me!S02, Me!S03)
End Sub
 
Public Function clic_sxx(ctl_aff1 As Object, ctl_aff2 As Object, ctl_aff3 As Object, ctl_sce1 As Object, ctl_sce2 As Object, ctl_sce3 As Object)
 
  If ctl_sce1 <> 0 Then
    ctl_aff1.ForeColor = 0
    ctl_aff2.ForeColor = 16777215
    ctl_aff3.ForeColor = 16777215
    'vba renvoie l'erreur sur la ligne suivante
    ctl_sce1 = 0
    ctl_sce2 = 16777215
    ctl_sce3 = 16777215
    ctl_aff1.SpecialEffect = 2
    ctl_aff2.SpecialEffect = 0
    ctl_aff3.SpecialEffect = 0
  Else
    ctl_aff1.ForeColor = 16777215
    ctl_aff1.SpecialEffect = 0
    ctl_sce1 = 16777215
  End If
End Function
J'ai essayé en ne faisant plus appel à une sous-fonction (mais j'en ai besoin car j'ai une dizaine d'appel). Mes recherches Google m'ont bien sortie des résultats mais rien qui ne solve le problème.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub BS01_Click()
    Call clic_sxx(Me!BS01, Me!BS02, Me!BS03, Me!S01, Me!S02, Me!S03)
 
'Public Function clic_sxx(ctl_aff1 As Object, ctl_aff2 As Object, ctl_aff3 As Object, ctl_sce1 As Object, ctl_sce2 As Object, ctl_sce3 As Object)
  If Me!S01 <> 0 Then
    Me!BS01.ForeColor = 0
    Me!BS02.ForeColor = 16777215
    Me!BS03.ForeColor = 16777215
    Me!BS01.SpecialEffect = 2
    Me!BS02.SpecialEffect = 0
    Me!BS03.SpecialEffect = 0
    'Me!S01 = 0
    Me!S01.Value = 0
    Me!S02 = 16777215
    Me!S03 = 16777215
  Else
    Me!BS01.ForeColor = 16777215
    Me!BS01.SpecialEffect = 0
    Me!S01 = 16777215
  End If
Cependant ça ne change rien, j'ai essayé en modifiant Me!S01 en Me!S01.Value, j'obtiens la même erreur.

Des idées ? Merci
istam3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 12h27   #2
Membre habitué
 
Homme Georges HAROT
Inscription : août 2003
Messages : 122
Détails du profil
Informations personnelles :
Nom : Homme Georges HAROT
Âge : 53
Localisation : Belgique

Informations forums :
Inscription : août 2003
Messages : 122
Points : 104
Points : 104
Envoyer un message via MSN à Geache
Bonjour,

C'est normal que le nom de la fonction soit un commentaire ?

Bonne journée
Geache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h30   #3
Futur Membre du Club
 
Inscription : février 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2010
Messages : 36
Points : 16
Points : 16
Dans le deuxième bout de code, oui c'est normal puisque j'ai copié-coller le contenu de ma fonction pour être sur que ce ne soit pas un problème de passage de paramètre, mais j'ai oublié de mettre l"appel en 1ère ligne en commentaire aussi
istam3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h34   #4
Membre du Club
 
Développeur informatique
Inscription : décembre 2008
Messages : 43
Détails du profil
Informations personnelles :
Âge : 49

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2008
Messages : 43
Points : 46
Points : 46
Salut,

Essaie ça:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub BS01_Click()
    Call clic_sxx(Me.BS01, Me.BS02, Me.BS03, Me.S01, Me.S02, Me.S03)
End Sub

Public Function clic_sxx(ctl_aff1 As Object, ctl_aff2 As Object, ctl_aff3 As Object, ctl_sce1 As LONG, ctl_sce2 As LONG, ctl_sce3 As LONG)

  If ctl_sce1 <> 0 Then
    ctl_aff1.ForeColor = 0
    ctl_aff2.ForeColor = 16777215
    ctl_aff3.ForeColor = 16777215
    'vba renvoie l'erreur sur la ligne suivante
    ctl_sce1 = 0
    ctl_sce2 = 16777215
    ctl_sce3 = 16777215
    ctl_aff1.SpecialEffect = 2
    ctl_aff2.SpecialEffect = 0
    ctl_aff3.SpecialEffect = 0
  Else
    ctl_aff1.ForeColor = 16777215
    ctl_aff1.SpecialEffect = 0
    ctl_sce1 = 16777215
  End If
End Function
[/quote]
NguyenRD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 15h26   #5
Futur Membre du Club
 
Inscription : février 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2010
Messages : 36
Points : 16
Points : 16
Le passage de paramètre en "Long" fonctionne, cependant les valeurs que je donne aux champs dans la fonction ne sont pas conservés à la sortie de la fonction. J'ai essayé un passage en ByRef et ByVal, ça ne change rien !!

Ce que je ne comprends pas vraiment pas c'est que ce bout de code fonctionnait hier et depuis ce matin pas du tout.
N'y a -t-il pas une possibilité que cela vienne d'un problème de référence ?
istam3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 17h03   #6
Futur Membre du Club
 
Inscription : février 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2010
Messages : 36
Points : 16
Points : 16
Merci pour ceux ayant essayé de m'aider. J'ai pu résoudre mon problème.
En fait ce n'est pas l'appel qui est incorrecte, mais une modification apporté à la requête source du formulaire qui empêché l'enreg. des champs.
istam3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h14.


 
 
 
 
Partenaires

Hébergement Web