2008-11-11 13 views
1

Je suis en train d'utiliser le code suivant pour écrire des données dans un fichier excelComment écrire des données d'accès au fichier excel

 Dim objexcel As Excel.Application 
        Dim wbexcel As Excel.Workbook 
        Dim wbExists As Boolean 
        Set objexcel = CreateObject("excel.Application") 
        objexcel.Visible = True 
        On Error GoTo Openwb 
        wbExists = False 
        Set wbexcel = objexcel.Documents.Open("C:\Documents and Settings\TAYYAPP\Desktop\test folder\ERROR REPORT2.xls") 
        wbExists = True 
Openwb: 

        On Error GoTo 0 
        If Not wbExists Then 
        Set wbexcel = objexcel.Workbook.Add 
        End If 

mais je reçois un objet d'erreur d'exécution ne supporte pas la propriété ou la méthode dans la ligne

Set wbexcel = objexcel.Workbook.Add 

J'ai référencé la bibliothèque d'objets Excel.

Répondre

6

Vous devez modifier cette ligne:

Set wbexcel = objexcel.WorkBooks.Open(_ 
    "C:\Documents and Settings\TAYYAPP\Desktop\test folder\ERROR REPORT2.xls")  

Remarque WorkBooks, pas de documents

Pour ce qui est de cette ligne Set wbexcel = objexcel.Workbook.Add, wbexcel est défini comme un classeur, mais le ligne est une action, de sorte que:

objexcel.Workbooks.Add 
Set wbexcel = objexcel.ActiveWorkbook 

EDIT: en aparté, DoCmd.TransferSpreadsheet est probablement la façon la plus simple de transférer un ensemble de données (requête, table) depuis Access to Excel.

+0

grâce qui fait le travail aussi pour l'écriture de données puis wbexcel.insert « données » est cette syntaxe ok – tksy

+0

Voici la référence de la langue http://msdn.microsoft .com/fr-fr/library/aa220733 (office.11) .aspx. N'oubliez pas que vous pouvez enregistrer des macros et être guidé par le code généré. – Fionnuala

+1

@tksy - alors pourquoi ne pas voter sa réponse?!? –

0

J'ai ce code qui fonctionne très bien

Dim objexcel As Excel.Application 
        Dim wbexcel As Excel.Workbook 
        Dim wbExists As Boolean 
        Dim objSht As Excel.Worksheet 
        Dim objRange As Excel.Range 


        Set objexcel = CreateObject("excel.Application") 
        objexcel.Visible = True 
        On Error GoTo Openwb 
        wbExists = False 
        Set wbexcel = objexcel.Workbooks.Open("C:\Documents and Settings\TAYYAPP\Desktop\test folder\reports\ERROR REPORT2.xls") 
        Set objSht = wbexcel.Worksheets("Sheet1") 
        objSht.Activate 
        wbExists = True 
Openwb: 

        On Error GoTo 0 
        If Not wbExists Then 
        objexcel.Workbooks.Add 
        Set wbexcel = objexcel.ActiveWorkbook 
        Set objSht = wbexcel.Worksheets("Sheet1") 

        End If 

mais je veux ajouter un contrôle que si le fichier existe alors je veux voir si son est avec les valeurs et si oui je veux la prochain ensemble de valeurs à remplir à partir de la fin. A partir de maintenant, il est en écrasant les valeurs existantes