Bonjour,
Je reviens sur un problème que Ilan m'a très gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24 champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1, TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2, DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
Bonjour,
Je reviens sur un problème que Ilan m'a très gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24 champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1, TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2, DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
Bonjour,
Je reviens sur un problème que Ilan m'a très gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24 champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1, TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2, DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) >> TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) >> TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) >> TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
Re-bonjour,
Pour les 4 champs manquants, il s'agissait effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là:
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillementaidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'd'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
Re-bonjour,
Pour les 4 champs manquants, il s'agissait effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là:
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillement
aidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'
d'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
Re-bonjour,
Pour les 4 champs manquants, il s'agissait effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là:
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problème que Ilan m'a très
gentillementaidé à résoudre.
Mais j'ai toujours un problème.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe très bien.
Je veux selon le cas copier toutes ces
données 'Contacts'd'un client dans une autre table
appelée 'Contacts_Clients' en utilisant la fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE, POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2, NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exécution '3061'
Trop peu de paramètres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en surbrillance.
Si vous pouvez continuer à m'aider.
Luis
.
-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2Û.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")
a pu se transformer en
set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,
Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,
Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,
Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillementaidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'd'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2=Db.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")
a pu se transformer en
set TABLE2=Db.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,
Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,
Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,
Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillement
aidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'
d'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2Û.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")
a pu se transformer en
set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,
Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,
Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,
Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillementaidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'd'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
Bonjour Ilan,
J'ai changé Set TABLE2 = Db.OpenRecordset("SELECT NClient
FROM CONTACTS_CLIENTS ORDER BY NClient")
par set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
Par ce que ça bogueait
Bon maintenant j'ai mis set TABLE2Û.OpenRecordset
("SELECT Nclient FROM Contacts_Clients;")
J'ai mis les champs regroupés.
Mais j'ai toujours un message d'erreur:
'Aucun enregistrement en cours.'
avec
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
en surbrillance
Bien sur qu'il n'y a pas d'enregistrement dans la table2
puisque je viens de le saisir dans la table1
Donc la fonction:
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
ne se fait pas
Voilà pourquoi je tourne en rond et que j'ai modifié le
début du code car je pensais que les erreurs venaient de
là.
Luis-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2Û.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")a pu se transformer en
set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivementd'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillementaidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'd'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonctionsuivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
Bonjour Ilan,
J'ai changé Set TABLE2 = Db.OpenRecordset("SELECT NClient
FROM CONTACTS_CLIENTS ORDER BY NClient")
par set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
Par ce que ça bogueait
Bon maintenant j'ai mis set TABLE2Û.OpenRecordset
("SELECT Nclient FROM Contacts_Clients;")
J'ai mis les champs regroupés.
Mais j'ai toujours un message d'erreur:
'Aucun enregistrement en cours.'
avec
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
en surbrillance
Bien sur qu'il n'y a pas d'enregistrement dans la table2
puisque je viens de le saisir dans la table1
Donc la fonction:
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
ne se fait pas
Voilà pourquoi je tourne en rond et que j'ai modifié le
début du code car je pensais que les erreurs venaient de
là.
Luis
-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2Û.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")
a pu se transformer en
set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,
Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,
Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,
Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivement
d'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis
-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.
Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillement
aidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champs
pour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'
d'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonction
suivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,
POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,
TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,
FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3
FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
Bonjour Ilan,
J'ai changé Set TABLE2 = Db.OpenRecordset("SELECT NClient
FROM CONTACTS_CLIENTS ORDER BY NClient")
par set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
Par ce que ça bogueait
Bon maintenant j'ai mis set TABLE2Û.OpenRecordset
("SELECT Nclient FROM Contacts_Clients;")
J'ai mis les champs regroupés.
Mais j'ai toujours un message d'erreur:
'Aucun enregistrement en cours.'
avec
If (TABLE2.EOF Or TABLE2!NClient <> TABLE1!NClient) Then
en surbrillance
Bien sur qu'il n'y a pas d'enregistrement dans la table2
puisque je viens de le saisir dans la table1
Donc la fonction:
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
ne se fait pas
Voilà pourquoi je tourne en rond et que j'ai modifié le
début du code car je pensais que les erreurs venaient de
là.
Luis-----Message d'origine-----
Bonjour Luis,
Juste pour info j'aimerai comprendre
1)comment l'instruction
set TABLE2Û.OpenRecordset("SELECT Nclient
FROM Contacts_Clients;")a pu se transformer en
set TABLE2Û.OpenRecordset("SELECT Nclient FROM
Contacts_Clients;")
2) Pourquoi les 8 champs des 3 contacts ne sont pas
regroupes.
Exemple :
Responsable,departement,politesse,teldirect,nateldirect,fa
x,email,fonction,Responsable2,departement2,politesse2,teldirect2,nateldirec
t2,fax2,email2,fonction2,Responsable3,departement3,politesse3,teldirect3,nateldirec
t3,fax3,email3,fonction3,Re-bonjour,
Pour les 4 champs manquants, il s'agissait
effectivementd'une erreur d'écriture de ma part dans
Chaine = "SELECT NClient, ..... FROM Clients ORDER BY
NClient"
J'ai écrit: [e-mail1],[e-mail2],[e-mail3] au lieu de e-
mail1, e-mail2, e-mail3
J'ai modifié les Db.OpenRecordset comme ça
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT NClient FROM
CONTACTS_CLIENTS ORDER BY NClient")
Mais ça coince là :
Erreur d'exécution '3265'
Elément non trouvé dans cette collection
Et en surbrillance il y a
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
J'espère que les modifs que j'ai apporté sont bonnes.
Luis-----Message d'origine-----
Bonjour Luis,
ca veut dire que 4 des champs indiques n'existent pas
dans ta table.
De toute maniere ca ne marchera pas comme ca.Bonjour,
Je reviens sur un problÃf¨me que Ilan m'a trÃf¨s
gentillementaidÃf© Ãf rÃf©soudre.
Mais j'ai toujours un problÃf¨me.
J'ai un formulaire 'Clients' dans lequel il y a 24
champspour noter les contacts qui sont [RESPONSABLE];
[RESPONSABLE1]; [RESPONSABLE2]; [POLITESSE];
[POLITESSE1];...etc
La saisi dans ces champs se passe trÃf¨s bien.
Je veux selon le cas copier toutes ces
donnÃf©es 'Contacts'd'un client dans une autre table
appelÃf©e 'Contacts_Clients' en utilisant la
fonctionsuivante:
Dim Db As Database
Dim TABLE1, TABLE2 As Recordset
Dim CONTACT, INFOCONTACT, INDICEINFO As Integer
Function SetContact()
Set Db = CurrentDb
Chaine = "SELECT NClient, RESPONSABLE, RESPONSABLE2,
RESPONSABLE3, NATEL, fonction, POLITESSE,
POLITESSE2,POLITESSE3, FONCTION2, FONCTION3, TELDIRECT1,
TELDIRECT2,TELEDIRECT3, e-mail1, e-mail2, e-mail3, NATEL2,
NATEL3,FAX1, FAX2, FAX3, DEPARTEMENT1, DEPARTEMENT2,
DEPARTEMENT3FROM Clients ORDER BY NClient"
Set TABLE1 = Db.OpenRecordset(Chaine)
Set TABLE2 = Db.OpenRecordset("SELECT * FROM
Contacts_Clients ORDER BY NClient,")
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
Contact,Politesse,....,Email
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 INFOCONTACT = 1 To 8
INDICEINFO = 8 * (CONTACT - 1) + INFOCONTACT
TABLE2.Fields.Item(INFOCONTACT + 1) =
TABLE1.Fields.Item(INDICEINFO)
Next INFOCONTACT
TABLE2.Update
Return
End Function
Malheuresement j'ai: Erreur d'exÃf©cution '3061'
Trop peu de paramÃf¨tres. 4 attendu
Et dans le code:
Set TABLE1 = Db.OpenRecordset(Chaine) en
surbrillance.
Si vous pouvez continuer Ãf m'aider.
Luis
.
.
-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.
-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.
-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.
Re-bonjour,
J'ai remplacé les 5 lignes par les 9 nouvelles et j'ai
encore une erreur:
Elément non trouvé dans la collection.
et en surbrillance:
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
Désolé en général je fais du copier/coller, je ne sais pas
comment j'ai fais cette erreur.
Luis-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.
Re-bonjour,
J'ai remplacé les 5 lignes par les 9 nouvelles et j'ai
encore une erreur:
Elément non trouvé dans la collection.
et en surbrillance:
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
Désolé en général je fais du copier/coller, je ne sais pas
comment j'ai fais cette erreur.
Luis
-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.
Re-bonjour,
J'ai remplacé les 5 lignes par les 9 nouvelles et j'ai
encore une erreur:
Elément non trouvé dans la collection.
et en surbrillance:
TABLE2.Fields.Item(INFOCONTACT + 1) = TABLE1.Fields.Item
(INDICEINFO)
Désolé en général je fais du copier/coller, je ne sais pas
comment j'ai fais cette erreur.
Luis-----Message d'origine-----
si ca ne marchera pas chez toi Remplace les 5 lignes
suivantes
If (TABLE2.EOF or TABLE2!NClient<>TABLE1!NClient) then
gosub AjouterContact
else
TABLE2.Edit
endif
par ces 9 lignes
If TABLE2.EOF Then
Gosub AjouterContact
else
If TABLE2!NClient<>TABLE1!NClient then
Gosub AjouterContact
else
TABLE2.Edit
endif
endif
.