Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Πίνακες ] Αποθήκευση ονομασίας αρχείων pdf σε πίνακα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/6072-apothikeysi-onomasias-arxeion-pdf-se-pinaka.html)

dimitrisp 14-03-22 23:01

Αποθήκευση ονομασίας αρχείων pdf σε πίνακα
 
1 Συνημμένο(α)
Γεια σας

Στο αρχείο που ανέβασα (εξαιρετική δημιουργία του Τάσου Φιλοξενίδη),
μπορούμε να αποθηκεύσουμε αρχεία pdf στο φάκελο της προτίμησής μας (Κεντρικός Φάκελος) με Drag and drop στη φόρμα.
Πριν το Drag and drop, σε κάθε αρχείο pdf του δίνω ονομασία, με έναν αριθμό: 2541.pdf, 9541.pdf, 5364.pdf κοκ.

Ερώτημα: Είναι δυνατόν, το [ID] και η ονομασία των αρχείων που θα κάνουμε Drag and drop στη φορμα
να καταχωρίζεται σε κάποιον πίνακα, με ημερομηνία Date?

Σας ευχαριστώ εκ των προτέρων

tsgiannis 22-03-22 07:50

Στο DocumentComplete (είναι στον κώδικα της φόρμας)
Κώδικας:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim filename As String
filename = Split(URL, ".")(0)
    If URL <> AboutBlank Then
        DoCmd.RunSQL ("INSERT INTO LogFiles (FILENameS) VALUES ('" & filename & "')")
       
    End If
End Sub

Κάνεις τις τροποποιήσεις που θες και είσαι κομπλε
ΣΗΜΕΙΩΣΗ : Ενδιαφέρον το κολπάκι με το WebBrowser Control και το Drag Drop έστω και με τους περιορισμούς του..μέχρι και τα Windows 7 είχαμε την δυνατότητα μέσω API Calls να κάνουμε μια οποιαδήποτε φόρμα να δεχτεί Drag - Drop αλλά με τα Windows 10 κάτι άλλαξε και πάπαλα.

dimitrisp 22-03-22 23:12

Γεια σας

Φίλε Γιάννη, σε ευχαριστώ για την πρότασή σου.

Τη δοκίμασα αλλά, στον πίνακα δεν καταχωρίζεται η ονομασία του αρχείου .pdf
που κάνω drag and drop, αλλά η διαδρομή του Κεντρικού Φακέλου...

Έκανα διάφορες τροποποιήσεις, χωρίς αποτέλεσμα!
Μπορεί να μην κάνω κάτι σωστά... Αν δεν σου κάνει κόπο, δώσε ενα παράδειγμα στη βάση που ανέβασα...

Τελικά, εκείνο που επιδιώκω είναι:

Ας υποθέσουμε ότι έχουμε, γαι παράδειγμα, δυο pdf αρχεία: 2541.pdf, 9541.pdf στην επιφάνεια εργασίας.
Έχοντας ανοιχτή τη φόρμα κάνουμε drag and drop τα δύο αυτά αρχεία, τα οποία,
ακολούθως, φαίνονται στη φόρμα μας (WebBrowser Control) να έχουν και την εστίαση.
Στον Πίνακα θα ήθελα να καταχωρίζονται οι ονομασίες (αριθμοί) αυτών, δηλαδή 2541 και 9541.

Διαφορετικά, κλείνοντας τη Φόρμα να καταχωρίζονται στον Πίνακα οι ονομασίες των όλων των αρχείων .pdf
που προστέθηκαν κατά το τελευταίιο άνοιγμά της...

Εννοείται πως στον WebBrowser Control ενδέχεται να υπάρχουν και άλλα αρχεία .pdf...

Φοβάμαι ότι, πρέπει να είναι πολύ δύσκολο (έως αδύνατον) να επιτευχθεί το ζητούμενο!

tsgiannis 23-03-22 07:58

