Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Συναρτήσεις ] Άνοιγμα αρχείου μορφής .pdf στον C:\

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-03-17, 18:15
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή Άνοιγμα αρχείου μορφής .pdf στον C:\

Στο συνημμένο που ανέβασα, και το οποίο δημιουργήθηκε με τη βοήθεια του εξαιρετικού φίλου του Forum
Γιώργου(Kapetang), εμπεριέχονται δυο Φόρμες. Σε καθεμιά από αυτές έχουν τοποθετηθεί τρία(3) κουμπιά:

• Με το πρώτο κουμπί "Δημιουργία φακέλου" δημιουργούμε έναν φάκελο (πατρικό, βασικό) σε συγκεκριμένη
διαδρομή του δίσκου ("C:\...\").
• Με το δεύτερο κουμπί "Εύρεση φακέλου..." ανοίγουμε τον πατρικό φάκελο που δημιουργήσαμε και, τέλος,
• Με το τρίτο κουμπί "Αλλαγή πατρικού φακέλου" αλλάζουμε τον πατρικό φακέλου στο δίσκο.("C:\...\")

Στον πατρικό φάκελο τοποθετούμε (χειροκίνητα) μόνον αρχεία μορφής .pdf, με μοναδική ονομασία για το
καθένα απο αυτά:Την τιμή που έχει το πεδίο της φόρμας [ΗΜΕΡΟΜΗΝΙΑ].
Για παράδειγμα, αν το πεδίο [ΗΜΕΡΟΜΗΝΙΑ] είναι 19-3-2017 τότε στο αρχείο δίνεται (χειροκίνητα) ως ονομασία: 19-3-2017.pdf)

Κατόπιν τούτων, θα ήθελα τη βοήθειά σας στο εξής:

Είναι δυνατόν να συμπληρώσουμε τον υφιστάμενο Κώδικα, με κάποιο τρόπο, έτσι ώστε, όταν επιλέγουμε το κουμπί
"Εύρεση φακέλου..." να ανοίγει ο πατρικός φάκελος και, ταυτόχρονα, να ανοίγει το αρχείο .pdf που έχει ως ονομασία
την ίδια τιμή με το πεδίο [ΗΜΕΡΟΜΗΝΙΑ]
;




Σας ευχαριστώ εκ των προτέρων
Συνημμένα Αρχεία
Τύπος Αρχείου: zip MakeOpenFolder6.zip (43,4 KB, 29 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη dimitrisp : 19-03-17 στις 19:28.
Απάντηση με παράθεση
  #2  
Παλιά 20-03-17, 21:32
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα

Τελικά, ύστερα από αρκετές δοκιμές, κατάφερα να επιλύσω το ζητούμενο:

α) Για την αρχειοθέτηση των pdf χρησιμοποίησα ως ονομασία, αντί την τιμή του πεδίου [ΗΜΕΡΟΜΗΝΙΑ] , την τιμή του πεδίου ID (επειδή είναι μοναδική).

β) Πρόσθεσα άλλο ενα κουμπί "Προβολή .pdf", με κώδικα. Πατώντας το κουμπί προβάλλεται το αρχείο ID.pdf ( ID της τρέχουσας εγγραφής).

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

Στη διάθεσή σας για οποιαδήποτε πρόσθετη πληροφορία ή διευκρίνηση.

Σημαντική σημείωση: Ο Κώδικας στην εν λόγω βάση, οπως προανάφερα, δημιουργήθηκε με τη βοήθεια του φίλου του Forum
Γιώργου(Kapetang) και, θεωρώ ότι, είναι ιδιαίτερα αξιόλογος και σημαντικός, συγκρινόμενος με παρόμοιους κώδικες που έχουν δημοσιευτεί
κατά καιρούς στο Forum, επειδή η διαδρομή του φακελου στον "C:\" δεν είναι προεπιλεγμένη (ενσωματωμένη στον κώδικα),
αλλά επιλέγεται απο το χρήστη.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip MakeOpenFolderFinal.zip (48,9 KB, 58 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη dimitrisp : 22-03-17 στις 08:03.
Απάντηση με παράθεση
  #3  
Παλιά 03-04-17, 10:55
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γεια σας,

Σε συνέχεια των πραπάνω αναρτήσεων, θα ήθελα τη βοήθειά σας στο ακόλουθο θέμα:

Έχω ήδη αναφέρει ότι,

α) Για την αρχειοθέτηση των pdf χρησιμοποίησα ως ονομασία την τιμή του πεδίου ID.

