Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Objet requis

7 réponses
Avatar
Fernand WILKIN
Bonjour,

Dans un formulaire
1.- j'affiche les coordonnées d'un client : un champ "zone de texte" et un
bouton filtre me permettent de récupérer les renseignements dans la table
"clients" et de les afficher à l'écran.
2.- Je crée un n° de note en incrémentant le dernier n° utilisé (extrait de
la table Note)
3.- je vais rechercher la marchandise dans une table (Produits), à partir
d'un code et d'un bouton filtre.
Les données de la marchandise s'affichent à l'écran.
Mais quand je veux enregistrer toutes ces données dans les tables concernées
(Envoi, Note), Access m'affiche une msgbox "objet requis"...
De quoi s'agit-il ?
Quel remède ?

Merci d'avance

Fernand WILKIN

--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1694 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!

7 réponses

Avatar
ze Titi
Bonjour Fernand WILKIN

sans ton code, on ne peut pas corriger grand chose... ;-)


dans ton message <456c9583$0$19498$ du
Bonjour,

Dans un formulaire
1.- j'affiche les coordonnées d'un client : un champ "zone de texte" et un
bouton filtre me permettent de récupérer les renseignements dans la table
"clients" et de les afficher à l'écran.
2.- Je crée un n° de note en incrémentant le dernier n° utilisé (extrait de
la table Note)
3.- je vais rechercher la marchandise dans une table (Produits), à partir
d'un code et d'un bouton filtre.
Les données de la marchandise s'affichent à l'écran.
Mais quand je veux enregistrer toutes ces données dans les tables concernées
(Envoi, Note), Access m'affiche une msgbox "objet requis"...
De quoi s'agit-il ?
Quel remède ?

Merci d'avance

Fernand WILKIN

--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1694 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--

Cordialement,

Ze Titi

Avatar
Fernand WILKIN
Bonjour ze Titi,

Voici un morceau du code concerné.

J'ai oublié de signaler dans le point 3 que c'est en appuyant sur un autre
bouton (btnSauve) que les données doivent être enregistrées dans les tables
concernées. Et c'est suite à l'action sur ce bouton que j'obtiens la msgbox
"objet requis".
Les données sont extraites des différentes tables liées par une instruction
SQL.


Private Sub btnSauve_Click()

On Error GoTo Err_btnSauve_Click



' 1.- modifier "sortie" dans table1



diatek.cochSortie.Value = -1





' 2.- Ajouter les enregistrement dans table2



DoCmd.GoToRecord , , acNewRec



table2.NUMJOB = NJ

table2.JOB = JB

table2.CODE = glbCode

table2.DATEOUT = glbMyDate ' date d'exécution



table3.NUMJOB =NJ

table3.JOB = JB

SauveEnregistrementEnCours



Me.Requery



btnSauve.ForeColor = vbBlack

btnAjout.ForeColor = vbBlue

btnTerminer.ForeColor = vbBlue

btnAjout.SetFocus



Exit_btnSauve_Click:

Exit Sub



Err_btnSauve_Click:

MsgBox Err.Description

Resume Exit_btnSauve_Click





End Sub





En espérant que cela suffira... ;-))



Fernand WILKIN



"ze Titi" a écrit dans le message de news:

Bonjour Fernand WILKIN

sans ton code, on ne peut pas corriger grand chose... ;-)


dans ton message <456c9583$0$19498$ du 28/11/2006,
Bonjour,

Dans un formulaire
1.- j'affiche les coordonnées d'un client : un champ "zone de texte" et
un bouton filtre me permettent de récupérer les renseignements dans la
table "clients" et de les afficher à l'écran.
2.- Je crée un n° de note en incrémentant le dernier n° utilisé (extrait
de la table Note)
3.- je vais rechercher la marchandise dans une table (Produits), à partir
d'un code et d'un bouton filtre.
Les données de la marchandise s'affichent à l'écran.
Mais quand je veux enregistrer toutes ces données dans les tables
concernées (Envoi, Note), Access m'affiche une msgbox "objet requis"...
De quoi s'agit-il ?
Quel remède ?