Το παρακατω θα αναλάβει να τραβήξει μόνο το όνομα του PDF:
Κώδικας:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim fileArr
Dim filename As String
Dim lenArray As Integer
fileArr = Split(URL, ".")(0)
fileArr = Split(filename, "\")
lenArray = UBound(fileArr) - LBound(fileArr)
filename = fileArr(lenArray)
    If URL <> AboutBlank Then
        DoCmd.RunSQL ("INSERT INTO LogFiles (FILENameS) VALUES ('" & filename & "')")
       
    End If
End Sub


dimitrisp 23-03-22 09:49

Γεια σας

Φίλε Γιάννη,
1) Ο Κώδικας χτυπάει στο "filename = fileArr(lenArray)" και
2) Η γραμμή του Κώδικα "DoCmd.RunSQL ("INSERT INTO LogFiles (FILENameS) VALUES ('" & filename & "')")",
τρέχει με το που θα ανοίξω τη φόρμα.(Ενω θέλουμε να τρέχει μετά το drag and drop)

Δυστυχώς, δεν μπορώ να τα διορθώσω... Δεν μπορώ να καταλάβω τι δεν κάνω σωστά...



Παράθεση:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

Dim fileArr

Dim filename As String
Dim lenArray As Integer
fileArr = Split(URL, ".")(0)
fileArr = Split(filename, "\")
lenArray = UBound(fileArr) - LBound(fileArr)
filename = fileArr(lenArray)
If URL <> AboutBlank Then
DoCmd.RunSQL ("INSERT INTO LogFiles (FILENameS) VALUES ('" & filename & "')")

End If
End Sub
Σε κάθε περίπτωση σε ευχαριστώ

tsgiannis 23-03-22 13:56

[QUOTE=dimitrisp;33626[/QUOTE]

Ναι ... ο καφές δεν έπιασε αμέσως ενώ το debug της VBE αφήνει πολλές ελευθερίες... :)

Κώδικας:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim fileArr
Dim filename As String
Dim lenArray As Integer
If InStr(URL,AboutBlank ) Then Exit Sub
If Len(Dir(URL)) Then
fileArr = Split(URL, ".")(0)
path_elements = Split(fileArr, "\")
lenArray = UBound(path_elements) - LBound(path_elements)
filename = path_elements(lenArray)
    If URL <> AboutBlank Then
        DoCmd.RunSQL ("INSERT INTO LogFiles (FILENameS) VALUES ('" & filename & "')")
       
    End If
End If
End Sub


dimitrisp 23-03-22 17:38

1 Συνημμένο(α)
Γεια σας

Φίλε Γιάννη, τώρα χτυπάει στο " path_elements = "

tsgiannis 23-03-22 19:11

Παράθεση:

Αρχική Δημοσίευση από dimitrisp (Μήνυμα 33629)
Γεια σας

Φίλε Γιάννη, τώρα χτυπάει στο " path_elements = "

Έχεις Option Explicit στον κώδικα και θέλει την δήλωση όλων των μεταβλητών
Απλώς βάλε στις Δηλώσεις των μεταβλητών και
Κώδικας:

Dim path_elements as Variant

dimitrisp 23-03-22 20:02

Γεια σας

Έχεις δίκιο Γιάννη με τις μεταβλητές!

Τελικά έκανα δοκιμές και φαίνεται ότι ο Κώδικας λειτουργεί άψογα!

Όμως, ισχύει όταν κάνουμε drag and drop σε ενα και μόνον ενα αρχείο...
Αν κάνουμε απόθεση, για παράδειγμα δυο αρχεία μαζί τότε καταχωρίζεται το όνομα μόνον του ενος...

Αν δεν κάνω κατάχρηση της βοήθειάς σου, γίνεται να καταχωρίζονται ταυτόχρονα στον Πίνακα
περισσότερα από ένα αρχεία (τα οποία κάνουμε drag and drop )?

Θερμές ευχαριστίες

tsgiannis 24-03-22 08:14

Για πολλά αρχεία μαζί δεν θυμάμαι αν το έκανε και η καλή μέθοδος που ανέφερα πιο πριν (Με το API)
Μπορείς να βάλεις όμως 1 κουμπάκι και να καθαρίζει το υπάρχον περιεχόμενο και να ξαναβάζεις αρχείο στο WebBrowser Control
Απλώς στο Click event Βαζεις
Κώδικας:

Private Sub CommandClear_Click()
Me.WebBrowser1.Navigate ("about:blank")
End Sub



Η ώρα είναι 17:37.

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


Search Engine Optimization by vBSEO 3.3.2