β) Πατώντας το κουμπί "Προβολή .pdf", προβάλλεται το αρχείο ID.pdf ( ID της τρέχουσας εγγραφής).

Μέσα στο Φάκελο (άπ` όπου προβάλλεται το αρχείο ID.pdf).
υπάρχουν αρχειοθετημένα και άλλα αρχεία .pdf, προφανώς με διαφορετικά ID.


Πως να μετατρέψω τον Κώδικα έτσι ώστε να προβάλλεται το αρχείο ID.pdf με το μεγαλύτερο ID (MaxID),
που υπάρχει στο συγκεκριμένο φάκελο;



Στη διάθεσή σας για οποιαδήποτε πρόσθετη πληροφορία ή διευκρίνηση.
Απάντηση με παράθεση
  #4  
Παλιά 03-04-17, 20:14
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα
Κώδικας:
Shell "Explorer.exe C:\φακελος του c\" & str( DMax("[id]","όνομα πίνακα που έχει το id")) &".pdf", vbNormalFocus
Νομίζω ότι θα έχεις τη λύση που θες

Καλό βράδυ / Νίκος
Απάντηση με παράθεση
  #5  
Παλιά 03-04-17, 21:42
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γειά σας

Νίκο, σ` ευχαριστώ για την απάντησή σου. Η πρότασή σου φαίνεται ότι δε με εξυπηρετεί ή,
τουλάχιστον, δεν μπορώ να την προσαρμόσω στην ως άνω δειγματική βάση.

Ο κώδικας που χρησιμοποιώ για την προβολή αρχείων .pdf από τον τελικό φακελο είναι ο ακόλουθος:
Παράθεση:
Private Sub cmdViewingFile_Click()
Dim strFolderName As String
Dim strPath As String

strFolderName = MakeNameFolder
If strFolderName <> "" Then
strPath = SetFindBasicPath
If strPath <> "" Then
strFolderName = strPath & "\" & strFolderName & "\" & Me.ID & ".pdf"
If Dir(strFolderName, vbDirectory) <> "" Then

ShellExecute 0, "open", strFolderName, "", "C:\", SW_SHOWNORMAL

Else
MsgBox "Ο φάκελος είναι κενός ή δεν υπάρχει φάκελος"
End If

End If
End If
End Sub
Πατώντας το κουμπί " Προβολή .pdf " ανοίγει το pdf αρχείο που έχει την ίδια τιμή με το τρέχον id (" & Me.ID & ").
Όμως, μέσα στον ίδιο φάκελο υπάρχουν πρόσθετα αρχεία με διαφορετικά id.

Θέλω,λοιπόν, να τροποποιήσω τον παραπάνω κώδικα προκειμένου, πατώντας το κουμπί
" Προβολή .pdf " να ανοίγει το .pdf αρχείο που βρίσκεται στο βασικό φάκελο και που έχει τη μεγαλύτερη τιμή ID.

Για παράδειγμα, αν μέσα στο συγκεκριμένο φάκελο έχω τα αρχεία 10.pdf, 15.pdf,19.pdf,40.pdf, πατώντας το κουμπί
" Προβολή .pdf " να ανοίξει το αρχείο 40.pdf
Απάντηση με παράθεση
  #6  
Παλιά 03-04-17, 23:10
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γειά σας,

Συμπληρωματικά με τα προηγούμενα σας γνωρίζω διευκρινιστικά ότι,

για το ως άνω παράδειγμα, τα id 10,15,19 και 40, με βάση τα οποία έχουν ονομαστεί τα pdf
αρχεία το φακέλου, εννοειται ότι είναι καταχωρημένα στον Πίνακα και, βεβαίως, ανήκουν στο ίδιο [ΟΝΟΜΑΤΕΠΩΝΥΜΟ] και [ΑΦΜ] ,
στοιχεία που αποτέλεσαν τη βάση δημιουργίας του πατρικού φακέλου.

Ανεβάζω εκ νέου τη βάση, στην οποία ο πίνακας είναι περίπου σύμφωνος με το παράδειγμα.
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb MakeOpenFolderFinal.accdb (436,0 KB, 50 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 03-04-17, 23:39
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Το βασικό πρόβλημα είναι εύρεση του μέγιστου ID.

Στον παρακάτω κώδικα δίνονται 2 συναρτήσεις για τον προσδιορισμό του.

Κώδικας:
Public Function MaxIDTable(strTable As String) As Long
    'Επιστρέφει το μέγιστο ID του πίνακα strTable
    'Εάν ο πίνακας είναι κενός επιστρέφει 0
    
    MaxIDTable = Nz(DMax("ID", "[" & strTable & "]"), 0)

End Function


Public Function MaxIDFolder(ByVal fullNameFolder As String) As Long
    'Επιστρέφει το μέγιστο ID των αρχείων ID.pdf του φακέλου fullNameFolder
    'Εάν ο φάκελος δεν περιέχει αρχεία ID.pdf επιστρέφει 0

    Dim strPDF  As String, max As Long, k As Long
    
    If Right(fullNameFolder, 1) <> "\" Then
        fullNameFolder = fullNameFolder & "\"
    End If
    strPDF = Dir(fullNameFolder & "*.pdf")
    Do While strPDF <> ""
        k = Val(Replace(strPDF, fullNameFolder, ""))
        If max < k Then
            max = k
        End If
        strPDF = Dir
    Loop
    MaxIDFolder = max
    
End Function
1) Αν στο φάκελο υπάρχουν αρχεία *pdf για όλα τα ID του πίνακα (πίνακσς1), τότε μπορούμε να προσδιορίσουμε το μέγιστο ID από τον πίνακα (συνάρτηση MaxIDTable).

Είναι η λύση που πρότεινε ο Νίκος.

2) Διαφορετικά θα πρέπει να χρησιμοποιήσουμε τη συνάρτηση MaxIDFolder.

