Forum
ms-office.gr > Forum > Microsoft Office > Visual Basic for Applications (VBA) > [Access - VBA] Περιεχόμενο πεδίου Access μεταφέρεται σε κελί Excel

Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 30-06-10, 20:16
Το avatar του χρήστη Meteora
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 200
Προεπιλογή Περιεχόμενο πεδίου Access μεταφέρεται σε κελί Excel

Καλησπέρα στη κοινότητα...
Φίλοι, θα ήθελα ένα μικρό(!) κώδικα που να συνδέει την εφαρμογή μου με υπάρχον αρχείο *.xls και επιπλέον να μεταφέρει στο κελί π.χ. G5 την τιμή μιας μεταβλητής ( ή το περιεχόμενου πεδίο της Acces). Η μεταφορά να αφορά αλφαριθμητικά αλλά και αριθμητικά δεδομένα.
Ένα βήμα ακόμη...
Το αρχείο Excel πως θα το μεταφέρω -με VBA- από Path1 σε Path2 ;
Δεν κάνω άλλο βήμα τώρα. Ίσως η απάντηση φίλου-μέλους του Forum να καλύψει το επόμενο ερώτημα.
Να είμαστε όλοι καλά / Νίκος Δ.
Απάντηση με παράθεση
  #2  
Παλιά 30-06-10, 23:47
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 463
Προεπιλογή

Αγαπητέ μου φίλε Νίκο Καλημέρα!
Σου παραθέτω κάποια παραδείγματα παρακάτω:

Ο κώδικας που να συνδέει την εφαρμογή σου με υπάρχον αρχείο *.xls

Κώδικας:
Sub LinkToExcelSheet()
    ConnectToExcelSpreadSheet "AccessTablename", "C:\Book1.xls", "Sheet2", "A1:K50"
End Sub

Function ConnectToExcelSpreadSheet(AccTableName$, WBPath$, SheetName$, CellAddress$)
    DoCmd.TransferSpreadsheet _
            TransferType:=acLink, _
            SpreadSheetType:=acSpreadsheetTypeExcel9, _
            TableName:=AccTableName, _
            FileName:=WBPath, _
            HasFieldNames:=True, _
            Range:=SheetName & "!" & CellAddress
End Function
Ο κώδικας που μεταφέρει στο κελί G5 μια τιμή

Κώδικας:
Sub ExportValueToExcelCell()
    WriteBalueToXLCell "C:\Book2.xls", "Sheet1", "G5", "MyValue"
End Sub

Function WriteBalueToXLCell(WBPath$, SheetName$, CellAddress$, CellValue)
    Dim XL As Object, WB As Object, wks As String
    On Error GoTo ExitHere
    Set XL = CreateObject("Excel.Application")
    'XL.Visible = True
    Set WB = XL.Workbooks.Open(WBPath)
    WB.Sheets(SheetName).Range(CellAddress).Value = CellValue
    WB.Save
ExitHere:
    If Err <> 0 Then MsgBox Err & vbLf & Err.Description
    If Not XL Is Nothing Then
        XL.Quit
        Set XL = Nothing
    End If
End Function
Για να μεταφέρεις (Αποκοπή - Επικόλληση) ένα αρχείο από Path1 σε Path2,
αρκεί να το μετονομάσεις μέσω VBA δηλαδή:
Κώδικας:
Function RenameFile(SourcePath$, TargetPath$)
    Name SourcePath As TargetPath
End Function
Καλή συνέχεια!

Τάσος
__________________
Το Φόρουμ στηρίζεται και από τα Feedback των μελών του.
Απάντηση με παράθεση
  #3  
Παλιά 01-07-10, 20:43
Το avatar του χρήστη Meteora
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 200
Προεπιλογή

Καλησπέρα...
Εργάστηκα με τον Τάσο πάνω στα τμήματα του κώδικα που μας πρόσφερε, και σας μεταφέρω δυο-τρία σημεία, όπου εστιάστηκε το ενδιαφέρον μας.
1. Όταν μεταφέρεται αριθμητική τιμή σε κελί του Excel, το οποίο -κελί- συμμετέχει σε συνάρτηση συμπλήρωσης τιμών σε άλλα γειτονικά κελιά, τότε η εφαρμογή Excel κατέρρεε! Η λύση είναι να γράψουμε :
Κώδικας:
Sub ExportValueToExcelCell()
    WriteBalueToXLCell "C:\Users\Νίκος\Desktop\Book1.xls", "IPERORIA", "I17", 4
