Bonjour,
Je reviens sur un probl=E8me que Ilan m'a tr=E8s gentillement=20
aid=E9 =E0 r=E9soudre.
Mais j'ai toujours un probl=E8me.
J'ai un formulaire 'Clients' dans lequel il y a 24 champs=20
pour noter les contacts qui sont [RESPONSABLE];=20
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];=20
[POLITESSE1];...etc
La saisi dans ces champs se passe tr=E8s bien.
Je veux selon le cas copier toutes ces donn=E9es 'Contacts'=20
d'un client dans une autre table=20
appel=E9e 'Contacts_Clients' en utilisant la fonction=20
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db =3D CurrentDb
Chaine =3D "SELECT NClient, RESPONSABLE, RESPONSABLE2,=20
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,=20
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1, TELDIRECT2,=20
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,=20
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2, DEPARTEMENT3=20
FROM Clients ORDER BY NClient"
Set TABLE1 =3D Db.OpenRecordset(Chaine)
Set TABLE2 =3D Db.OpenRecordset("SELECT * FROM=20
Contacts_Clients ORDER BY NClient,")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=3D" & TABLE1!NClient)
If TABLE2.NoMatch Then
For CONTACT =3D 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next CONTACT
Else
For CONTACT =3D 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
GoSub AjouterContact
Else
TABLE2.Edit
Contact,Politesse,....,Email
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next CONTACT
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item(InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu aurais ete plus vite en effectuant tout ca a la main. La fonction etait sensee te permettre d'effectuer rapidement ce transfert, on en est loin.
Bonjour,
la ligne : Exit Function doit se trouver tout de suite en dessous de la
ligne
TABLE2.Close
remplacer :
TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item(InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients
modifie les
Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La fonction etait
sensee te permettre
d'effectuer rapidement ce transfert, on en est loin.
Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item(InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu aurais ete plus vite en effectuant tout ca a la main. La fonction etait sensee te permettre d'effectuer rapidement ce transfert, on en est loin.
Luis
Bonjour Ilan, Je tiens à te remercier très sincèrement pour ta patiance, mais maintenant ça marche. J'ai mis: Exit Function sous TABLE2.Close remplacé: TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact) Et j'ai ajouté la Clause WHERE que j'avais sauté par Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients ORDER BY NClient =" & Forms! [Clients].NClient & "" Je ne sais pas si c'est très élégant mais ça marche. Je te remercie encore. Luis
-----Message d'origine----- Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la
ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients
modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La fonction etait
sensee te permettre d'effectuer rapidement ce transfert, on en est loin.
.
Bonjour Ilan,
Je tiens à te remercier très sincèrement pour ta patiance,
mais maintenant ça marche.
J'ai mis:
Exit Function sous TABLE2.Close
remplacé:
TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item
(InfoContact)
Et j'ai ajouté la Clause WHERE que j'avais sauté par
Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,.....
FROM Clients ORDER BY NClient =" & Forms!
[Clients].NClient & ""
Je ne sais pas si c'est très élégant mais ça marche.
Je te remercie encore.
Luis
-----Message d'origine-----
Bonjour,
la ligne : Exit Function doit se trouver tout de suite
en dessous de la
ligne
TABLE2.Close
remplacer :
TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item
(InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans
l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client
choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client
de la table Clients
modifie les
Contacts associes dans la table Contacts_Clients et c'est
tout.
Bref, 2 semaines pour transferer des donnees d'une table
a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La
fonction etait
sensee te permettre
d'effectuer rapidement ce transfert, on en est loin.
Bonjour Ilan, Je tiens à te remercier très sincèrement pour ta patiance, mais maintenant ça marche. J'ai mis: Exit Function sous TABLE2.Close remplacé: TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact) Et j'ai ajouté la Clause WHERE que j'avais sauté par Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients ORDER BY NClient =" & Forms! [Clients].NClient & "" Je ne sais pas si c'est très élégant mais ça marche. Je te remercie encore. Luis
-----Message d'origine----- Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la
ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients
modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La fonction etait
sensee te permettre d'effectuer rapidement ce transfert, on en est loin.
.
Ilan
Bonjour, en fait il faut ecrire Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients WHERE NClient =" & Forms![Clients].NClient
Puisque tu ne prends qu'un seul enregistrement l'instruction de tri ORDER BY n'est plus necessaire pour TABLE1 (ne change rien pour TABLE2).
Si ca marche. Faut dire enfin!! ca a ete plutot laborieux. Je ferais un peu mieux la prochaine fois.
Bonjour Ilan, Je tiens à te remercier très sincèrement pour ta patiance, mais maintenant ça marche. J'ai mis: Exit Function sous TABLE2.Close remplacé: TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact) Et j'ai ajouté la Clause WHERE que j'avais sauté par Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients ORDER BY NClient =" & Forms! [Clients].NClient & "" Je ne sais pas si c'est très élégant mais ça marche. Je te remercie encore. Luis
-----Message d'origine----- Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la
ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients
modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La fonction etait
sensee te permettre d'effectuer rapidement ce transfert, on en est loin.
.
Bonjour,
en fait il faut ecrire
Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,.....
FROM Clients WHERE NClient =" & Forms![Clients].NClient
Puisque tu ne prends qu'un seul enregistrement l'instruction de tri ORDER BY
n'est plus necessaire pour TABLE1 (ne change rien pour TABLE2).
Si ca marche. Faut dire enfin!! ca a ete plutot laborieux.
Je ferais un peu mieux la prochaine fois.
Bonjour Ilan,
Je tiens à te remercier très sincèrement pour ta patiance,
mais maintenant ça marche.
J'ai mis:
Exit Function sous TABLE2.Close
remplacé:
TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item
(InfoContact)
Et j'ai ajouté la Clause WHERE que j'avais sauté par
Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,.....
FROM Clients ORDER BY NClient =" & Forms!
[Clients].NClient & ""
Je ne sais pas si c'est très élégant mais ça marche.
Je te remercie encore.
Luis
-----Message d'origine-----
Bonjour,
la ligne : Exit Function doit se trouver tout de suite
en dessous de la
ligne
TABLE2.Close
remplacer :
TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item
(InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans
l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client
choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client
de la table Clients
modifie les
Contacts associes dans la table Contacts_Clients et c'est
tout.
Bref, 2 semaines pour transferer des donnees d'une table
a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La
fonction etait
sensee te permettre
d'effectuer rapidement ce transfert, on en est loin.
Bonjour, en fait il faut ecrire Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients WHERE NClient =" & Forms![Clients].NClient
Puisque tu ne prends qu'un seul enregistrement l'instruction de tri ORDER BY n'est plus necessaire pour TABLE1 (ne change rien pour TABLE2).
Si ca marche. Faut dire enfin!! ca a ete plutot laborieux. Je ferais un peu mieux la prochaine fois.
Bonjour Ilan, Je tiens à te remercier très sincèrement pour ta patiance, mais maintenant ça marche. J'ai mis: Exit Function sous TABLE2.Close remplacé: TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact) Et j'ai ajouté la Clause WHERE que j'avais sauté par Chaine = "SELECT NClient, RESPONSABLE, DEPARTEMENT1,..... FROM Clients ORDER BY NClient =" & Forms! [Clients].NClient & "" Je ne sais pas si c'est très élégant mais ça marche. Je te remercie encore. Luis
-----Message d'origine----- Bonjour, la ligne : Exit Function doit se trouver tout de suite en dessous de la
ligne TABLE2.Close
remplacer : TABLE2.Fields.Item(InfoContact + 1) par TABLE2.Fields.Item (InfoContact)
2) Il y avait la semaine derniere une Clause WHERE dans l'instruction SQL de
TABLE1 pour modifier uniquement les contacts du client choisis. Depuis ??
En clair ,la fonction aujourd'hui lit le premier client de la table Clients
modifie les Contacts associes dans la table Contacts_Clients et c'est tout.
Bref, 2 semaines pour transferer des donnees d'une table a une autre. Tu
aurais ete plus vite en effectuant tout ca a la main. La fonction etait
sensee te permettre d'effectuer rapidement ce transfert, on en est loin.