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

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

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

 

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

Καλημέρα!

Ο Τάσος Φιλοξενιδης ανέβασε προσφάτως ένα χρησιμότατο και συνάμα εξαιρετικά λειτουργικό παραδειγματικό αρχείο:
http://www.ms-office.gr/forum/access...n-pelaton.html.
Γιά το αρχείο που ανέβασα, θα ήθελα τη βοήθειά σας στο εξής:
Ας υποθέσουμε ότι,
1) Στη φόρμα [frmMain] επιλέγουμε το κουμπί [Kεντρικός φάκελος...]
και δημιουργούμε στον C:\ το φάκελο [FilesΧ]. Αυτόματα δημιουργείται και υποφάκελος με το όνομα του [AFM].
2) Αποθηκεύουμε στο φάκελο [Orders] όλα τα αρχεία μας (pdf) με βάση το πεδίο [KODIKOS], ως [KODIKOS.PDF].
(Ο [KODIKOS] είναι μοναδικός γιά κάθε [ID])

Με αυτά τα δεδομένα, και προκειμένου να ανοίξουμε το επιλεγμένο αρχείο pdf, τοποθετούμε στο πεδίο [KODIKOS] τον ακόλουθο κώδικα
(http://www.ms-office.gr/forum/access...xeioy-pdf.html), με το κλικ:
Παράθεση:
Option Compare Database
Option Explicit
Private Const SW_SHOWNORMAL = 1
Private Declare Function ShellExecute _
Lib "shell32.dll" Alias _
"ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub KODIKOS_Click()
Dim strFile As String
If Not IsNull(Me.KODIKOS) Then
strFile = "C:\FilesX\AFM\Orders\" & Me.KODIKOS & ".pdf"
If Dir(strFile, vbDirectory) <> vbNullString Then
ShellExecute 0, "open", strFile, "", "C:\", SW_SHOWNORMAL
Else
MsgBox "File not Found!"
End If
End If
End Sub

Ομως, κάποιο λάθος κάνω στο [strFile] και δεν ανοίγει το αρχείο!

Όταν βάζω αντί για AFM το [AFM =123456789], που είναι και το AFM για το [ID=1] στο παράδειγμά μας, δηλαδή,
strFile = "C:\FilesΧ\123456789\Orders\" & Me.KODIKOS & ".pdf",
τότε το αρχείο ανοίγει κανονικά!

Ερώτημα: Πώς μπορούμε να γενικεύσουμε τον παραπάνω κώδικα έτσι ώστε να έχουμε το ζητούμενο?

Σημείωση: Παρόμοιο ερώτημα είχα ανεβάσει και προσφάτως αλλά, επανέρχομαι με [Νέο θέμα] επειδή θεώρησα ότι,
ενδεχομένως να υπήρχε κάποια ασάφεια σε αυτό και χρειαζόταν διαφορετική διατύπωση!

Σας ευχαριστώ εκ των προτέρων
Συνημμένα Αρχεία
Τύπος Αρχείου: zip DisplayPdfFiles.zip (40,8 KB, 7 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη dimitrisp : 04-05-20 στις 13:35.
Απάντηση με παράθεση
  #2  
Παλιά 04-05-20, 15:31
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα σε όλους!
Φίλε μου Δημήτρη, δεν είναι σαφές το ζητούμενο.

Κάνεις "Drag & Drop" κάποια αρχεία στο φάκελο ας πούμε "Orders" του τρέχοντος πελάτη και με κάποιο τρόπο τα μετονομάζεις.

Στο πρώτο αρχείο δίνεις το όνομα (Me.KODIKOS & ".pdf").

Υπάρχουν και άλλα αρχεία στο φάκελο αυτό και αν ναι, μετονομάζονται και αυτά και με ποιο αλγόριθμο;

Είναι πολλά τα αρχεία στο φάκελο που δεν είναι εύκολο να αναζητήσεις το συγκεκριμένο αρχείο και να το ανοίξεις με διπλό κλικ στο στοιχείο "Orders" στη φόρμα;

Με εκτίμηση

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 04-05-20, 18:15
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα!

Τάσο χαίρομαι που ασχολήθηκες με το θέμα μου και σ'ευχαριστώ γιαυτό!
Βεβαίως, διαβάζοντας τα παραπάνω, παρατήρησα ότι έχεις δίκιο!
Υπάρχει πράγματι ασάφεια...
Επομένως, Θα προσπαθήσω με πληρότητα και σαφήνεια να επεξηγήσω το ζήτούμενο:

Εκ παραδρομής αναγράφηκε παραπάνω ότι, "Ο [KODIKOS] είναι μοναδικός γιά κάθε [ID]". Σημαντικότατο λάθος μου!!!
Το σωστό είναι: Σε κάθε [ID] ενός πελάτη αντιστοιχούν πληθώρα διαφορετικοί ΚΩΔΙΚΟΙ!

Ο κάθε ΚΩΔΙΚΟΣ λαμβάνεται από άλλον πίνακα, ας πούμε τον πίνακα [tblKODIKOS] και είναι το [IDKODIKOS] αυτού.
Η σχέση των δύο πινάκων (tblB και tblKODIKOS) και είναι ένα προς πολλά.

Τώρα, πριν κάνω "Drag & Drop" σε κάποια αρχεία στο φάκελο πχ "Orders" του τρέχοντος πελάτη,
το κάθε αρχείο το μετονομάζω χειροκίνητα με το [IDKODIKOS] (που αντιστοιχεί στην κάθε εγγραφή).

Συνεπώς, γιά κάθε πελάτη αντιστοιχούν πολλά αρχεία (επαναλαμβανόμενες ανανεώσεις,
νέες εγγραφές κλπ) τα οποία απαγορεύεται να διαγραφούν (ανεξαρτήτως λήξης ισχύος τους)
.
Όλα αυτά αποθηκεύονται ΜΟΝΟΝ στο φάκελο "Orders". Τούτο καθιστά κάπως δύσκολη την εύρεση
καθόσον η λίστα μπορεί, σε ορισμένες περιπτώσεις, να περιέχει πάρα πολλά αρχεία (μ.ο.>30).

Στους άλλους φακέλους αρχειοθετώ άλλες κατηγορίες εγγράφων, οι οποίες είναι πολύ λίγες και,
επομένως, η εύρεσή τους εύκολη.

Κατόπιν τούτων, ανεβάζω νέο παραδειγματικό αρχείο, το οποίο εμπεριέχει πλήρως τα νέα δεδομένα, ως αυτά προαναφέρθηκαν.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip DisplayPdfFiles1.zip (46,2 KB, 15 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη dimitrisp : 04-05-20 στις 18:37.
Απάντηση με παράθεση
  #4  
Παλιά 06-05-20, 20:52
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα!

Τελικά, και ύστερα από αρκετές δοκιμές, βρήκα μια λύση γιά το
ζητούμενο:
Αντικατέστησα το strFile = "C:\FilesX\AFM\Orders\" & Me.IDKODIKOS & ".pdf"
με το strFile = "C:\FilesX\" & Me.AFM & "\Orders\" & Me.IDKODIKOS & ".pdf"
και κάνοντας κλικ στο πεδίο [IDKODIKOS] (στο αρχείο DisplayPdfFiles1.accdb που ανέβασα)
ανοίγει κανονικά το επιλεγμένο αρχείο! Ακριβώς αυτό που ήθελα!

Το μόνο μειονέκτημα που υπάρχει στην παραπάνω διαδικασία είναι ότι, ο τελικός χρήστης
κατά την αρχική δημιουργία του Κεντρικού Φακέλου πρέπει να του δώσει την ονομασία "FilesX".
Διαφορετικά, με άλλη ονομασία, δεν θα λειτουργήσει η [strFile].
Δεν κατάφερα να αντικαταστήσω το "FilesX" με κάτι γενικότερο και προεπιλεγμένο, όπως το
"AFM" και το "Orders", για τα οποία, ότι και ονομασία δώσουμε στον Κεντρικό Φάκελο,
δεν υπάρχει πρόβλημα.
Θεωρείται μειονέκτημα δεδομένου ότι, ο απλός χρήστης τής εφαρμογής εννοείται πώς δεν δύναται
να επξεργαστεί τον Κώδικα...

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

Τελευταία επεξεργασία από το χρήστη dimitrisp : 06-05-20 στις 22:09.
Απάντηση με παράθεση
  #5  
Παλιά 13-05-20, 20:01
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα!

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

Κοιτάζοντας προσεκτικά τον Κώδικα που δημιούργησε ο Τάσος στην καταπληκτική (και χρησιμότατη για μένα)
πρόταση που έκανε σχετικά με τη http://www.ms-office.gr/forum/access...n-pelaton.html,
αντικατέστησα τη
strFile = "C:\FilesX\" & Me.AFM & "\Orders\" & Me.IDKODIKOS & ".pdf"
με τη
strFile = MainFolder & "\" & Me.AFM & "\Orders\" & Me.IDKODIKOS & ".pdf"

και πλέον έχω ακριβώς αυτό που ήθελα εξαρχής να πετύχω! Τέλεια!


Αν επιθυμεί καποιος φίλος παράδειγμα, να ανεβάσω ευχαρίστως.

Καλή συνέχεια σε όλους...
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Error κατά το άνοιγμα "...δεν είναι δυνατή η ανάγνωση.." jockey17 Excel - Ερωτήσεις / Απαντήσεις 2 23-05-14 16:15
Εμφανιση "Μηνός" και "Έτους" σε πίνακα και ερώτημα antonib Access - Ερωτήσεις / Απαντήσεις 4 24-09-12 21:58
[ Πίνακες ] Εμφάνιση πίνακα "παρασκηνίου" στο "προσκήνιο" PanosPan Access - Ερωτήσεις / Απαντήσεις 6 12-10-10 16:33
[ Εκθέσεις ] Άθροισμα "σε μεταφορά" στο υποσέλιδο και "από μεταφορά" στην κεφαλίδα prokopino Access - Ερωτήσεις / Απαντήσεις 4 25-06-10 17:24


Η ώρα είναι 07:30.