Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close
-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de ligne
de code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.Close
Bonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
Or
TABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis
-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" <anonymous@discussions.microsoft.com> a écrit
dans
le message de news:3f9801c4ab88$036f8a40
$a301280a@phx.gbl...
Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis
-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
le
premier i.
Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
OR
TABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis
-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clients
n'ont pas tous 3 Contacts
Il faut alors remplacer la boucle For ... Next par
Do
While ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
OR
TABLE1.Fields
("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close
-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de ligne
de code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.Close
Bonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
Or
TABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis
-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" <anonymous@discussions.microsoft.com> a écrit
dans
le message de news:3f9801c4ab88$036f8a40
$a301280a@phx.gbl...
Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis
-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
le
premier i.
Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
OR
TABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis
-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clients
n'ont pas tous 3 Contacts
Il faut alors remplacer la boucle For ... Next par
Do
While ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
OR
TABLE1.Fields
("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
-----Message d'origine-----
Re Luis
Essaie avec ceci
set TABLE1Û.openrecordset("SELECT * FROM Clients")
set TABLE2Û.openrecordset("SELECT * FROM
CONTACTS_CLIENTS")
et remplace TABLE1.nomatch par TABLE2.nomatchRe-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais
rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exÃf©cution '3265'
ElÃf©ment non trouvÃf© dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" &
i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
DÃf¨s que je sort de ce que je connais, je suis
perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a
Ãf©crit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exÃf©cution '3078'
Le moteur de base de donÃf©es Microsoft Jet ne
peut pas
trouver la table ou la requÃfªte source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiÃf©e.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop
derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next
par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" &
i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
-----Message d'origine-----
Re Luis
Essaie avec ceci
set TABLE1=db.openrecordset("SELECT * FROM Clients")
set TABLE2=db.openrecordset("SELECT * FROM
CONTACTS_CLIENTS")
et remplace TABLE1.nomatch par TABLE2.nomatch
Re-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais
rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close
-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de ligne
de code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.Close
Bonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exÃf©cution '3265'
ElÃf©ment non trouvÃf© dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" &
i))
Or
TABLE1.Fields("RESPONSABLE" & i) = "")
DÃf¨s que je sort de ce que je connais, je suis
perdu.
Luis
-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" <anonymous@discussions.microsoft.com> a
Ãf©crit
dans
le message de news:3f9801c4ab88$036f8a40
$a301280a@phx.gbl...
Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exÃf©cution '3078'
Le moteur de base de donÃf©es Microsoft Jet ne
peut pas
trouver la table ou la requÃfªte source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiÃf©e.
Je ne comprend pas.
Luis
-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop
derriere
le
premier i.
Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" &
i"))
OR
TABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis
-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clients
n'ont pas tous 3 Contacts
Il faut alors remplacer la boucle For ... Next
par
Do
While ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
OR
TABLE1.Fields
("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" &
i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
-----Message d'origine-----
Re Luis
Essaie avec ceci
set TABLE1Û.openrecordset("SELECT * FROM Clients")
set TABLE2Û.openrecordset("SELECT * FROM
CONTACTS_CLIENTS")
et remplace TABLE1.nomatch par TABLE2.nomatchRe-bonjour,
Voilà j'ai fini d'écrire ça donne ce qui suit, mais
rien
ne va s'inscrire dans la table2:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Set Db = CurrentDb
Set TABLE1 = Db.OpenRecordset("Clients")
Set TABLE2 = Db.OpenRecordset("CONTACTS_CLIENTS")
TABLE1.MoveFirst
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!NClient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!RESPONSABLE) Or TABLE1!
RESPONSABLE = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT
TABLE2!TELDIRECT = TABLE1!TELDIRECT1
TABLE2!NATELDIRECT = TABLE1!NATEL
TABLE2!FAXDIRECT = TABLE1!FAX1
TABLE2!MAILDIRECT = TABLE1![e-mail1]
TABLE2!FONCTION = TABLE1!FONCTION
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE2) Or TABLE1!
RESPONSABLE2 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE2
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE2
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT2
TABLE2!TELDIRECT = TABLE1!TELDIRECT2
TABLE2!NATELDIRECT = TABLE1!NATEL2
TABLE2!FAXDIRECT = TABLE1!FAX2
TABLE2!MAILDIRECT = TABLE1![e-mail2]
TABLE2!FONCTION = TABLE1!FONCTION2
TABLE2.Update
End If
If Not (IsNull(TABLE1!RESPONSABLE3) Or TABLE1!
RESPONSABLE3 = "") Then
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
TABLE2!CONTACT = TABLE1!RESPONSABLE3
TABLE2!Mme_Mlle_M = TABLE1!POLITESSE3
TABLE2!DEPARTEMENT = TABLE1!DEPARTEMENT3
TABLE2!TELDIRECT = TABLE1!TELEDIRECT3
TABLE2!NATELDIRECT = TABLE1!NATEL3
TABLE2!FAXDIRECT = TABLE1!FAX3
TABLE2!MAILDIRECT = TABLE1![e-mail3]
TABLE2!FONCTION = TABLE1!FONCTION3
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE2.Close
TABLE1.Close-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exÃf©cution '3265'
ElÃf©ment non trouvÃf© dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" &
i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
DÃf¨s que je sort de ce que je connais, je suis
perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a
Ãf©crit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exÃf©cution '3078'
Le moteur de base de donÃf©es Microsoft Jet ne
peut pas
trouver la table ou la requÃfªte source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiÃf©e.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop
derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next
par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" &
i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
-----Message d'origine-----
Bonjour Ilan,
Il y a toujours le même problème et je crois que c'est
parce que j'ai mal expliqué le problème
La TABLE1 est une table clients avec un centaine de
champs
dont les champs
RESPONSABLE
RESPONSABLE2
RESPONSABLE3
dans la Table2 ce champ s'appelle 'CONTACT'
DEPARTEMENT1
DEPARTEMENT2
DEPARTEMENT3
dans la Table2 ce champ s'appelle 'DEPARTEMENT'
POLITESSE
POLITESSE2
POLITESSE3
dans la Table2 ce champ s'appelle 'Mme_Mlle_M'
TELDIRECT1
TELDIRECT2
TELEDIRECT3
dans la Table2 ce champ s'appelle 'TELDIRECT'
NATEL
NATEL2
NATEL3
dans la Table2 ce champ s'appelle 'NATELDIRECT'
FAX1
FAX2
FAX3
dans la Table2 ce champ s'appelle 'FAXDIRECT'
e-mail1
e-mail2
e-mail3
dans la Table2 ce champ s'appelle 'MAILDIRECT'
Fonction
FONCTION2
FONCTION3
dans la Table2 ce champ s'appelle 'Fonction'
C'est 3 champs de la Table1 qui doivent être copiés,
quîls
soient vide ou pas, dans la Table2 à chaque fois
la Table1 s'appelle 'Clients'
la Table2 s'appelle 'Contacts_Clients'
Il n'y a pas de table 'CONTACTS'.
J'espère que j'ai été plus claire, cette fois.
Luis-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next
par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
-----Message d'origine-----
Bonjour Ilan,
Il y a toujours le même problème et je crois que c'est
parce que j'ai mal expliqué le problème
La TABLE1 est une table clients avec un centaine de
champs
dont les champs
RESPONSABLE
RESPONSABLE2
RESPONSABLE3
dans la Table2 ce champ s'appelle 'CONTACT'
DEPARTEMENT1
DEPARTEMENT2
DEPARTEMENT3
dans la Table2 ce champ s'appelle 'DEPARTEMENT'
POLITESSE
POLITESSE2
POLITESSE3
dans la Table2 ce champ s'appelle 'Mme_Mlle_M'
TELDIRECT1
TELDIRECT2
TELEDIRECT3
dans la Table2 ce champ s'appelle 'TELDIRECT'
NATEL
NATEL2
NATEL3
dans la Table2 ce champ s'appelle 'NATELDIRECT'
FAX1
FAX2
FAX3
dans la Table2 ce champ s'appelle 'FAXDIRECT'
e-mail1
e-mail2
e-mail3
dans la Table2 ce champ s'appelle 'MAILDIRECT'
Fonction
FONCTION2
FONCTION3
dans la Table2 ce champ s'appelle 'Fonction'
C'est 3 champs de la Table1 qui doivent être copiés,
quîls
soient vide ou pas, dans la Table2 à chaque fois
la Table1 s'appelle 'Clients'
la Table2 s'appelle 'Contacts_Clients'
Il n'y a pas de table 'CONTACTS'.
J'espère que j'ai été plus claire, cette fois.
Luis
-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de ligne
de code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") Then
TABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.Close
Bonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
Or
TABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis
-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" <anonymous@discussions.microsoft.com> a écrit
dans
le message de news:3f9801c4ab88$036f8a40
$a301280a@phx.gbl...
Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis
-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
le
premier i.
Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
OR
TABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis
-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clients
n'ont pas tous 3 Contacts
Il faut alors remplacer la boucle For ... Next
par
Do
While ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
OR
TABLE1.Fields
("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
-----Message d'origine-----
Bonjour Ilan,
Il y a toujours le même problème et je crois que c'est
parce que j'ai mal expliqué le problème
La TABLE1 est une table clients avec un centaine de
champs
dont les champs
RESPONSABLE
RESPONSABLE2
RESPONSABLE3
dans la Table2 ce champ s'appelle 'CONTACT'
DEPARTEMENT1
DEPARTEMENT2
DEPARTEMENT3
dans la Table2 ce champ s'appelle 'DEPARTEMENT'
POLITESSE
POLITESSE2
POLITESSE3
dans la Table2 ce champ s'appelle 'Mme_Mlle_M'
TELDIRECT1
TELDIRECT2
TELEDIRECT3
dans la Table2 ce champ s'appelle 'TELDIRECT'
NATEL
NATEL2
NATEL3
dans la Table2 ce champ s'appelle 'NATELDIRECT'
FAX1
FAX2
FAX3
dans la Table2 ce champ s'appelle 'FAXDIRECT'
e-mail1
e-mail2
e-mail3
dans la Table2 ce champ s'appelle 'MAILDIRECT'
Fonction
FONCTION2
FONCTION3
dans la Table2 ce champ s'appelle 'Fonction'
C'est 3 champs de la Table1 qui doivent être copiés,
quîls
soient vide ou pas, dans la Table2 à chaque fois
la Table1 s'appelle 'Clients'
la Table2 s'appelle 'Contacts_Clients'
Il n'y a pas de table 'CONTACTS'.
J'espère que j'ai été plus claire, cette fois.
Luis-----Message d'origine-----
Ok Luis,
Pour eviter toute erreur de compilation tu vas devoir
ecrire plus de lignede code
While Not TABLE1.EOF
TABLE2.FindFirst ("Nclient=" & TABLE1!nclient)
If TABLE1.NoMatch Then
If Not (IsNull(TABLE1!contact1) Or TABLE1!
contact1 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact1
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact2) Or TABLE1!
contact2 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
...
TABLE2.Update
End If
If Not (IsNull(TABLE1!contact3) Or TABLE1!
contact3 = "") ThenTABLE2.AddNew
TABLE2!nclient = TABLE1!nclient
TABLE2!Contact = TABLE1!contact2
....
TABLE2.Update
End If
End If
TABLE1.MoveNext
Wend
TABLE1.Close
TABLE2.CloseBonjour Pierre CFI,
Merci pour les "
Maintenant j'ai une autre erreur:
Erreur d'exécution '3265'
Elément non trouvé dans la collection.
Avec cette ligne en surbrillance
Do While Not (IsNull(TABLE1.Fields("RESPONSABLE" & i))
OrTABLE1.Fields("RESPONSABLE" & i) = "")
Dès que je sort de ce que je connais, je suis perdu.
Luis-----Message d'origine-----
bonjour
avec des "
Set TABLE1 = Db.OpenRecordset("Clients")
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"lUIS" a écrit
dansle message de news:3f9801c4ab88$036f8a40
$Bonjour Ilan,
Je viens d'essayer mais j'ai une erreur bizarre:
Erreur d'exécution '3078'
Le moteur de base de donées Microsoft Jet ne peut pas
trouver la table ou la requête source.
et j'ai cette ligne en surbrillance
Set TABLE1 = Db.OpenRecordset(Clients)
Pourtant la table 'Clients' existe et elle est bien
orthographiée.
Je ne comprend pas.
Luis-----Message d'origine-----
Bonjour Luis,
je pense qu'il s'agit du guillement en trop derriere
lepremier i.Bonjour Ilan,
Je te remercie pour ton tuyaux, dans:
Do While not (isnull(TABLE1.Fields("CONTACT" & i"))
ORTABLE1.Fields("CONTACT" & i)="")
J'ai une erreur de compilation
Luis-----Message d'origine-----
Pardon, j'oubliais qu'il faut prevoir que les
Clientsn'ont pas tous 3 ContactsIl faut alors remplacer la boucle For ... Next
par
DoWhile ... Loop comme :
i=1
Do While not(isnull(TABLE1.Fields("CONTACT" &
i"))
ORTABLE1.Fields("CONTACT" & i)="")
if i>3 then Exit Do
TABLE2.AddNew
TABLE2!NCLient=TABLE1!NCLient
TABLE2!CONTACT=TABLE1.Fields("Contact" & i)
TABLE2!POlitesse=TABLE1.Fields("Politesse" & i)
....
....
TABLE2!Email=TABLE1.Fields("Email" & i)
TABLE2.UpDate
i=i+1
Loop
.
.
.
.
.
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" & NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
-----Message d'origine-----
Oops !
Remplace x par x-1Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
-----Message d'origine-----
Oops !
Remplace x par x-1
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1=Db.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1=Db.Openrecordset(Chaine)
Set TABLE2=Db.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
-----Message d'origine-----
Oops !
Remplace x par x-1Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
Bonjour Ilan,
Que veut dire 'NomduControl.Value' dans
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Pourquoi me parles-tu de la fonction? Dans
la fonction fait partie du code de ton formulaire sinon
ajouter
forms("Nomduformulaire"). devant NomduControl
Je vois un problème, c'est que les champs dans la
table1 'clients' ne se suivent pas comme ci-dessous et que
de plus,par exemple,entre 'fonction' et 'Responsable2' ou
entre 'DEPARTEMENT' et 'TELDIRECT1' il y a d'autres champs
qui n'ont rien à avoir avec les contacts, donc je ne peux
pas faire une comptage comme si tout se suivait, je peux
les faire suivre dans la requête qui est sous le
formulaire qui elle s'appelle 'Clients Vrais'
RESPONSABLE
POLITESSE
DEPARTEMENT1
TELDIRECT1
NATEL
FAX1
e-mail1]
FONCTION
Je prend un exemple concret.
FONCTION
ACTIVITE (ce champ ne fait pas partie de la selection des
contacts)
DEPARTEMENT1
OPERATIONS (ce champ ne fait pas partie de la selection
des contacts)
RESPONSABLE
Etc...
Donc là problème...
Luis-----Message d'origine-----
Oops !
Remplace x par x-1Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.Pour ce que tu veux faire il faut que la fonction
connaisse le clientselectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouterforms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant lepremier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
ThenGoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)Next Info
TABLE2.Update
Return
End Function
.
Bonjour Ilan,
Que veut dire 'NomduControl.Value' dans
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Pourquoi me parles-tu de la fonction? Dans
la fonction fait partie du code de ton formulaire sinon
ajouter
forms("Nomduformulaire"). devant NomduControl
Je vois un problème, c'est que les champs dans la
table1 'clients' ne se suivent pas comme ci-dessous et que
de plus,par exemple,entre 'fonction' et 'Responsable2' ou
entre 'DEPARTEMENT' et 'TELDIRECT1' il y a d'autres champs
qui n'ont rien à avoir avec les contacts, donc je ne peux
pas faire une comptage comme si tout se suivait, je peux
les faire suivre dans la requête qui est sous le
formulaire qui elle s'appelle 'Clients Vrais'
RESPONSABLE
POLITESSE
DEPARTEMENT1
TELDIRECT1
NATEL
FAX1
e-mail1]
FONCTION
Je prend un exemple concret.
FONCTION
ACTIVITE (ce champ ne fait pas partie de la selection des
contacts)
DEPARTEMENT1
OPERATIONS (ce champ ne fait pas partie de la selection
des contacts)
RESPONSABLE
Etc...
Donc là problème...
Luis
-----Message d'origine-----
Oops !
Remplace x par x-1
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
Bonjour Ilan,
Que veut dire 'NomduControl.Value' dans
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Pourquoi me parles-tu de la fonction? Dans
la fonction fait partie du code de ton formulaire sinon
ajouter
forms("Nomduformulaire"). devant NomduControl
Je vois un problème, c'est que les champs dans la
table1 'clients' ne se suivent pas comme ci-dessous et que
de plus,par exemple,entre 'fonction' et 'Responsable2' ou
entre 'DEPARTEMENT' et 'TELDIRECT1' il y a d'autres champs
qui n'ont rien à avoir avec les contacts, donc je ne peux
pas faire une comptage comme si tout se suivait, je peux
les faire suivre dans la requête qui est sous le
formulaire qui elle s'appelle 'Clients Vrais'
RESPONSABLE
POLITESSE
DEPARTEMENT1
TELDIRECT1
NATEL
FAX1
e-mail1]
FONCTION
Je prend un exemple concret.
FONCTION
ACTIVITE (ce champ ne fait pas partie de la selection des
contacts)
DEPARTEMENT1
OPERATIONS (ce champ ne fait pas partie de la selection
des contacts)
RESPONSABLE
Etc...
Donc là problème...
Luis-----Message d'origine-----
Oops !
Remplace x par x-1Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.Pour ce que tu veux faire il faut que la fonction
connaisse le clientselectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.Mais comme tout programme il faut tester avant de
valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouterforms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS
qui sont avant lepremier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
ThenGoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)
=TABLE1.Fields.Item (IndiceInfo)Next Info
TABLE2.Update
Return
End Function
.
-----Message d'origine-----
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui
sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item
(IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
-----Message d'origine-----
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1=Db.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui
sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1=Db.Openrecordset(Chaine)
Set TABLE2=Db.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item
(IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.
-----Message d'origine-----
Bonjour Luis,
La fonction que je t'ai donne ne sert que lorsque
CONTACTS_CLIENTS est vide.
Pour ce que tu veux faire il faut que la fonction
connaisse le client
selectionne.
J'ai reecrit la fonction pour te permettre de faire ce
que tu veux.
Mais comme tout programme il faut tester avant de valider.
Tu trouveras au debut de fonction les lignes
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Ces lignes ne sont valables que si :
1) la fonction fait partie du code de ton formulaire
sinon ajouter
forms("Nomduformulaire"). devant NomduControl
2) le control renvoie la valeur du champ NClient
Tu trouveras au bas de la fonction la ligne
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
x represente le nombre de champs de la table CLIENTS qui
sont avant le
premier
champ RESPONSABLE. Tu dois le remplacer par sa valeur
Dim Db as DataBase
Dim TABLE1, TABLE2 as recordset
Dim Contact, InfoContact, IndiceInfo as integer
Function SetContact()
Set Db=currentdb
Chaine="SELECT * FROM Clients WHERE NClient=" &
NomduControl.Value & ";"
Set TABLE1Û.Openrecordset(Chaine)
Set TABLE2Û.OpenRecordset("SELECT * FROM
CONTACTS_CLIENTS;")
If Not (TABLE1.BOF Or TABLE1.EOF) Then
TABLE2.FindFirst ("NClient=" & TABLE1!NClient)
If TABLE2.NoMatch Then
For Contact = 1 To 3
GoSub AjouterContact
GoSub EcrireInfo
Next Contact
Else
For Contact = 1 To 3
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient)
Then
GoSub AjouterContact
Else
TABLE2.Edit
End If
GoSub EcrireInfo
TABLE2.MoveNext
Next Contact
End If
End If
TABLE1.Close
TABLE2.Close
Exit Function
AjouterContact:
TABLE2.AddNew
TABLE2!NClient = TABLE1!NClient
Return
EcrireInfo:
For Info = 1 To 8
IndiceInfo = 8 * (Contact - 1) + InfoContact + x
TABLE2.Fields.Item(InfoContact+1)=TABLE1.Fields.Item
(IndiceInfo)
Next Info
TABLE2.Update
Return
End Function
.