cs_goku95
Messages postés12Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention15 septembre 2006
-
14 sept. 2006 à 21:08
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
15 sept. 2006 à 19:12
bonjour,
oila j'ai un petit probleme (gros en fait)
j'essaye depuis un jour a copier le contenu d'une table vers une autre
en mode deconnecte.
j'ai deux tables:
"SupportsTemp" et "Supports" c'est deux tables ont une structure identique
la table "Supports" a cle primaire et est relier avec une autre table "clientsInformations" avec integrite referentielle
je veux me servir de la table "SupportsTemp""SupportsTemp" comme tampon pour se proteger contre
toutes manip accidentelles
cs_goku95
Messages postés12Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention15 septembre 2006 14 sept. 2006 à 23:14
merci pour ta reponse
je comprend pas trop ton truc, pour l'instant j'ai fait ca, mais ca marche pas lol normal
Dim recordset1 As ADODB.Recordset
Dim recordset2 As ADODB.Recordset
Dim oField As ADODB.Fields
Set recordset1 = CurrentProject.Connection.Execute("select* from SupportsTemp")
Set recordset2 = CurrentProject.Connection.Execute("select* from Supports")
While Not recordset1.EOF
recordset2.AddNew
For Each oField In recordset1.Fields
recordset2.Fields(oField.Name).Value = oField.Value
ca me jete a cet endroit ca me dit "membre de donne introuvable"
je me doute bien quil faut quelque part que jintroduis mes nom de champs mais ou ??
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 15 sept. 2006 à 07:10
Bah non justement, c'est l'intérêt du oField.Name : il contient le nom d'un champs, et le For Each parcourt ta table champs par champs.
Là je vois pas trop pourquoi ca ne marche pas : j'utilise ce code depuis plus de 2 ans chez moi sans problème ! Es-tu sûr que tes deux tables ont EXACTEMENT le même nombre de champs et qu'ils sont nommés de la même façon ?
Si oui, il faut aussi faire attention avec les champs avec des espaces ! Si un champ possède des espaces, essaye alors ceci :
recordset2.Fields("[" & oField.Name & "]").Value = oField.Value
cs_goku95
Messages postés12Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention15 septembre 2006 15 sept. 2006 à 18:45
Private Sub CopyButton_Click()
Dim recordset2 As ADODB.Recordset
Dim recordset1 As ADODB.Recordset
Set recordset1 = CurrentProject.Connection.Execute("select* from SupportsTemp")
Set recordset2 = CurrentProject.Connection.Execute("select* from SupportsTemp2")
Dim oField As ADODB.Fields
While Not recordset1.EOF
recordset2.AddNew
For Each oField In recordset1.Fields
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 15 sept. 2006 à 19:12
Arf, petite erreur de saisie : ce n'est pas
Dim oField As ADODB.Fields Ce qui fait référence à la collection Fields de ADODB, mais :
Dim oField As ADODB.Field