Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Πως θα βρούμε την διαδρομή ενός αρχείου;
καλησπέρα την ομάδα Θέλω να ρωτήσω εάν πληκτρολογώντας το Πρωτόκολλο να εμφανίζεται το αρχείο. Γνωστοποιώ ότι το αρχείο μπορεί να βρίσκεται σε φάκελο με υποφακέλους και με δεύτερο υποφάκελο. Π.χ. C:\FILE\ΕΙΔΟΣ_ΖΩΩΝ\ΠΑΡΑΓΩΓΟΣ\Ε ΟΣ\ΑΡΧΕΙΟ.PDF όπου ΑΡΧΕΙΟ ο αριθμός πρωτοκόλλου η μόνη σταθερή διαδρομή είναι το C:\FILE και ότι υπάρχουν πάνω από 600 παραγωγοί οπότε ένα path ή περισσότερα δεν λύνουν το πρόβλημα. Με λίγα λόγια θέλω να δημιουργεί την διαδρομή που βρίσκεται το αρχείο Ευχαριστώ |
#2
| |||
| |||
Ετσι όπως το περιγράφεις χρειάζεσαι μια ρουτίνα που σε κάποια στιγμή θα κάνει Scan όλο τον φάκελο/υποφακέλους και μετά θα τα βάζει όλα αυτά σε 1 Dictionary ..μετά βάζοντας το πρωτόκολλo θα παίρνεις το path. Δεν ορίζεις την διαδρομή σε κάποια φάση της καταχώρησης δεδομένων ώστε να μπορούσες να δουλέψεις με Combobox, περνάς μετά τα αρχεία ? |
#3
| |||
| |||
ευχαριστώ για την απάντηση. Μιλάμε για υπηρεσία και υπαλλήλους που δεν έχουν γνώση των υπολογιστών και το μόνο που θα κάνουν είναι να πληκτρολογούν τον αριθμό πρωτοκόλλου. Στα winXP έχει και την αναζήτηση που κάνει τη δουλειά άλλα μάταιος κόπος. πάντως δεκτή κάθε βοήθεια |
#4
| |||
| |||
Επειδή λογικά βλέπω να μπερδεύονται καθώς σίγουρα θα υπάρχουν λάθη πρωτοκόλλησης το πιο εύκολο είναι να βάλεις 1 καλύτερο File Search όπως το Agent Ranshack. Απο εκεί και πέρα Ο παρακάτω κώδικας ψάχνει για όλα τα αρχεία σε 1 ριζικό φάκελο Κώδικας: Sub GetFiles(StartFolder As String, Pattern As String, _ DoSubfolders As Boolean, ByRef colFiles As Collection) Dim f As String, sf As String, subF As New Collection, s If Right(StartFolder, 1) <> "\" Then StartFolder = StartFolder & "\" f = Dir(StartFolder & Pattern) Do While Len(f) > 0 colFiles.Add StartFolder & f f = Dir() Loop If DoSubfolders then sf = Dir(StartFolder, vbDirectory) Do While Len(sf) > 0 If sf <> "." And sf <> ".." Then If (GetAttr(StartFolder & sf) And vbDirectory) <> 0 Then subF.Add StartFolder & sf End If End If sf = Dir() Loop For Each s In subF GetFiles CStr(s), Pattern, True, colFiles Next s End If End Sub Κώδικας: Dim colFiles As New Collection GetFiles "C:\Users\Marek\Desktop\Makro\", FName & ".xls", True, colFiles If colFiles.Count > 0 Then 'work with found files End If |
#5
| |||
| |||
συνέχεια
Επειδή ο κώδικας δεν λειτουργεί έκανα μια τροποποίηση και θα εμφανίζεται το αρχείο που θα βρίσκεται μέσα σε κάποιον από τους 6 φακέλους. Ανεβάζω το αρχείο για κάποιον που θα το χρειαστεί |
#6
| |||
| |||
Μιας και όντας ο κώδικας είχε μια παράλειψη δες το δείγμα. Δουλεύει ως εξής : πατάς το κουμπάκι με τις 3 τελείες και επιλέγεις τον ριζικό φάκελο Αυτό θα ψάξει όλους τους φακέλους - υποφακέλους για αρχεία που ικανοποιούν το κριτήριο (.pdf) μόλις τελειώσει θα γεμίσει το Listbox απο κάτω Τώρα μπορείς να φιλτράρεις το Listbox με το textbox ΠΡΩΤΟΚΟΛΛΟ...(απλώς γράψε τα νούμερα έστω και κάποια) Αυτό θα ψάξει και θα φέρει μόνο τις εγγραφές του Listbox Που ικανοποιούν το κριτήριο Εαν θες να επανέλθεις πατάς το κουτί επαναφορά Με την χρήση του Listbox Μπορείς να επιλέξεις το αρχείο που σε ενδιαφέρει. ΣΟΣ... προτού ξεκινήσεις φτιάξε τα references (έχεις πιο παλιό Office και δεν τα έκανα Late Binding) Καλή Χρονιά |
#7
| |||
| |||
Καλημέρα ευχαριστώ για την απάντηση Η υπηρεσία χρησιμοποιεί winXP και access 2007 Δουλεύει καλά μετά τον δεύτερο φάκελο δηλ. Από "C:\FILE" δεν δουλεύει σε δεύτερο υποφάκελο "C:\FILE\ΑΙΓΟΠΡΟΒΑΤΑ" δεν έχει πρόβλημα και τα δείχνει όλα Καλή Χρονιά και πάνω από όλα υγεία σε όλους στο forum |
#8
| |||
| |||
Χμ...αυτό με τον 1ο φάκελο με προβληματίζει γιατί και εγώ το δοκίμασα σε παρόμοιο φάκελο αλλά δεν είχε τέτοιου είδους αρχεία στον ριζικό...μπορείς να το κάνεις λίγο debug....αν μπορέσω θα του ρίξω μια ματιά κάποια στιγμή Καλη χρονιά σε όλους. |
#9
| |||
| |||
Γιάννη ευχαριστώ για την λύση. Τελικά έλυσα το πρόβλημα και με κάποιες προσθήκες πληκτρολογώντας μόνο τον αριθμό του πρωτοκόλλου έχουμε το ποθούμενο Μπορεί πλέον να εμφανίσει και με τους 2 τρόπους το αρχείο pdf. καλή συνέχεια και καλή χρονιά σε oλο το forum |
#10
| |||
| |||
Γιάννη χαιρετώ και πάλι επανέρχομαι στο ίδιο θέμα γιατί σε υπολογιστές της υπηρεσίας με winXP και access 2003 υπάρχει πρόβλημα με την εμφάνιση της λίστας. Βγάζει μήνυμα ότι η ΄λίστα δεν έχει αρκετό χώρο κ.λ.π Δηλαδή αυτά που σκανάρει δεν χωράνε στη λίστα. Η λύση που πρότεινα να αλλάξουν λειτουργικό, αλλά το βλέπω χλωμό |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Αποστολή ενός αρχείου access στο google drive | pakos | Access - Ερωτήσεις / Απαντήσεις | 4 | 29-09-20 12:41 |
[VBA] Διαδρομή αποσυμπίεσης | anestaki | Excel - Ερωτήσεις / Απαντήσεις | 3 | 04-11-12 17:18 |
Διαδρομή βιβλίου / όνομα φύλλου εργασίας σε κελί. | Tasos | Κείμενο | 0 | 21-09-11 14:34 |
Η ώρα είναι 06:33.