L'objet ne contient pas d'objet d'automatisation

Le
Christian82
Bonjour à toutes et à tous,

ACCESS 2002
J'ai construit un formulaire basé sur table1 qui contient un sous formulaire
basé sur une requête liant table2 à table3 dans une relation 1 à plusieurs.
Le formulaire et le sous formulaire sont liés par deux champs : Id_table1
(numèro auto, père) et Id_table1 (EntierLong situé dans table2 , fils). Dans
le sous formulaire une procédure évènementielle sur perte focus d'un
contrôle, met à jour 3 autres contrôles, par une instruction

Private Sub FraisVente_LostFocus()
Me.Date3 = Me. Date2
Me.PrixTotal = Me.PU * Me.Q + tva
Ref_tbl3 = Ref_tbl2
End Sub

Les numéros liés aux noms des contrôles correspondent aux numéros des
tables.
Tout se passe bien si l'on entre des données dans le sous formulaire ouvert
seul. Mais si l'on ouvre le formulaire, lors de la saisie, on obtient le
message suivant:
"L'objet ne contient pas d'objet d'automatisation "table2". Vous avez essayé
d'exécuter une procédure VisualBasic pour définir une propriété ou une
méthode pour un objet. Cependant, le composant ne rend pas la propriété ou
la méthode disponible pour les opérations d'automatisation."

Merci de votre aide
Christian
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #6348981
Salut,

"Christian82"
| ACCESS 2002
| J'ai construit un formulaire basé sur table1 qui contient un sous formulaire
| basé sur une requête liant table2 à table3 dans une relation 1 à plusieurs.
| Le formulaire et le sous formulaire sont liés par deux champs : Id_table1
| (numèro auto, père) et Id_table1 (EntierLong situé dans table2 , fils). Dans
| le sous formulaire une procédure évènementielle sur perte focus d'un
| contrôle, met à jour 3 autres contrôles, par une instruction
|
| Private Sub FraisVente_LostFocus()
| Me.Date3 = Me. Date2
| Me.PrixTotal = Me.PU * Me.Q + tva
| Ref_tbl3 = Ref_tbl2
| End Sub
|
| Les numéros liés aux noms des contrôles correspondent aux numéros des
| tables.
| Tout se passe bien si l'on entre des données dans le sous formulaire ouvert
| seul. Mais si l'on ouvre le formulaire, lors de la saisie, on obtient le
| message suivant:
| "L'objet ne contient pas d'objet d'automatisation "table2". Vous avez essayé
| d'exécuter une procédure VisualBasic pour définir une propriété ou une
| méthode pour un objet. Cependant, le composant ne rend pas la propriété ou
| la méthode disponible pour les opérations d'automatisation."


Je dirais que Access à des difficultés pour trouver les champs ou zone de texte
dont tu lui parles.... ;-)

Déjà, tu es dans le sous-formulaire, au niveau d'un enregistrement...
- que sont Date3 et Date2 ainsi que Ref_tbl3 et Ref_tbl2
- tu crées ces copies dans un enregistrement ?

et Me.PrixTotal =... tu cherches à souver le PrixTotal ??

et il y a aussi, l'événement "LostFocus"... tu refait les calculs et récupération
de date à chaque fois que tu "passe" par FraisVente, et non seulement
lors d'une mise à jour ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Christian82
Le #6348971
Salut,

"Christian82"
ACCESS 2002
J'ai construit un formulaire basé sur table1 qui contient un sous formulaire
basé sur une requête liant table2 à table3 dans une relation 1 à plusieurs.
Le formulaire et le sous formulaire sont liés par deux champs : Id_table1
(numèro auto, père) et Id_table1 (EntierLong situé dans table2 , fils). Dans
le sous formulaire une procédure évènementielle sur perte focus d'un
contrôle, met à jour 3 autres contrôles, par une instruction

Private Sub FraisVente_LostFocus()
Me.Date3 = Me. Date2
Me.PrixTotal = Me.PU * Me.Q + tva
Ref_tbl3 = Ref_tbl2
End Sub

Les numéros liés aux noms des contrôles correspondent aux numéros des
tables.
Tout se passe bien si l'on entre des données dans le sous formulaire ouvert
seul. Mais si l'on ouvre le formulaire, lors de la saisie, on obtient le
message suivant:
"L'objet ne contient pas d'objet d'automatisation "table2". Vous avez essayé
d'exécuter une procédure VisualBasic pour définir une propriété ou une
méthode pour un objet. Cependant, le composant ne rend pas la propriété ou
la méthode disponible pour les opérations d'automatisation."



Je dirais que Access à des difficultés pour trouver les champs ou zone de
texte dont tu lui parles.... ;-)

Déjà, tu es dans le sous-formulaire, au niveau d'un enregistrement...
- que sont Date3 et Date2 ainsi que Ref_tbl3 et Ref_tbl2
- tu crées ces copies dans un enregistrement ?

et Me.PrixTotal =... tu cherches à souver le PrixTotal ??

et il y a aussi, l'événement "LostFocus"... tu refait les calculs et
récupération de date à chaque fois que tu "passe" par FraisVente, et non
seulement lors d'une mise à jour ?


Bonjour Pierre,
Effectivement, il y avait quelques soucis dans la construction de
l'ensemble, peut-etre le sous-formulaire basé sur une requête 1 à
plusieurs?
J'ai donc remplacé la source du sous-formulaire reqTle2Tble3 par
table2, puis imbriqué un sous formulaire basé sur table3. Maintenant,
tout celà fonctionne correctement.
Par rapport à tes interogations, je stocke effectivement le résultat
d'un champ calculé dans une autre table, le résultat du calcul devenant
alors une donnée à part entière. Certes, cela peut paraitre peu
académique, mais ça simplifie son utilisation ultérieure. Quand au
lostfocus, le choix vient du fait que le controle concerné ne recoitpas
forcément de données.... On évite ainsi de forcer une saisie de type 0.
Merci d'avoir étudié mon problème,
Cordialement
Christian


Publicité
Poster une réponse
Anonyme