Merci d'avance

Fernand WILKIN

--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1694 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--

Cordialement,

Ze Titi




--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1699 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


Avatar
ze Titi
Bonjour Fernand WILKIN

Très honnêtement, j'ai du mal à comprendre ton code, je t'explique
pourquoi.
Nulle part dans le code de ce bouton, tu n'ouvres de table en écriture.
Je suppose donc que diatek est une table que tu as dû ouvrir avant,
ainsi que table2.
Vue la façon dont tu as codé l'enregistrement dans ta table2, elle doit
être attachée au formulaire en cours.

Dans l'ordre:

' 1.- modifier "sortie" dans table1
diatek.cochSortie.Value = -1


diatek correspond (je suppose) au nom du recordset pointant sur ta
table1. Ce recordset justement, est-il déclaré et ouvert quelque part
dans ton formulaire ? Par ailleurs, la modification d'un champ se fait
de la façon suivante:

diatek!cochSortie=-1

Ceci est bien entendu valable pour toutes tes tables.

En gros, soit il nous manque des infos pour t'aider, soit tu as oublié
de déclarer certaines choses pour que ton code fonctionne.
Dis-nous !


dans ton message <456df25d$0$4575$ du
Bonjour ze Titi,

Voici un morceau du code concerné.

J'ai oublié de signaler dans le point 3 que c'est en appuyant sur un autre
bouton (btnSauve) que les données doivent être enregistrées dans les tables
concernées. Et c'est suite à l'action sur ce bouton que j'obtiens la msgbox
"objet requis".
Les données sont extraites des différentes tables liées par une instruction
SQL.


Private Sub btnSauve_Click()

On Error GoTo Err_btnSauve_Click



' 1.- modifier "sortie" dans table1



diatek.cochSortie.Value = -1





' 2.- Ajouter les enregistrement dans table2



DoCmd.GoToRecord , , acNewRec



table2.NUMJOB = NJ

table2.JOB = JB

table2.CODE = glbCode

table2.DATEOUT = glbMyDate ' date d'exécution



table3.NUMJOB =NJ

table3.JOB = JB

SauveEnregistrementEnCours



Me.Requery



btnSauve.ForeColor = vbBlack

btnAjout.ForeColor = vbBlue

btnTerminer.ForeColor = vbBlue

btnAjout.SetFocus



Exit_btnSauve_Click:

Exit Sub



Err_btnSauve_Click:

MsgBox Err.Description

Resume Exit_btnSauve_Click





End Sub





En espérant que cela suffira... ;-))



Fernand WILKIN



"ze Titi" a écrit dans le message de news:

Bonjour Fernand WILKIN

sans ton code, on ne peut pas corriger grand chose... ;-)


dans ton message <456c9583$0$19498$ du 28/11/2006,
Bonjour,

Dans un formulaire
1.- j'affiche les coordonnées d'un client : un champ "zone de texte" et un
bouton filtre me permettent de récupérer les renseignements dans la table
"clients" et de les afficher à l'écran.
2.- Je crée un n° de note en incrémentant le dernier n° utilisé (extrait
de la table Note)
3.- je vais rechercher la marchandise dans une table (Produits), à partir
d'un code et d'un bouton filtre.
Les données de la marchandise s'affichent à l'écran.
Mais quand je veux enregistrer toutes ces données dans les tables
concernées (Envoi, Note), Access m'affiche une msgbox "objet requis"...
De quoi s'agit-il ?
Quel remède ?

Merci d'avance

Fernand WILKIN

--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1694 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--

Cordialement,

Ze Titi




--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1699 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--
Cordialement,

Ze Titi



Avatar
Fernand WILKIN
Bonjour,

