Forum
ms-office.gr > Forum > Microsoft Office > Visual Basic for Applications (VBA) > [Access - VBA] Διάβασμα περιεχόμενου κελιού excel απο την Access

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

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

 

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

Καλημέρα σας
Πως μπορώ να διαβάσω το περιεχόμενο του κελιού π.χ C2 που βρίσκεται στο 3ο φύλλο ενός αρχείου Excel ;
...Προσπάθησα να κάνω Connection Access-Excel, σύμφωνα με τα περιεχόμενα της βοήθειας που προσφέρει η access,
Κώδικας:
Dim cnn As New ADODB.Connection κλπ
αλλά ...απορρίφθηκε κατά την φάση της εκτέλεσης από την πρώτη κιόλας εντολή !
Χρειάζομαι τη βοήθειά σας / Νίκος Δ.

Υστερολόγιο: Η λύση που έχω αυτή τη στιγμή έχει ως εξής: Μεταφέρω μια -κατάλληλη- γραμμή από το Excel σε κάποιο πίνακα-βοηθό και μετά διαβάζω την τιμή που επιθυμώ από πεδίο αυτού του πίνακα. Αυτή τη λύση δεν με ικανοποιεί.
Απάντηση με παράθεση
  #2  
Παλιά 06-06-10, 19:11
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.157
Προεπιλογή

Νίκο καλησπέρα!
Αφου πρόκειται να εισάγεις μεμονωμένα κελιά εκτός από τη χρήση ADO ή DAΟ,
μπορείς να χρησιμοποιήσεις την παλιά αλλά λειτουργική μέθοδο "ExecuteExcel4Macro"
της Excel.
Ο παραδειγματικός κώδικας παρακάτω μας δείχνει πως γίνεται:

Κώδικας:
'Πρόσθεσε τις παρακάτω αναφορές στον VBE _
   (Tools >References > Microsoft Excel XX.0 Object Library):
  'αναφορά για την Excel: Microsoft Excel XX.0 Object Library
  'αναφορά για to Microsoft Office: Microsoft Office XX.0 Object Library

  Option Compare Database
  Option Explicit
   
  Dim XL As New Excel.Application
   
  Sub Test_For_XL_Cell_C2_Value()
      With XL.Application.FileDialog(msoFileDialogFilePicker)
          .Filters.Clear
          .Filters.Add "Excel files", "*.xl*"
          If .Show Then
              MsgBox XLCellValue(.SelectedItems(1), "MySheet", "C2") 
              'MySheet = το όνομα του φύλλου και "C2" = το κελί
           End If
      End With
  End Sub
   
  Function XLCellValue(XlBookFullName As String, _
                       XlSheetName As String, _
                       CellAddress As String)
      Dim arg As String, XLDir As String, ConvCellAddress As String, SheetFound As Boolean
   
      On Error Resume Next
      XLDir = Dir(XlBookFullName, 16)
      If XLDir = vbNullString Then
          XLCellValue = "Could not access the Workbook '" & XlBookFullName & "' !"
          Exit Function
      End If
      arg = "'" & Replace(XlBookFullName, XLDir, vbNullString)
      arg = arg & "[" & XLDir & "]" & XlSheetName & "'!"
      ConvCellAddress = Replace(XL.ConvertFormula("=" & CellAddress, xlA1, -4150, True), "=", vbNullString)
   
      SheetFound = Not IsError(XL.ExecuteExcel4Macro(arg & ConvCellAddress))
   
      If Not SheetFound Then
          XLCellValue = "Could not find the sheet '" & XlSheetName & "' !"
          Exit Function
      Else
          XLCellValue = XL.ExecuteExcel4Macro(arg & ConvCellAddress)
      End If
      If Err <> 0 Then
          XLCellValue = Err & " " & Err.Description
          Exit Function
      End If
      If Trim(XLCellValue) = vbNullString Then XLCellValue = "The Cell '" & CellAddress & "' has no Value!"
  End Function
Δες επίσης αυτό:http://www.ms-office.gr/forum/410-post8.html

