Je souhaite mettre à jour tous les enregistrements d'une table à partir
d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur
monchamp.
Dim source As Recordset, destination As Recordset
Dim monchamp As Field
'Requêtes de mise à jour
Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM
W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID =
W_CONTACTS.Contact_ID;")
Do While Not source.EOF
Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM
T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "")
If Not destination.EOF Then
destination.Edit
For Each monchamp In source.Fields
destination!(monchamp.Value) = source!(monchamp.Value)
Next monchamp
destination.Update
Set destination = Nothing
destination.Close
End If
source.MoveNext
Loop
Set source = Nothing
source.Close
Z'auriez une idée ?
Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de
champs peut varier d'une semaine à l'autre...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Antoine Labusquière
Cherchez plus, j'ai trouvé...
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM T_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID WHERE T_CONTACTS.Verrouillé=True;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields If monchamp.Name <> "CONTACT_ID" Then destination.Fields(monchamp.Name).Value = source.Fields(monchamp.Name).Value Next monchamp destination.Update destination.Close Set destination = Nothing End If source.MoveNext Loop source.Close Set source = Nothing
"Antoine Labusquière" a écrit dans le message de news: 45e58891$0$6064$
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur monchamp.
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields destination!(monchamp.Value) = source!(monchamp.Value) Next monchamp destination.Update Set destination = Nothing destination.Close End If source.MoveNext Loop Set source = Nothing source.Close
Z'auriez une idée ? Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de champs peut varier d'une semaine à l'autre...
Merci d'avance
Cherchez plus, j'ai trouvé...
Dim source As Recordset, destination As Recordset
Dim monchamp As Field
'Requêtes de mise à jour
Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM
T_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID =
W_CONTACTS.Contact_ID WHERE T_CONTACTS.Verrouillé=True;")
Do While Not source.EOF
Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM
T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "")
If Not destination.EOF Then
destination.Edit
For Each monchamp In source.Fields
If monchamp.Name <> "CONTACT_ID" Then
destination.Fields(monchamp.Name).Value = source.Fields(monchamp.Name).Value
Next monchamp
destination.Update
destination.Close
Set destination = Nothing
End If
source.MoveNext
Loop
source.Close
Set source = Nothing
"Antoine Labusquière" <antoine.labusquiere@nospam.free.fr> a écrit dans le
message de news: 45e58891$0$6064$426a34cc@news.free.fr...
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir
d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration
sur monchamp.
Dim source As Recordset, destination As Recordset
Dim monchamp As Field
'Requêtes de mise à jour
Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM
W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID =
W_CONTACTS.Contact_ID;")
Do While Not source.EOF
Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM
T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "")
If Not destination.EOF Then
destination.Edit
For Each monchamp In source.Fields
destination!(monchamp.Value) = source!(monchamp.Value)
Next monchamp
destination.Update
Set destination = Nothing
destination.Close
End If
source.MoveNext
Loop
Set source = Nothing
source.Close
Z'auriez une idée ?
Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de
champs peut varier d'une semaine à l'autre...
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM T_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID WHERE T_CONTACTS.Verrouillé=True;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields If monchamp.Name <> "CONTACT_ID" Then destination.Fields(monchamp.Name).Value = source.Fields(monchamp.Name).Value Next monchamp destination.Update destination.Close Set destination = Nothing End If source.MoveNext Loop source.Close Set source = Nothing
"Antoine Labusquière" a écrit dans le message de news: 45e58891$0$6064$
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur monchamp.
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields destination!(monchamp.Value) = source!(monchamp.Value) Next monchamp destination.Update Set destination = Nothing destination.Close End If source.MoveNext Loop Set source = Nothing source.Close
Z'auriez une idée ? Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de champs peut varier d'une semaine à l'autre...
Merci d'avance
Jessy Sempere
Bonjour
Je n'ai pas tout suivi... mais déjà tu peux remplacer ta ligne : destination!(monchamp.Value) = source!(monchamp.Value) par : destination.fields(monchamp.name) = source.fields.(monchamp.name)
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur monchamp.
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields destination!(monchamp.Value) = source!(monchamp.Value) Next monchamp destination.Update Set destination = Nothing destination.Close End If source.MoveNext Loop Set source = Nothing source.Close
Z'auriez une idée ? Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de champs peut varier d'une semaine à l'autre...
Merci d'avance
Bonjour
Je n'ai pas tout suivi... mais déjà tu peux remplacer ta ligne :
destination!(monchamp.Value) = source!(monchamp.Value)
par :
destination.fields(monchamp.name) = source.fields.(monchamp.name)
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir
d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur
monchamp.
Dim source As Recordset, destination As Recordset
Dim monchamp As Field
'Requêtes de mise à jour
Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM
W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID =
W_CONTACTS.Contact_ID;")
Do While Not source.EOF
Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM
T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "")
If Not destination.EOF Then
destination.Edit
For Each monchamp In source.Fields
destination!(monchamp.Value) = source!(monchamp.Value)
Next monchamp
destination.Update
Set destination = Nothing
destination.Close
End If
source.MoveNext
Loop
Set source = Nothing
source.Close
Z'auriez une idée ?
Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de
champs peut varier d'une semaine à l'autre...
Je n'ai pas tout suivi... mais déjà tu peux remplacer ta ligne : destination!(monchamp.Value) = source!(monchamp.Value) par : destination.fields(monchamp.name) = source.fields.(monchamp.name)
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour,
Je souhaite mettre à jour tous les enregistrements d'une table à partir d'une autre table (en fait, la même mais dupliquée).
J'ai écris ça, mais ça ne marche pas: Erreur sur le type de déclaration sur monchamp.
Dim source As Recordset, destination As Recordset Dim monchamp As Field
'Requêtes de mise à jour Set source = CurrentDb.OpenRecordset("SELECT W_CONTACTS.* FROM W_CONTACTS INNER JOIN W_CONTACTS ON T_CONTACTS.Contact_ID = W_CONTACTS.Contact_ID;") Do While Not source.EOF Set destination = CurrentDb.OpenRecordset("SELECT T_CONTACTS.* FROM T_CONTACTS WHERE CONTACT_ID = " & source!Contact_ID & "") If Not destination.EOF Then destination.Edit For Each monchamp In source.Fields destination!(monchamp.Value) = source!(monchamp.Value) Next monchamp destination.Update Set destination = Nothing destination.Close End If source.MoveNext Loop Set source = Nothing source.Close
Z'auriez une idée ? Je ne peux pas passer par une requête SQL, vu que les noms et le nombre de champs peut varier d'une semaine à l'autre...