End Sub
Ο αριθμός 4 πρέπει να γραφεί χωρίς εισαγωγικά ! Για πεδίο-δεν δοκιμάσαμε- αλλά η σκέψη του Τάσου είναι "Πρέπει το Excel να καταλάβει ότι πρόκειται για αριθμό, οπότε στη περίπτωση πεδίου γράφεις"
Κώδικας:
 Val(Me.pedio)
2. Η μεταφορά σε κελί μπορεί να γίνει σε όποιο φύλλο Excel επιλέξουμε!
Κώδικας:
παράδειγμα στο φύλλο :   "IPERORIA"
(Αυτό το πλεονέκτημα ήταν ζητούμενο από εμένα!...)

Αυτά.. Τάσο σε ευχαριστώ και από αυτή τη θέση...
Να έχουμε όλοι ένα καλό βράδυ / Νίκος Δ.
Απάντηση με παράθεση
  #4  
Παλιά 23-07-10, 09:02
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 23-07-2010
Περιοχή: Αθήνα
Μηνύματα: 3
Προεπιλογή

Καλημέρα!
'Exω δημιουργήσει και εγώ ένα πινακα στην access και θέλω τα δεδομένα του κάθε πεδίου να "πηγαίνουν" σε ένα αρχείο excel στα ανάλογα πεδιά που έχω δημιουργήσει.
Το πρόβλημά μου είναι ότι δεν ξέρω να χρησιμοποιώ την VBA και δεν ξέρω που θα βάλω το κώδικα που υπάρχει πανω!
Υπάρχει άλλος τρόπος να γίνει,χωρίς να μπλέξω με την VBA;;

Έψαξα το forum και βρήκα αυτό το post πολυ ενδιαφέρον http://www.ms-office.gr/forum/410-post8.html
αλλά όταν πάω να πατήσω το κουμπί "ImportXLCells" βγάζει compiler error ότι του λείπει project ή βιβλιοθήκη και μου κιτρινίζει την γραμμή
<<Private Sub Command12_Click()>>
Έφτιαξα και μία φόρμα που πληκτρολογώ τα δεδομένα για να είναι πιο ωραίο, ξέρω τα κελια του excel που προορίζονται τα δεδομένα για κάθε πεδίο της της φόρμας και τώρα κολλάω στη μεταφορά από την access στο excel!
Ευχαριστώ!
Γιάννης

Τελευταία επεξεργασία από το χρήστη t3rror : 23-07-10 στις 11:40.
Απάντηση με παράθεση
  #5  
Παλιά 24-07-10, 12:12
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 463
Προεπιλογή

Γιάννη καλημέρα και καλωσόρισες στο φόρουμ!
Σε αυτοματισμούς και στην επικοινωνία μεταξύ των προγραμμάτων του Ms Office, η χρήση της VBA είναι σχεδόν πάντα αναπόφευκτη αλλά και "σωτήρια"!

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

Αν θέλεις ανέβασε τα αρχεία σου (Access και Excel) για να σου προτείνουμε μια πιο εύστοχη απάντηση.

Φιλικά

Τάσος
__________________
Το Φόρουμ στηρίζεται και από τα Feedback των μελών του.
Απάντηση με παράθεση
  #6  
Παλιά 24-07-10, 13:33
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 23-07-2010
Περιοχή: Αθήνα
Μηνύματα: 3
Προεπιλογή

