Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Μεταφορά δεδομένων (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1040-metafora-dedomenon.html)

jimrenoir 27-03-11 13:51

Μεταφορά δεδομένων
 
Γεια σας.Αντιμετωπίζω το εξής πρόβλημα.
Από ένα ερώτημα της ACCES στέλνω τα δεδομένα σε ένα αρχείο EXCEl.(με κώδικα)
Το πρόβλημα μου είναι ότι όταν με άλλη εντολή του ζητάω να μου φέρει στην ACCES τα δεδομένα απο ένα άλλο φύλλο του excel (είναι το ίδιο με αυτο που στέλνω δεδομένα απο acces)απλά κάνει κάποιους υπολογισμούς δεν μου φέρνει τα νέα δεδομένα αλλά αυτά που έχει κρατήσει από την προηγούμενη έξοδο.Για να μου φέρει τα καινούργια πρέπει να ανοίξω και να κλείσω το βιβλίο του excel.Υπάρχει τρόπος να μου φέρνει τα νέα δεδομένα χωρίς να ανοίγω-κλείνω το βιβλίο.

Dimitris Ch 27-03-11 16:32

Καλησπέρα Δημητρη

Νομιζω πρεπει να κανεις αποθηκευση το Excel για να μπορει η access να τραβηξει τα νεα δεδομενα

Φιλικα Δημητρης

jimrenoir 27-03-11 20:16

help
 
Δεν είναι αυτό γιατί το excel αρχείο δεν το ανοίγω καθόλου.Απλά μέσο της εντολης στελνω τα δεδομενα στο αρχείο (απο ACCES) και με δεύτερη εντολή μου τα επιστρέφει.

Dimitris Ch 27-03-11 20:23

Παράθεση:

Αρχική Δημοσίευση από jimrenoir (Μήνυμα 5774)
Δεν είναι αυτό γιατί το excel αρχείο δεν το ανοίγω καθόλου.Απλά μέσο της εντολης στελνω τα δεδομενα στο αρχείο (απο ACCES) και με δεύτερη εντολή μου τα επιστρέφει.

Τοτε πιθανως επειδη ειναι κλειστο δεν κανει υπολογισμους...
Δεν ξερω ομως να σε βοηθησω.....Sorry

Φιλικα Δημητρης

Tasos 27-03-11 21:22

Καλησπέρα σε όλους!
Δημήτρη (jimrenoir), απ ότι καταλαβαίνω, το ζητούμενο είναι να υπολογιστούν κάποια δεδομένα στην Access.

Αν η Access δεν υποστηρίζει τους επιθυμητούς τύπους υπολογισμών μέσα από τις ενσωματωμένες συναρτήσεις της, τότε πολύ σωστά εξάγεις τα δεδομένα σου σε ήδη υπάρχον βιβλίο εργασίας της Excel προκειμένου να υπολογιστούν και να επιστραφούν στην Access χρησιμοποιώντας VBA.

Ανάμεσα όμως στην πρώτη και στη δεύτερη διαδικασία πρέπει να μεσολαβήσει επιπλέον κώδικας VBA ο οποίος θα πρέπει να ανοίγει το συγκεκριμένο βιβλίο εργασίας, ενδεχομένως να προκαλεί υπολογισμό του βιβλίου, να το αποθηκεύει και να το κλείνει.Έτσι μόνο μπορείς να πάρεις υπολογισμένα δεδομένα.

Το πως ακριβώς μπορεί να γίνει, δεν μπορούμε να το περιγράψουμε με ακρίβεια αν δεν δούμε τον κώδικα που ήδη χρησιμοποιείς και ίσως το αρχείο Excel που περιέχει τις συναρτήσεις υπολογισμού.

Περιμένουμε νέα σου

Φιλικά

Τάσος

jimrenoir 27-03-11 22:39

Βοήθεια
 
2 Συνημμένο(α)
Σας ανεβάζω ένα μικρό τμήμα του προγράμματος για να το δοκιμάσετε και να καταλαβετε τι εννοώ.Απλά πρέπει να μπούν σε ένα φάκελο με όνομα aaa στο C:/aaa.
Μέσα στην Acces (strumf) Υπάρχουν 2 λειτουργικές μονάδες που κάνουν αυτή την δουλειά.Η μια στέλνει τα δεδομένα στο excel για επεξεργασία και η άλλη επιστρέφει ένα άλλο φύλλο με τους υπολογισμούς(poi).Στο excel γίνονται και άλλη υπολογισμοί η οποίοι πηγαίνουν στο φύλλο poi.Απλά τους έσβησα γιατι ήταν αρκετα μεγάλο το αρχείο.

Tasos 28-03-11 07:37

Καλημέρα σε όλους!

Αγαπητέ Δημήτρη, δοκίμασε το παρακάτω:

Καλή συνέχεια!

Option Compare Database
Option Explicit

Function CalculateInXL()
Dim XLFileName As String, xl As Object, wb As Object
On Error GoTo ExportErr
XLFileName = "C:\POI.xlsb"
DoCmd.TransferSpreadsheet _
TransferType:=acExport, _
SpreadSheetType:=acSpreadsheetTypeExcel8, _
TableName:="NEXT", _
FileName:=XLFileName, _
HasFieldNames:=True
ExportErr:
If Err Then
MsgBox Err.Description
Exit Function
End If
On Error GoTo XLErr
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open(XLFileName)
If xl.Calculation <> -4105 Then xl.Calculatefull
wb.Save
wb.Close False
xl.Quit
Set xl = Nothing
XLErr:
If Err Then
On Error Resume Next
If Not xl Is Nothing Then xl.Visible = True
If Not wb Is Nothing Then Set wb = Nothing
If Not xl Is Nothing Then Set xl = Nothing
MsgBox Err.Description
Exit Function
End If
On Error GoTo ImportErr
DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel8, _
TableName:="poi", _
FileName:=XLFileName, _
HasFieldNames:=True, _
Range:="poi!A1:CS3"
MsgBox "Finished!!", vbInformation, "Transfer to EXCEL"
ImportErr:
If Err Then MsgBox Err.Description
End Function

jimrenoir 28-03-11 12:44

Ευχαριστίες
 
Τάσο σ΄ευχαριστώ πολύ είναι αυτο που ήθελα.
Μπορώ να το χρησιμοποίησω και σε άλλες εξόδους απο Acces σε excel kai εισόδους αλλάζοντας τα ονόματα των πινάκων και το βιβλίων?

Tasos 30-03-11 12:42

Καλησπέρα Δημήτρη!

Ναι. Μπορείς να προσαρμόσεις τον κώδικα αλλάζοντας απλά τα ονόματα και τις διαδρομές.

Καλή συνέχεια!

Τάσος


Η ώρα είναι 06:45.

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


Search Engine Optimization by vBSEO 3.3.2