Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Πως θα βρούμε την διαδρομή ενός αρχείου; (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5751-pos-tha-broime-tin-diadromi-enos-arxeioy.html)

pakos 27-12-20 20:17

Πως θα βρούμε την διαδρομή ενός αρχείου;
 
καλησπέρα την ομάδα

Θέλω να ρωτήσω εάν πληκτρολογώντας το Πρωτόκολλο να εμφανίζεται το αρχείο.

Γνωστοποιώ ότι το αρχείο μπορεί να βρίσκεται σε φάκελο με υποφακέλους και με δεύτερο υποφάκελο.
Π.χ. C:\FILE\ΕΙΔΟΣ_ΖΩΩΝ\ΠΑΡΑΓΩΓΟΣ\Ε ΟΣ\ΑΡΧΕΙΟ.PDF
όπου ΑΡΧΕΙΟ ο αριθμός πρωτοκόλλου
η μόνη σταθερή διαδρομή είναι το C:\FILE και ότι υπάρχουν πάνω από 600 παραγωγοί οπότε ένα path ή περισσότερα δεν λύνουν το πρόβλημα.

Με λίγα λόγια θέλω να δημιουργεί την διαδρομή που βρίσκεται το αρχείο

Ευχαριστώ

tsgiannis 28-12-20 08:06

Ετσι όπως το περιγράφεις χρειάζεσαι μια ρουτίνα που σε κάποια στιγμή θα κάνει Scan όλο τον φάκελο/υποφακέλους και μετά θα τα βάζει όλα αυτά σε 1 Dictionary ..μετά βάζοντας το πρωτόκολλo θα παίρνεις το path.
Δεν ορίζεις την διαδρομή σε κάποια φάση της καταχώρησης δεδομένων ώστε να μπορούσες να δουλέψεις με Combobox, περνάς μετά τα αρχεία ?

pakos 28-12-20 12:23

ευχαριστώ για την απάντηση.
Μιλάμε για υπηρεσία και υπαλλήλους που δεν έχουν γνώση των υπολογιστών και το μόνο που θα κάνουν είναι να πληκτρολογούν τον αριθμό πρωτοκόλλου.
Στα winXP έχει και την αναζήτηση που κάνει τη δουλειά άλλα μάταιος κόπος.
πάντως δεκτή κάθε βοήθεια

tsgiannis 29-12-20 09:13

Επειδή λογικά βλέπω να μπερδεύονται καθώς σίγουρα θα υπάρχουν λάθη πρωτοκόλλησης το πιο εύκολο είναι να βάλεις 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


pakos 30-12-20 22:51

συνέχεια
 
1 Συνημμένο(α)
Επειδή ο κώδικας δεν λειτουργεί έκανα μια τροποποίηση και θα εμφανίζεται το αρχείο
που θα βρίσκεται μέσα σε κάποιον από τους 6 φακέλους.

Ανεβάζω το αρχείο για κάποιον που θα το χρειαστεί

tsgiannis 31-12-20 09:14

1 Συνημμένο(α)
Μιας και όντας ο κώδικας είχε μια παράλειψη δες το δείγμα.
Δουλεύει ως εξής :
πατάς το κουμπάκι με τις 3 τελείες και επιλέγεις τον ριζικό φάκελο
Αυτό θα ψάξει όλους τους φακέλους - υποφακέλους για αρχεία που ικανοποιούν το κριτήριο (.pdf)
μόλις τελειώσει θα γεμίσει το Listbox απο κάτω
Τώρα μπορείς να φιλτράρεις το Listbox με το textbox ΠΡΩΤΟΚΟΛΛΟ...(απλώς γράψε τα νούμερα έστω και κάποια)
Αυτό θα ψάξει και θα φέρει μόνο τις εγγραφές του Listbox Που ικανοποιούν το κριτήριο
Εαν θες να επανέλθεις πατάς το κουτί επαναφορά
Με την χρήση του Listbox Μπορείς να επιλέξεις το αρχείο που σε ενδιαφέρει.
ΣΟΣ... προτού ξεκινήσεις φτιάξε τα references (έχεις πιο παλιό Office και δεν τα έκανα Late Binding)

Καλή Χρονιά

pakos 31-12-20 10:26

Καλημέρα
ευχαριστώ για την απάντηση
Η υπηρεσία χρησιμοποιεί winXP και access 2007

Δουλεύει καλά μετά τον δεύτερο φάκελο
δηλ.

Από "C:\FILE" δεν δουλεύει
σε δεύτερο υποφάκελο "C:\FILE\ΑΙΓΟΠΡΟΒΑΤΑ" δεν έχει πρόβλημα και τα δείχνει όλα
Καλή Χρονιά
και πάνω από όλα υγεία σε όλους στο forum

tsgiannis 31-12-20 11:41

Χμ...αυτό με τον 1ο φάκελο με προβληματίζει γιατί και εγώ το δοκίμασα σε παρόμοιο φάκελο αλλά δεν είχε τέτοιου είδους αρχεία στον ριζικό...μπορείς να το κάνεις λίγο debug....αν μπορέσω θα του ρίξω μια ματιά κάποια στιγμή

Καλη χρονιά σε όλους.

pakos 03-01-21 22:38

Γιάννη ευχαριστώ για την λύση.

Τελικά έλυσα το πρόβλημα και με κάποιες προσθήκες πληκτρολογώντας μόνο τον αριθμό του πρωτοκόλλου έχουμε το ποθούμενο

Μπορεί πλέον να εμφανίσει και με τους 2 τρόπους το αρχείο pdf.

καλή συνέχεια και καλή χρονιά σε oλο το forum

pakos 08-01-21 17:15

Γιάννη χαιρετώ και πάλι

επανέρχομαι στο ίδιο θέμα γιατί σε υπολογιστές της υπηρεσίας με winXP και access 2003

υπάρχει πρόβλημα με την εμφάνιση της λίστας.

Βγάζει μήνυμα ότι η ΄λίστα δεν έχει αρκετό χώρο κ.λ.π

Δηλαδή αυτά που σκανάρει δεν χωράνε στη λίστα.

Η λύση που πρότεινα να αλλάξουν λειτουργικό, αλλά το βλέπω χλωμό


Η ώρα είναι 11:58.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2