Voici (je crois) l'entièreté du code du formulaire, a quelques sous routines
près. J'espère que cela vous aidera.
Je récapitule :
1.- j'affiche les coordonnées d'un client : un champ "zone de texte" et un
bouton filtre me permettent de récupérer les renseignements dans la table
"clients2" et de les afficher à l'écran.





Private Sub btnRechClient_Click()

Dim SQL As String, PartWhere As String



txtRechClient = UCase(txtRechClient)



SQL = "SELECT CLIENTS2.*, CLIENTS2.NOM FROM CLIENTS2 "



PartWhere = "WHERE "



If Not IsNull(txtRechClient) Then

PartWhere = PartWhere + "CLIENTS2.NOM like """ & Trim(txtRechClient)
& "*"" AND "

End If



If PartWhere <> "WHERE " Then

If Right(PartWhere, 4) = "AND " Then

PartWhere = Left(PartWhere, Len(PartWhere) - 4)

End If

Else

PartWhere = ""

End If



SQL = SQL + PartWhere



SQL = SQL + "ORDER BY CLIENTS2.NOM;"



Me.RecordSource = SQL

txtsql = SQL

PartWhere = Mid(PartWhere, 7)

Me.Requery



End Sub



2.- Je crée un n° de note en incrémentant le dernier n° utilisé (extrait de
la table Note)



Private Sub btnCreerNDD_Click()

Dim NumNDD As Long



btnCreerNDD.ForeColor = vbBlack



' 1.- récupérer l'année en cours (GlbNumAnnee = 2004)



txtNumAnnee = GlbNumAnnee



' 2.- Dans la TABLE3, récupérer le max(NumNDD), l'incrémenter de 1

' vérifier/confirmer le n° d'année



NumNDD = DMax("[NUMJOB]", "[TABLE3]")

txtNumNDD = NumNDD

nnumndd = NumNDD + 1

nnumndd = Str(nnumndd)

nnumndd = GlbNumAnnee + Right(nnumndd, 3)



txtNNumJOB = nnumndd



' 3.- Enregistrer le numéro créé dans TABLE2.NUMJOB (nnumndd) pour tous les

' enregistrements



NJ = nnumndd ' N° de JOB

NC = txtNUM_CLIENT ' N° de client



End Sub

La TABLE2 et la TABLE3 sont reliées par le champ NUMJOB

La TABLE2 et la TABLE CLIENTS2 sont reliées par le champ NUM_CLIENT

La TABLE2 et la TABLE1 sont reliées par les champs CODE, POCHETTE, et REFDOC

La TABLE CLIENTS2 et la TABLE VILLES sont reliées par le champ CODE VILLE
3.- je vais rechercher la marchandise dans une table (Produits=TABLE1), à
partir
d'un code et d'un bouton filtre.
Les données de la marchandise s'affichent à l'écran.



Private Sub btnRechdtk_Click()

On Error GoTo Err_btnRechdtk_Click





JB = txtJOB

reccode = UCase(reccode)

recpochette = UCase(recpochette)

recrefdoc = UCase(recrefdoc)



SQL = " SELECT CLIENTS2.*, TABLE2.*, TABLE1.*, TABLE3.*, VILLES.*, " & _

"TABLE1.CODE, TABLE1.POCHETTE, TABLE1.REFDOC " & _

"FROM VILLES INNER JOIN (CLIENTS2 INNER JOIN (TABLE3 INNER JOIN (TABLE1
" & _

"INNER JOIN TABLE2 ON (TABLE1.REFDOC = TABLE2.REFDOC) " & _

"AND (TABLE1.POCHETTE = TABLE2.POCHETTE) AND (TABLE1.CODE =
TABLE2.CODE)) " & _

"ON TABLE3.NUMJOB = TABLE2.NUMJOB) ON CLIENTS2.NUM_CLIENT = " & _

