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 :

Probleme export Access > Excel


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Probleme export Access > Excel
    Bonjour,

    j'ai une fonction :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Function sCopyRSToXLS(File, Dest, source)
    
        Dim objXL As Excel.Application
        Dim objWkb As Excel.Workbook
        Dim objSht As Excel.Worksheet
        Dim db As Database
        Dim rs As Recordset
        Const conMAX_ROWS = 20000
        Dim conSHT_NAME As String
        Dim conWKB_NAME As String
        Dim conRANGE As String
        
        Dim bError As Boolean
        Dim RangeName As Name
        Dim iLines, iCols As Integer
        Dim sRange As String
        
        Set db = CurrentDb
        Set objXL = New Excel.Application
        Set rs = db.OpenRecordset(source, dbOpenSnapshot)
        With objXL
            conWKB_NAME = File
            conSHT_NAME = Dest
            .Visible = True
            bError = True
            If Dir(File) <> "" Then
                Set objWkb = .Workbooks.Open(conWKB_NAME)
                bError = False
            Else
                Set objWkb = .Workbooks.Add
            End If
            On Error Resume Next
            Set objSht = objWkb.Worksheets(conSHT_NAME)
            If Not err.Number = 0 Then
                Set objSht = objWkb.Worksheets.Add
                objSht.Name = conSHT_NAME
            End If
            err.Clear
            On Error GoTo 0
            
            If Not rs.EOF Then
                rs.MoveFirst
                rs.MoveLast
            End If
            iLines = rs.RecordCount
            
            objSht.Activate
            
            If Not rs.EOF Then
            
                For iCols = 1 To rs.Fields.count
                    
                    objSht.Cells(1, iCols).Value = rs.Fields(iCols - 1).Name
                    
                Next
            
                rs.MoveFirst
                objSht.Range(.Cells(2, 1), .Cells(iLines, rs.Fields.count)).CopyFromRecordset rs
            End If
            If bError = False Then
                .ActiveWorkbook.Save
            Else
                .ActiveWorkbook.SaveAs conWKB_NAME
            End If
            .ActiveWorkbook.Close
            .QUIT
        End With
        Set objSht = Nothingi
        Set objWkb = Nothing
        Set objXL = Nothing
        Set rs = Nothing
        Set db = Nothing
    End Function
    qui permet donc d'exporter le contenu d'une table vers un fichier excel, File = fichier de destination, Dest = Feuille de destination, Source = ma table.

    C'est le bout de code en gras qui nous interesse, dans un 1er temps je rempli la 1ere ligne avec le nom des colonnes de ma table, puis je copie l'intégralité de la table en commencant par la ligne 2 de mon fichier excel, mon souci c'est que pour une table ca marche tres bien, j'ai le nom des colonnes et les données en dessus, mais pour une autre table, il m'écrase la 1ere ligne et je ne sais absolument pas pourquoi, alors que les 2 tables n'ont pas de différence significative. J'ai essayé en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objSht.Range(.Cells(3, 1), .Cells(iLines, rs.Fields.count)).CopyFromRecordset rs
    et meme probleme, il rempli a partir de la 1ere ligne de mon fichier excel

    D'avance merci

    Aerofly

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    j'ai quelque peu modifié ma commande, en lui indiquant juste la cellule de départ et la il fait ce qu'il veut, mais je sais tjrs d'ou venait le probleme d'origine et si l'autre commande que j'ai employée est correcte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                'objSht.Range(.Cells(2, 1), .Cells(iLines, rs.Fields.count)).CopyFromRecordset rs
                objSht.Cells(2, 1).CopyFromRecordset rs

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    bon finalement j'ai trouvé par moi meme, il suffisait apparement d'ajouter +1 à iLines:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objSht.Range(.Cells(2, 1), .Cells(iLines + 1, rs.Fields.count)).CopyFromRecordset rs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/07/2007, 22h49
  2. Probleme VBA access somme Excel
    Par darkspoilt dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/05/2007, 10h35
  3. Export Access vers Excel nb de champs variable
    Par SylvainJ dans le forum Access
    Réponses: 4
    Dernier message: 05/03/2007, 13h55
  4. Réponses: 7
    Dernier message: 20/09/2006, 11h04
  5. export access vers excel en asp
    Par oniric dans le forum ASP
    Réponses: 9
    Dernier message: 24/03/2006, 14h21

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