Με άλλα λόγια, στον κώδικα, το Me.ID θα αντικατασταθεί από την κατάλληλη συνάρτηση.

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

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #8  
Παλιά 04-04-17, 11:39
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλημέρα

Γιώργο σε υπερευχαριστώ για την απάντησή σου στο θέμα που με απασχολεί.

Θα προσπαθήσω να κάνω προσαρμογή στη βάση μου τον παραπάνω κώδικα
και θα επανέλθω...

Ωστόσο, όταν λες οτι "στον κώδικα, το Me.ID θα αντικατασταθεί από την κατάλληλη συνάρτηση"
τι εννοείς, ποιά συνάρτηση δηλαδή;

Καλή συνέχεια..
Απάντηση με παράθεση
  #9  
Παλιά 04-04-17, 14:06
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Φίλε Δημήτρη πρότεινα δύο συναρτήσεις.

Η πρώτη είναι απλούστερη, αλλά έχει κάποιους περιορισμούς (τους αναφέρω).

Η δεύτερη είναι περισσότερο γενική.

Στον κώδικα αντί Me.ID μπορείς να γράψεις MaxIDFolder(ByVal fullNameFolder), όπου fullNameFolder είναι ο φάκελος που περιέχει τα αρχεία ID.pdf

Θυμίζω ότι θα πρέπει να αντιγράψεις τον προτεινόμενο κώδικα (2 συναρτήσεις) στον κώδικα της φόρμας ή σε μια λειτουργική μονάδα κώδικα.
Απάντηση με παράθεση
Απάντηση στο θέμα

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

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
άνοιγμα αρχείου pdf με εντολή ΤΑΣΟΣ Access - Ερωτήσεις / Απαντήσεις 14 23-09-16 15:05
Άνοιγμα αρχείου εικόνας από Treeview alex Access - Ερωτήσεις / Απαντήσεις 0 22-01-14 11:15
Άνοιγμα συγκεκριμένου αρχείου Pdf Free_Ghost Access - Ερωτήσεις / Απαντήσεις 11 25-09-13 19:29
[Γενικά] βοήθεια με άνοιγμα αρχείου excel koumpana Excel - Ερωτήσεις / Απαντήσεις 1 20-06-12 11:49


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