Καλησπέρα!
Ανέβασα τα 2 αρχεία ,σήμερα αντιμετώπισα και άλλο ένα θέμα.
Πρόσθεσα άλλες 3 στήλες στο πίνακα μου αλλά δεν μπορώ να τις εμφανίσω στη φόρμα μου.
Επίσης αν ήταν εύκολο να μου προτείνεις κάποια βιβλιογραφία ή site για να μπω στο πνεύμα της vba γιάτι βλέπω οτι οι δυνατότητες της είναι πραγματικά ατελείωτες!
Ευχαριστώ!
Γιάννης
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb βδ1.mdb (612,0 KB, 7 εμφανίσεις)
Τύπος Αρχείου: xls apodiksi.xls (17,0 KB, 8 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 25-07-10, 09:57
Το avatar του χρήστη Meteora
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 200
Προεπιλογή

Καλημέρα κοινότητα !
Αγαπητέ Γιάννη ξεκίνα λίγο πιο ορθόδοξα τη σχέση σου με την Access και τη VBA. Αφού λοιπόν θες να μάθεις, άρχισε να διαβάζεις Access (χωρίς VBA !). Πρέπει να μάθεις για τους πίνακες, τις σχέσεις πινάκων, τις φόρμες, τις εκθέσεις, τα ερωτήματα, τους κανόνες ονοματολογίας πεδίων κ.ο.κ.
Πήγαινε σε κάποιο βιβλιοπωλείο και διάλεξε ένα βιβλίο ( η επιλογή βιβλίου ας είναι αυθαίρετη !). Κάθισε μπροστά στον υπολογιστή σου και ακολούθησε τις οδηγίες του. ...Πίστεψέ με, δεν έχει νόημα να πάρεις μια απάντηση την οποία δεν θα μπορείς να διαχειριστείς. Οι ερωτήσεις που αφορούν σύνδεση Access - Excel προϋποθέτουν ένα υπόστρωμα γνώσεων, τις οποίες γνώσεις εσύ δεν έχεις αυτή τη στιγμή, αφού είσαι στο ξεκίνημά σου...
Ξεκίνα λοιπόν με την Access και εδώ είμαστε για να σε βοηθήσουμε...
Καλή συνέχεια λοιπόν / Νίκος Δ.
Απάντηση με παράθεση
  #8  
Παλιά 25-07-10, 10:38
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 23-07-2010
Περιοχή: Αθήνα
Μηνύματα: 3
Προεπιλογή

Καλημέρα!
Το μόνο που έχω διαβάσει για την access ειναι το ανάλογο βιβλίο του ecdl(απλό) και τώρα έχω ξεκινήσει για το expert!Πουθενά δεν συνάντησα όμως για σύνδεση Access-Excel(ακόμα)!
Θα ακολουθήσω την συμβουλή σου πάντος Νίκο!
Γιάννης
Απάντηση με παράθεση
  #9  
Παλιά 25-07-10, 15:32
Το avatar του χρήστη Meteora
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 200
Προεπιλογή

Γιάννη, δεν έχω ιδέα τι προσφέρει το ECDL ή το EXPERT, στο ζήτημα "Μαθαίνω Access". Δες ένα βιβλίο με αρκετή Access (π.χ. Access 2003 ή 2007 βημα-βήμα απο εκδόσεις Κλειδάριθμος) . Αν φυσικά γνωρίζεις Αγγλικά τότε είσαι προνομιούχος, αφού η βιβλιογραφία δεν έχει όρια !
Ξεκίνα -μετά 3/4 μήνες - την VBA με βιβλία που έχουν συστήσει φίλοι εδώ στο Forum...
Αυτά αγαπητέ μου / Νίκος Δ.
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Access to Excel Converter Free_Ghost Access - Ερωτήσεις / Απαντήσεις 9 05-04-10 15:10
[Γενικά] Κελί που να ενημερώνεται από την εισαγωγή δεδομένων σε ένα άλλο κελί? dancer_69 Excel - Ερωτήσεις / Απαντήσεις 4 19-03-10 12:04
[ Ερωτήματα ] Διαφορές μεταξύ Excel και Access SOS xristos0718 Access - Ερωτήσεις / Απαντήσεις 5 10-03-10 13:42
Proper : Εντολη του excel σε access Ms-Office-Development Team Access - Tips & Tricks 0 11-11-09 09:42
Εισαγωγή formula σε κελί μέσω VBA... ChryssaV Access - Ερωτήσεις / Απαντήσεις 4 09-10-09 10:05


Η ώρα είναι 01:20.