Τα λέμε

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 07-06-10 στις 11:54.
Απάντηση με παράθεση
  #3  
Παλιά 07-06-10, 13:00
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 533
Προεπιλογή

Καλημέρα φίλοι μου...
Η σκέψη μου ήταν να αποκτήσω μερικές γνώσεις που αφορούν τον έλεγχο αρχείων Excel, μέσα απο περιβάλλον εφαρμογής Access. Όχι πλήρη έλεγχο, αλλά να μπορώ να διαβάσω το περιεχόμενο ενός κελιού, να μπορώ να μετρήσω το πλήθος των γραμμών, να εντοπίζω τη max τιμή σε κάποια στήλη, ...
Ο κώδικας που ανέβασε ο Τάσος -πέρα απο την ολότητά του- μας παρουσιάζει αρκετά 'σημεία' ενδιαφέροντα. Δεν το κρύβω οτι για μένα ειναι ένας βαρύς κώδικας και χρειάζoμαι ...σόδα!
Οι τεχνικές DAO , ADO χρειάζονται κάποιες αναφορές στον VBE ή έχουν ήδη οριστεί;

Τάσο να είσαι καλά. Μαθαίνω από σένα...ευχαριστώ...
Φιλικά / Νίκος Δ.
Απάντηση με παράθεση
  #4  
Παλιά 07-06-10, 14:15
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.157
Προεπιλογή

Νίκο καλησπέρα!
Μπορείς να χρησιμοποιήσεις τον παρακάτω κώδικα σε απλοποιημένη μορφή
για να διαβάζεις το κελί "C2":

Κώδικας:
Sub GetXLCellData()
    Dim rs As Object
    With OpenDatabase("C:\Users\Admin\Desktop\test.xls", False, True, "Excel 8.0;HDR=Yes;")
        Set rs = .OpenRecordset("SELECT Top 1 * FROM [Sheet1$]")
        If rs.RecordCount Then MsgBox rs.Fields(2)
        rs.Close
    End With
End Sub
όπου: Sheet1$ = το όνομα του φύλλου συνοδευόμενο πάντα από τον χαρακτήρα $
Τα λέμε...
Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 07-06-10 στις 14:26.
Απάντηση με παράθεση
  #5  
Παλιά 09-06-10, 00:07
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 533
Προεπιλογή

Καλησπέρα...
Τάσο αυτή η ρουτίνα είναι κατανοητή πλήρως και ...πλούσια σε πληροφοριακό υλικό. Φανταστική! Είναι απίστευτο... Έχω στα χέρια μου ένα εργαλείο να 'βλέπω' μέσα στο Excel.
Σκέπτομαι να έχω τα στοιχεία των εκπαιδευτικών του σχολείου μου σε εφαρμογή Access - να φορτώνω με αυτά μια φόρμα Excel υπολογισμού πχ υπερωριών (προκαθορισμένη από την διεύθυνση) και να τυπώνω καταστάσεις πληρωμών έχοντας πλήρη έλεγχο!
Τάσο να είσαι καλά εσύ και η οικογένειά σου...
Καλό σας βράδυ φίλε μου
Απάντηση με παράθεση
Απάντηση στο θέμα

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

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Διάβασμα τιμής από σειριακή θύρα vassilism Access - Ερωτήσεις / Απαντήσεις 4 10-01-12 12:46
Διάβασμα τιμής από αρχείο txt vassilism Access - Ερωτήσεις / Απαντήσεις 4 02-11-11 16:50
[Συναρτήσεις] Διάσπαση περιεχομένου κελιού σε άλλα. ΤΖΙΜΗΣ Excel - Ερωτήσεις / Απαντήσεις 6 27-06-11 16:56
[Access - VBA] Αντιγραφή περιεχομένου κελιού σε άλλο κελί Meteora Visual Basic for Applications (VBA) 4 09-09-10 16:31
Διάβασμα τιμής απο πεδίο του 1ου Record ενός πίνακα - DAO Meteora Access - Ερωτήσεις / Απαντήσεις 1 10-04-09 14:25


Η ώρα είναι 16:00.