"TABLE2.NUM_CLIENT) ON VILLES.[Code Ville] = CLIENTS2.[Code Ville] "



PartWhere = "WHERE "



If Not IsNull(reccode) Then

PartWhere = PartWhere + "TABLE1.code like """ & reccode & """ AND "

End If



If Not IsNull(recpochette) Then

PartWhere = PartWhere + "TABLE1.pochette like """ & recpochette & """
AND "

End If



If Not IsNull(recrefdoc) Then

PartWhere = PartWhere + "TABLE1.refdoc like """ & recrefdoc & """ AND "

End If



If PartWhere <> "WHERE " Then

If Right(PartWhere, 4) = "AND " Then

PartWhere = Left(PartWhere, Len(PartWhere) - 4)

End If

Else

PartWhere = ""

End If



SQL = SQL + PartWhere



SQL = SQL + "ORDER BY CLIENTS2.NOM, CLIENTS2.NUM_CLIENT, TABLE1.CODE,
TABLE1.POCHETTE, TABLE1.REFDOC;"



Me.RecordSource = SQL



PartWhere = Mid(PartWhere, 7)



' glbCode = reccode

' glbPochette = recpochette

' glbRefdoc = recrefdoc



If cochSortie.Value = -1 Then

etqREM.Visible = True

reccode.SetFocus

End If



' txtsql = sql

btnAjout.ForeColor = vbBlack

btnSauve.ForeColor = vbBlue

btnTerminer.ForeColor = vbBlack



Exit_btnRechdtk_Click:

Exit Sub



Err_btnRechdtk_Click:

MsgBox Err.Description

Resume Exit_btnRechdtk_Click



End Sub


Mais quand je veux enregistrer toutes ces données dans les tables concernées
(Envoi, Note), via un bouton "btnSauve", Access m'affiche une msgbox "objet
requis"...



Private Sub btnSauve_Click()

On Error GoTo Err_btnSauve_Click



SQL = "SELECT TABLE2.*, TABLE1.*, TABLE3.*, TABLE1.CODE, TABLE1.POCHETTE,
TABLE1.REFDOC, TABLE3.NUMJOB" & _

" FROM TABLE3 INNER JOIN (TABLE1 INNER JOIN TABLE2 ON (TABLE1.REFDOC =
TABLE2.REFDOC) AND (TABLE1.POCHETTE = TABLE2.POCHETTE) AND (TABLE1.CODE =
TABLE2.CODE)) ON TABLE3.NUMJOB = TABLE2.NUMJOB " & _

" ORDER BY TABLE1.CODE, TABLE1.POCHETTE, TABLE1.REFDOC, TABLE3.NUMJOB;"



Me.RecordSource = SQL



' 1.- modifier "sortie" dans TABLE1



TABLE1!cochSortie.Value = -1





' 2.- Ajouter les enregistrement dans TABLE2



' ouvrir TABLE2, ajouter enregistrement



DoCmd.GoToRecord , , acNewRec



TABLE2!NUM_CLIENT = NC

TABLE2!NUMJOB = NJ

TABLE2!JOB = JB

TABLE2!CODE = glbCode

TABLE3!NUMJOB = txtNNumJOB

TABLE3!JOB = txtJOB

SauveEnregistrementEnCours



Me.Requery



btnSauve.ForeColor = vbBlack

btnAjout.ForeColor = vbBlue

btnTerminer.ForeColor = vbBlue

btnAjout.SetFocus



Exit_btnSauve_Click:

Exit Sub



Err_btnSauve_Click:

MsgBox Err.Description

Resume Exit_btnSauve_Click





End Sub


De quoi s'agit-il ?
Quel remède ?



Encore merci.



Fernand WILKIN




--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1707 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!
Avatar
Fernand WILKIN
Bonjour ze Titi

J'avoue que mes connaissances en Access datent un peu.( Je travaille
d'ailleurs avec Access 2000.)
J'ai suivi une formation... il y a déjà un bout de temps... et ensuite, j'ai
laissé tomber un temps certain... donc maintenant, je ne sais plus !
Sous quelle forme devrait se trouver l'ouverture de la table ?
Je ne comprends pas bien, vu que : j'arrive sur le formulaire, je choisis le
client (code fourni) pas de problème, les autres actions : pas de problème,
donc je suppose que les tables sont ouvertes puisque je peux y trouver les
infos correctes. Alors pourquoi ne puis-je ajouter les données ?

Fernand WILKIN



--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1751 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!
Avatar
ze Titi
Bonjour Fernand WILKIN

Concernant l'ouverture des tables en VBA, il faut passer par un
recordset.

dim rst as Recordset
set rst=currentdb.openRecordset("TaTable")

On y ajoute des enregistrements par

rst.AddNew
rst!champ1=valeur
rst!champ2=valeur
rst!champ3=valeur
....
rst.Update

On poeut aussi passer par une requête ajout ou bien encore utiliser les
possibilités des formulaires basés sur une table. Dans ce cas, dans les
propriétés de ton formulaire, tu dois avoir autorisé (dans l'onglet
'données') l'ajout de données.

En espérant t'avoir aidé



Dans ton message <4575b033$0$23616$ du mardi
Bonjour ze Titi

J'avoue que mes connaissances en Access datent un peu.( Je travaille
d'ailleurs avec Access 2000.)
J'ai suivi une formation... il y a déjà un bout de temps... et ensuite, j'ai
laissé tomber un temps certain... donc maintenant, je ne sais plus !
Sous quelle forme devrait se trouver l'ouverture de la table ?
Je ne comprends pas bien, vu que : j'arrive sur le formulaire, je choisis le
client (code fourni) pas de problème, les autres actions : pas de problème,
donc je suppose que les tables sont ouvertes puisque je peux y trouver les
infos correctes. Alors pourquoi ne puis-je ajouter les données ?

Fernand WILKIN



--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1751 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--
Bon courage
Cordialement,

Ze Titi

Avatar
Fernand WILKIN
Bonjour ze Titi

Un grand merci !
Je vais essayer ça...

Fernand WILKIN


"ze Titi" a écrit dans le message de news:

Bonjour Fernand WILKIN

Concernant l'ouverture des tables en VBA, il faut passer par un recordset.

dim rst as Recordset
set rst=currentdb.openRecordset("TaTable")

On y ajoute des enregistrements par

rst.AddNew
rst!champ1=valeur
rst!champ2=valeur
rst!champ3=valeur
....
rst.Update

On poeut aussi passer par une requête ajout ou bien encore utiliser les
possibilités des formulaires basés sur une table. Dans ce cas, dans les
propriétés de ton formulaire, tu dois avoir autorisé (dans l'onglet
'données') l'ajout de données.

En espérant t'avoir aidé



Dans ton message <4575b033$0$23616$ du mardi
Bonjour ze Titi

J'avoue que mes connaissances en Access datent un peu.( Je travaille
d'ailleurs avec Access 2000.)
J'ai suivi une formation... il y a déjà un bout de temps... et ensuite,
j'ai laissé tomber un temps certain... donc maintenant, je ne sais plus !
Sous quelle forme devrait se trouver l'ouverture de la table ?
Je ne comprends pas bien, vu que : j'arrive sur le formulaire, je choisis
le client (code fourni) pas de problème, les autres actions : pas de
problème, donc je suppose que les tables sont ouvertes puisque je peux y
trouver les infos correctes. Alors pourquoi ne puis-je ajouter les
données ?

Fernand WILKIN



--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1751 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!


--
Bon courage
Cordialement,

Ze Titi




--------------------------------------------------------------------------------
J'utilise la version gratuite de SPAMfighter pour utilisateurs privés.
1756 e-mails spam ont été bloqués jusqu'à maintenant.
Les utilisateurs payant n'ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!