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

Access Discussion :

[VBA] Ajout colonne dans recordset


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut [VBA] Ajout colonne dans recordset
    Bonjour,

    Je suis sous access97, et je code en VBA


    Je voudrais savoir comment rajouter une colonne dans un recordset.
    Sachant que les résultats sont calculés à partir des autres colonnes du recordset.


    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Tu veux ajouter un champ à un recordset, mais ce recordset est-il basé sur une table ou une requete ?

    Donnes nous plus de détail SPT (ton code actuel par exemple).

    A+

  3. #3
    Débutant Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Points : 121
    Points
    121
    Par défaut
    a mon avis tu peux utilliser alter table

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Voici mon code,
    le recordset provient d'une requete dont voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     Private Sub Commande3_Click()
    On Error GoTo Err_Commande3_Click
     
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
     
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = True
    Set wbexcel = appexcel.Workbooks.Open("H:\temp2.xls")
     appexcel.Sheets("Feuil1").Select
     
    Dim boucle1 As Integer
    Dim Rs As DAO.Recordset
    Dim DatelockUp As Date
    Set Rs = CurrentDb.OpenRecordset("Composition")
    boucle1 = 0
    While Not Rs.EOF
        appexcel.cells(2, 1) = Rs(10)
        appexcel.cells(6 + boucle1, 1) = Rs(9)
        appexcel.cells(6 + boucle1, 2) = Rs(2)
        appexcel.cells(6 + boucle1, 3) = Rs(3)
        appexcel.cells(6 + boucle1, 4) = Rs(4)
        appexcel.cells(6 + boucle1, 5) = Rs(5)
        appexcel.cells(6 + boucle1, 6) = Rs(6)
        appexcel.cells(6 + boucle1, 7) = Rs(7)
        appexcel.cells(6 + boucle1, 8) = Rs(8)
        boucle1 = boucle1 + 1
     
        Rs.MoveNext
        Wend
        Set Rs = Nothing
     
     
    Exit_Commande3_Click:
        Exit Sub
     
    Err_Commande3_Click:
        MsgBox Err.Description
        Resume Exit_Commande3_Click
     
    End Sub

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Re,

    Je vois pas où est le besoin de créer un champ ...

    A+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    je dois créer une colonne dont les résulats dépendent des autres colonnes
    par exemple colonnecréee=rs(0)+rs(1)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    ouais et ben, il est où le problème ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    je sais pas comment créer une nouvelle colonne et la remplir
    j'ai essayé avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     With Rs
    .Edit
    !DatelockUp = Rs(3) + Rs(6)
    .Update
    End With
    mais j'ai l'erreur suivante :
    impossible de mettre à jour. La base de données est en lecture seule ou l'object est en lecture seule.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    créer une colonne dans quoi ?*

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    dans le recordset si c'est possible

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    tu mélanges tout

    tu ne peux pas créer une colonne supplémentaire dans ton recordset

    ton recordset se base (apparemment) sur une table.
    Dans ce cas, ajoute une colonne à ta table, et ensuite dans l'usage du recordsettu auras cette colonne.

    mais bon, je comprends toujours pas ce que tu cherches

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Je vais essayer d'etre clair mais c'est pas facile d'expliquer.

    Je dois a partir d'une requete contenant plusieurs champs je dois créer une colonne dont le résultat dépend des autres colonnes.


    Par exemple : requete composition

    Name date redemption notice frequency
    aig 12/12/03 60 30 d
    ing 01/12/03 30 60 w
    aig 01/01/04 60 30 d


    donc en sql ca pourrait donner :

    select date+redemption+ notice as datefinale
    from composition


    le soucis c'est que normalement les résultats dépendent de plusieurs conditions :
    et donc je voudrais créer une nouvelle colonne au recordset dont les résulats peuvent dependrent de conditions

    if(frequency=d)
    rs(datefinale)=....

    et ainsi de suite

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Re,

    Et pourquoi ne pas juste ajouter une formule dans une colonne d'excel ?

    A+

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Merci mais malheuresement
    Je dois tout coder sous access
    sinon je vais essayer sans passer par un recordset mais en créant une requete en VBA et rajouter une colonne contenant les résultats des calculs

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Mais tu peux bien, depuis Access, entrer une formule (avec tes test et ton calcul) dans la première cellule et , toujours depuis Access, faire un "copier vers le bas" ?

    A+

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    oui mais pas avec des if, des modulos et des lastmonth (formules venant d'excel)

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salutations,

    Ben si tu peux depuis Access donner des formules qui conteinnent des fonction d'Excel à tes cellules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    Sub DvpPtCom()
    On Error GoTo Err_Commande3_Click
    
    Dim Appexcel As Object
    Dim Wbexcel As Object
    
    Set Appexcel = CreateObject("Excel.Application")
    Appexcel.Visible = True
    Set Wbexcel = Appexcel.Workbooks.Open("c:\test.xls")
     Appexcel.Sheets("Feuil1").Select
    
    Dim boucle1 As Integer
    Dim Rs As DAO.Recordset
    Dim DatelockUp As Date
    Set Rs = CurrentDb.OpenRecordset("Composition")
    boucle1 = 0
    While Not Rs.EOF
        Appexcel.cells(6 + boucle1, 1) = Rs(0)
        Appexcel.cells(6 + boucle1, 2) = Rs(1)
        Appexcel.cells(6 + boucle1, 3) = Rs(2)
        Appexcel.cells(6 + boucle1, 4) = Rs(3)
        Appexcel.cells(6 + boucle1, 5) = Rs(4)
        boucle1 = boucle1 + 1
        
        Rs.MoveNext
    Wend
    Appexcel.Columns("B:B").NumberFormat = "dd/mm/yy;@"
    
    Appexcel.Range("F6").FormulaR1C1 = "=IF(RC[-1]=""D"",RC[-4],NOW())"
    Appexcel.Range("G6").FormulaR1C1 = "=MOD(RC[-4],20)"
    
    Appexcel.Columns("F:F").NumberFormat = "dd/mm/yy;@"
    Appexcel.Range("F6:G8").FillDown
    
    Exit_Commande3_Click:
        Set Appexcel = Nothing
        Set Wbexcel = Nothing
        Set Rs = Nothing
        Exit Sub
    
    Err_Commande3_Click:
        MsgBox Err.Description
        Resume Exit_Commande3_Click
        
    End Sub
    Avec une table composition qui conteint :
    Name date redemption notice frequency
    aig 12/12/03 60 30 d
    ing 01/12/03 30 60 w
    aig 01/01/04 60 30 d


    A+

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Vais essayer ton code

    merci, je vous tiens au courant

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Ton code fonctionne, encore merci.

    Le hic c'est que je dois aussi utiliser une fonction qui s'appelle fin.mois et vba ne comprend pas cette fonction.

    Il faut activer l'utilitaire d'analyse dans macros complémentaires pour avoir accès à cette focntion.


    Merci

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    mais que VBA connaisse ou pas la fonction n'est pas un problème puisse que c'est une chaine que tu affecte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Appexcel.Range("G6").FormulaR1C1 = "=FIN.MOIS(RC[-3])"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Ajout colonne dans mon panier
    Par mikael2235 dans le forum Langage
    Réponses: 14
    Dernier message: 04/08/2009, 16h38
  2. [WD 14] Ajout Colonne dans un tableau !
    Par Grammaton54 dans le forum WinDev
    Réponses: 2
    Dernier message: 12/05/2009, 15h56
  3. ajout colonne dans fichier directement
    Par Strami dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/02/2009, 10h09
  4. [VBA] Extraire colonne dans presse papier
    Par Léponge85 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 11h55
  5. Ajout colonnes Dans Table
    Par cjacquel dans le forum Access
    Réponses: 3
    Dernier message: 11/12/2006, 21h29

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