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/2690-anoigma-sygkekrimenoy-arxeioy-pdf.html)

Free_Ghost 17-09-13 20:42

Άνοιγμα συγκεκριμένου αρχείου Pdf
 
Φίλοι μου δοκίμασα πολλά που διάβασα μέσα στο site, άλλα δεν κατάφερα να κάνω συγκεκριμένο αρχείο pdf να ανοίγη με το πάτημα ενός πλήκτρου.

Ένα πεδίο (Protokollo) της φόρμας (F_KENTRIKH) παίρνει αυτόματη αρίθμηση, και εγώ ζητάω να βλέπει αυτή την τιμή και να ανοίγει το αρχείο pdf με το ίδιο όνομα που υπάρχει στον φάκελο (C:\Office Files\Pdfiles2013).

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

Dim OpenFile As String
OpenFile = ShellExecute(0, "open", "C:\Office Files\Pdfiles2013" & Forms![F_KENTRIKH]![Protokollo] & ".pdf", "", "C:\", SW_SHOWNORMAL)
End Sub

Πάντα μου χτυπάει στο [Protokollo] εάν λέει κάτι αυτό.

Μήπως μπορεί κάποιος να βοηθήσει.:039:

Tasos 18-09-13 00:09

Καλημέρα!

Χρήστο δοκίμασε:

OpenFile = ShellExecute(0, "open", "C:\Office Files\Pdfiles2013\" & Forms![F_KENTRIKH]![Protokollo] & ".pdf", "", "C:\", SW_SHOWNORMAL)

Τάσος

Free_Ghost 18-09-13 18:56

Δυστυχώς Τάσο δεν δουλεύει.

Υπάρχει κάποιος άλλος τρόπος ? :confused1:

Meteora 18-09-13 19:58

Καλησπέρα

Δουλεύω μια εφαρμογή και χρησιμοποιώ τον κώδικα που βλέπεις για να εμφανίζω αρχεία *.pdf και όχι μόνο...
Κώδικας:

Dim path$
    path = "C:\MailMerge\" & DLookup("[Onoma_arxeiou]", "tbl_name_arxeia", "[info_arxeiou] = '" & Me.Cbox_arxeio & "'")
    Shell "Explorer.exe " & path, vbNormalFocus

Φτιάξε σωστά τη δική σου διαδρομή, δοκίμασε την εκεί στον editor και τα ...ξαναλέμε αν χρειαστεί.

Με εκτίμηση

Νίκος Δ.

Free_Ghost 19-09-13 06:32

Νίκο καλημέρα, δυστυχώς δεν μπορώ να τα αντιστοιχίσω, δεν ξέρω τι ακριβώς είναι τα δικά σου στοιχεία.


Dim path$
path = "C:\MailMerge\" & DLookup("[Onoma_arxeiou]", "tbl_name_arxeia", "[info_arxeiou] = '" & Me.Cbox_arxeio & "'")
Shell "Explorer.exe " & path, vbNormalFocus

Μπορείς να δώσεις διευκρινιστικές πληροφορίες, (το αναζητάς και στον πίνακα ?).

Tasos 19-09-13 08:20

Καλημέρα!

Χρήστο, κάτι δεν κάνεις σωστά.

Δώσε μας ένα δείγμα της βάσης σου για να σε βοηθήσουμε.

Φιλικά

Τάσος

Free_Ghost 19-09-13 10:05

1 Συνημμένο(α)
Τάσο ανέβασα ένα δείγμα όπου κάνω Test.

Βασικά θέλω να αποθηκεύω αρχεία pdf σε έναν φάκελο με τον αριθμό του πρωτοκόλλου, και εφόσον θέλω να το δω να πατάω το πλήκτρο (Εντολή 152) και να ανοίγει το συγκεκριμένο αρχείο που δείχνη στο πεδίο [Protokollo] και εάν δεν υπάρχει να προειδοπειή και να μην ανοίγει τίποτα.

Tasos 19-09-13 10:46

Στην κορυφή της λειτουργικής μονάδας δεν έχεις βάλει τον παρακάτω κώδικα:

Κώδικας:

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

Ο κώδικας αυτός υπάρχει στον παρακάτω σύνδεσμο: http://www.ms-office.gr/forum/11189-post2.html

Στον κώδικα που αντιστοιχεί στο κουμπί χρησιμοποίησε:

Κώδικας:

Private Sub Εντολή152_Click()
    Dim strFile As String
    If Not IsNull(Me.Protokollo) Then
        strFile = "C:\Office Files\Pdfiles2013\" & Me.Protokollo & ".pdf"
        If Dir(strFile, vbDirectory) <> vbNullString Then
            ShellExecute 0, "open", strFile, "", "C:\", SW_SHOWNORMAL
        Else
            MsgBox "File not Found!"
        End If
    Else
        MsgBox "Το πεδίο είναι κενό"
    End If
End Sub

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

Τάσος

Free_Ghost 19-09-13 19:20

Τελικά μετά τις τελευταίες οδηγίες που μου έδωσες Τάσο δούλεψε Κανονικότατα.

Τάσο, Νίκο σας Ευχαριστώ ολόψυχα για άλλη μια φορά.:bye:

Free_Ghost 25-09-13 16:25

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

Στο παρακάτω κώδικα που έγραψε ο Τάσος

Private Sub Εντολή152_Click()
Dim strFile As String
If Not IsNull(Me.Protokollo) Then
strFile = "C:\Office Files\Pdfiles2013\" & Me.Protokollo & ".pdf"
If Dir(strFile, vbDirectory) <> vbNullString Then
ShellExecute 0, "open", strFile, "", "C:\", SW_SHOWNORMAL
Else
MsgBox "File not Found!"
End If
Else
MsgBox "Το πεδίο είναι κενό"
End If
End Sub


Θα ήθελα να κάνω δύο ερωτήσεις.

1) Εάν τα αρχεία τα έχω αποθηκευμένα σε δύο φακέλους (π.χ. τα μισά στο D:\files και τα άλλα μισά στο Ε:\files) πώς μπορώ να το κάνω να ελέγχει και τους δύο φακέλλους και κατόπιν να βγάζει το ανάλογο μήνυμα όπως βγάζει ήδη.:plaf:

2) Υπάρχει τρόπος η εφαρμογή όταν βρίσκομαι στο ανάλογο αρχείο να ελέγχει εάν υπάρχει αρχείο και εφόσον υπάρχει να αλλάζει χρώμα το πλήκτρο ώστε να γνωρίζω εκ των προτέρων εάν έχει η όχι αρχείο πίσω από το κουμπί.:plaf:


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

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


Search Engine Optimization by vBSEO 3.3.2