Copier un recordset [Résolu]

CharlEm80
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
1 août 2012
- 3 avril 2007 à 16:18 - Dernière réponse : CharlEm80
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
1 août 2012
- 4 avril 2007 à 13:43
Hello,

Quand je suis entrain de parcourir un recordset, est-il possible de copier ou dupliquer la ligne courante dans mon recordset.

Merci

Exemple :

1-Voiture-Audi-A4
2-Voiture-Audi-TT
3-Voiture-Dacia-Logane

quand je passe sur le 3ième record j'aimerais faire une commande vb qui me donnerai ceci

1-Voiture-Audi-A4

2-Voiture-Audi-TT

3-Voiture-Dacia-Logane
3-Voiture-Dacia-Logane

Mon code c'est du genre :
Sql = "select * from ..."
Set rs = Oracle_dbc.dbcreatedynaset(sql, 0&)
Oracle_dbc.ExecuteSQL (sql)
Do While not rs.eof
    if ...
       rs.??? <-- que mettre ici ?
    end if
    rs.movenext
Loop
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 3 avril 2007 à 16:53
3
Merci
Alors y'en a plein qui se battent pour ne pas avoir de doublons dans leur table, et dois tu veux en créer ?


C'est pour quoi faire au juste : c'est uniquement local à ta boucle, ou vraiment rajouter un doublon dans ta table ?

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 3 avril 2007 à 17:01
3
Merci
Salut
Ajouter une ligne de données à ton RecordSet ?

rs.AddNew
rs.Fields(0).Value = "Voiture"   ' \  Remplir tous champs avec données
rs.Fields(1).Value = "Renault"   ' |  On peut ommettre les champs pour
rs.Fields(2).Value = "Juva 4"    ' /  lesquels la valeur Null est acceptée
rs.Update

S'il s'agit de recopier une ligne, il faudra d'abord mémoriser les valeurs de chaque champ du record en cours avant d'appeler la méthode AddNew car l'index de la ligne en cours sera perdue. Pour la mémoriser, il suffit d'utiliser la méthode BookMark avant de faire le AddNew.
+ regarder dans l'aide

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 4 avril 2007 à 09:42
3
Merci
Tu as toujours la possibilité de faire une boucle pour parcourir tout tes champs et les copiers :


tonRecordset.addNew

For each field in tonRecordset2.fields


    tonRecordset.field(field.name).value = field.value

next field

tonRecordset.update

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
CharlEm80
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
1 août 2012
- 4 avril 2007 à 13:43
3
Merci
Merci à tous, je me suis inspiré de vos commentaires et idée pour pondre ceci :

                    ' Sélection de la dernière ligne courante
                    sql2 = "select * from ..."
                    Set rs2 = Oracle_dbc.dbcreatedynaset(sql2, 0&)
                    Oracle_dbc.ExecuteSQL (sql2)
                    ' Sauvegarde du record actuel en vue d'en faire une nouveau record
                    ReDim tabFields(rs2.Fields.Count)
                    j = 0
                    Do While j < rs2.Fields.Count
                        tabFields(j) = rs2(j).Value
                        j = j + 1
                    Loop
                    ' Modification de l'ancien record
                    rs2.Edit
                    rs2!DATE_SORTIE_US = Date
                    rs2!HEURE_SORTIE_US = Val(Mid(Time, 1, 2) & Mid(Time, 4, 2))
                    rs2!raison_sortie = "T"
                    rs2.update
                    ' Modification du future nouveau record
                    tabFields(2) = tabFields(2) + 1                        ' numero_sequence
                    tabFields(9) = 3                                       ' categorie_chambre
                    tabFields(11) = Date                                   ' date_entree_us
                    tabFields(12) = Val(Mid(Time, 1, 2) & Mid(Time, 4, 2)) ' heure_entree_us
                    tabFields(13) = "01/01/1900"                           ' date_sortie_us
                    tabFields(14) = "0"                                    ' heure_sortie_us
                    tabFields(15) = "-"                                    ' raison_sortie
                    ' Ajout du nouveau record
                    rs2.AddNew
                    j = 0
                    Do While j < rs2.Fields.Count
                        rs2(j).Value = tabFields(j)
                        j = j + 1
                    Loop
                    rs2.update
                    Oracle_dbc.CommitTrans

Merci CharlEm80 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de CharlEm80
cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 3 avril 2007 à 18:09
0
Merci
Que vois-je ??? Renault Juva 4

Que t'arrive-tu Jack, tu voyage dans le temps, tu nous arrive du passé ?????

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
CharlEm80
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
1 août 2012
- 4 avril 2007 à 09:09
0
Merci
Loooooooooooool c'est vrais que tant qu'à faire autant faire un doublon d'Audi TT

Le but c'est d'ajouter une ligne dans ma table qui est exactement la même que la précédente sauf deux champ qui changent et ça me gonfle de créer une vingtaine de variable (ou un tableau), de stocker tout, ... je me dit si il existe un truc du genre rs.copyrecord ou un truc comme ça, ça serait plus simple.

Je vais regarder ce livre de marc (BookMark bon je sais c'est lourd ... c'était la blague du matin)
Commenter la réponse de CharlEm80
CharlEm80
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
1 août 2012
- 4 avril 2007 à 09:45
0
Merci
Pas mal aussi ça le coup de la collection des recordset je ne savais pas que ça existait.

Merci
Commenter la réponse de CharlEm80

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.