Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Εξαγωγή σε Excel (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/378-eksagogi-se-excel.html)

amy 07-02-10 13:30

Εξαγωγή σε Excel
 
Καλή σας μέρα...
Στη φόρμα μου έχω ένα compo που επιλέγω μήνα, (Ιανουάριος, Φεβρουάριος κλπ) και ένα κουμπί που με το κλικ εκτελεί την
DoCmd.TransferSpreadsheet acExport,,"qryTblMonth","c:\temp\file.xls" ,True
και έτσι εξάγω τα δεδομένα μου σε excel, με τα εξής μειονεκτήματα
1. Αν δεν υπάρχει το c:\temp βγάζει σφάλμα
2. Αν υπάρχει το file.xls το κάνει replace με το νέο
Έχω προσαρμοστεί λοιπόν και γω και φροντίζω να υπάρχει το "temp" αλλά και να έχω κάνει copy το παλιό αρχείο σε άλλο dir...
Όμως φαντάζομαι ότι σίγουρα θα υπάρχει κάποιος τρόπος που με λίγο κώδικα θα μπορεί απ΄τη μιά να εξάγει το αρχείο στο τρέχον directory της βάσης (ή εναλλακτικά να δημιουργεί το directory που έχω ορίσει, αν δεν υπάρχει ήδη), και από την άλλη το όνομα του αρχείου εξαγωγής να είναι η τιμή του compo, πχ Ιανουάριος.xls
Τι λέτε οι ειδικοί?

Tasos 07-02-10 18:10

Καλησπέρα φίλε Άμι (ελπίζω να γράφω σωστά το όνομα σου)!

Μπορείς να χρησιμοποιήσεις ή να προσαρμόσεις τον παρακάτω κώδικα για να μην συναντήσεις ποτέ πια τέτοιου είδους προβλήματα:
Κώδικας:

Option Compare Database
Option Explicit
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub ExportSpreadSheet()
    Dim xlFileName$, xlFolder$
    xlFolder = "C:\Temp\"    ' xlFolder = Environ("TEMP") & "\" 'xlFolder = CurrentProject.Path & "\"
    MakeSureDirectoryPathExists xlFolder
    xlFileName = xlFolder & "(" & combo & Replace(Format(Now, "-dd_hh:mm:ss"), ":", "_") & ".xls"
    DoCmd.TransferSpreadsheet acExport, , "qryTblMonth", xlFileName, True
End Sub

Ελπίζω να σε βοηθήσει.

Φιλικά

Τάσος

Meteora 07-02-10 18:15

Καλησπέρα
Μπορείς να έχεις διαφορετικό όνομα αρχείου για κάθε μήνα, αν γράψεις επι παραδείγματι : "C:\temp\book" & month(Date) & ".xls" (book1, book2,.....book12, book1,...! )
Περί δημιουργίας directory & περί μεταφοράς αρχείου ρίξε μια ματιά στη βοήθεια της Access, πληκτρολογώντας mkdir...
Φιλικά / Νίκος

amy 08-02-10 08:27

Καλά, μιλάμε έχω πάθει πλάκα που ήταν τόοοοσο απλό...
Τι να πω ο άσχετος...
Χίλια ευχαριστώ Τάσο....
(Παρεπιπτόντως, υπάρχει κάτι αντίστοιχο με το CurrentProject.Path που να προσδιορίζει το path των συνδεδεμένων πινάκων?)

Tasos 08-02-10 10:50

Καλημέρα φίλε μου!

Για να βρεις τη διαδρομή ενός από τους συνδεδεμένους πίνακες της βάσης σου που έχει το όνομα "tblCustomers" χρησιμοποίησε το παρακάτω:

Κώδικας:

xlFolder = DLookup("Database", "MSysObjects", "Name='tblCustomers'")
 xlFolder = Left(xlFolder, Len(xlFolder) - InStr(1, StrReverse(xlFolder), "\") + 1)

Φιλικά

Τάσος

amy 08-02-10 10:57

Thanks....
:thumbup:


Η ώρα είναι 10:42.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2