IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec Addnew Recordset


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Par défaut Problème avec Addnew Recordset
    Bonjour,

    j'essaye de mettre à jour un Recordset avant de le copier dans une feuille Excel.
    J'ai lu les différents tutoriaux, mais j'ai un soucis.

    Si j'ajoute plusieurs lignes, il ne me garde que la dernière ligne.
    Il me remplace la première ligne du Recordset par ma ligne.

    Donc il semble faire simplement un update, et pas AddNew... ce qui n'est pas ce que je veux, je veux pouvoir ajouter quelques lignes à la fin de mon recordset, peu import la taille de celui-ci.
    Utiliser Rs.EOF ou Rs.Movelast n'a pas aidé.

    Voici mon code en partie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Cn.Open "dsn="base"
    With Rs
    .CursorLocation = adUseClient
    .ActiveConnection = Cn
    .Open strSQL, Cn, adOpenStatic, adLockOptimistic
    End With
     
    Rs.AddNew Array("Collaborateur", "Imputation", "Date_Deb", "Date_Fin", "Lieu", "Decompte"), Array("Essai", "blop", 1900 - 1 - 1, 2000 - 12 - 31, "U", "99")
    Rs.AddNew Array("Collaborateur", "Imputation", "Date_Deb", "Date_Fin", "Lieu", "Decompte"), Array("Essai", "blop", 1900 - 1 - 1, 2000 - 12 - 31, "U", "88")
    Rs.Update
    Et ensuite ma commande pour copier mon Recordset sur la feuille Excel.

    Et ma première ligne qui était

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XXX	Imput 	14/03/2009	15/03/2009	Z  1

    Devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Essai	blop	12/03/1905	10/05/1905	U	88
    Donc déjà ma première ligne ne devrait pas être mise à jour, et ensuite je devrais avoir mes 2 enregistrements à la fin.

    Je ne vois pas ce que j'ai mal fait dans le code là, et j'ai essayé différents types d'options pour ouvrir ma connexion, sans succès.
    Je me connecte à une base de données MySQL.

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Rs.AddNew Array("Collaborateur", "Imputation", "Date_Deb", "Date_Fin", "Lieu", "Decompte"), Array("Essai", "blop", 1900 - 1 - 1, 2000 - 12 - 31, "U", "99")
    Rs.Update
    Rs.AddNew Array("Collaborateur", "Imputation", "Date_Deb", "Date_Fin", "Lieu", "Decompte"), Array("Essai", "blop", 1900 - 1 - 1, 2000 - 12 - 31, "U", "88")
    Rs.Update

  3. #3
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    De memoire:
    Le fait d'ajouter un element te place automatiquement dessus donc pour
    la copie des elements tu dois te repositionner sur le 1er (MoveFirst).

    De plus, le fait d'ajouter un element en passant les parametres fait un update automatique donc ton update est inutile.

    A verifier....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Par défaut
    J'avais essayé les Update juste après le addnew, et ça me fait la même chose.
    Ainsi que le movefirst, pareil.

    Je laissais le Update sinon il ne m'autorisait pas à copier les données sur ma feuille excel (mais là j'ai resté en ayant fermé la connexion avant et c'est passé).
    Je ne comprends pas pourquoi il me met systématiquement à jour la première ligne (qu'il écrase ensuite si je saisis plusieurs lignes à insérer).

    Que je tente Movefirst, Movelast, Movenext, Move (2) etc... il se cale toujours sur la première ligne et la remplace... je suis un peu paumé là j'avoue !

Discussions similaires

  1. Problème avec un recordset
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 08/02/2008, 14h53
  2. Problème avec adodb.recordset
    Par Pierre Fauconnier dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/05/2007, 15h43
  3. Problème avec le recordset
    Par mademoizel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/03/2007, 12h28
  4. Problème avec un RecordSet
    Par Oberown dans le forum ASP
    Réponses: 4
    Dernier message: 04/01/2007, 11h59
  5. Problème avec ADODB.Recordset
    Par Edouard Kaiser dans le forum ASP
    Réponses: 13
    Dernier message: 09/08/2005, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo