Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   DSOframer Control (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/347-dsoframer-control.html)

marios1984 25-01-10 11:52

DSOframer Control
 
καλημερα
εχω ενα πινακα που αποθηκευομαι τιτλους εγγραφων και μια απο τις στηλεσ ειναι το docurl το οποιο μου δειχνει το url του κειμενου
στην αντιστοιχη φορμα , εχω βαλει το dsoframer control .αυτο που θελω ειναι με το κλικ στο κελι docurl να με ανοιγει το αρχειο στο dsoframer control ...ολα τα αρχεια ειναι word
προσπαθησα με κωδικα στο onclick event του docurl αλλα ολες οι προσπαθειες πηγαν απατες ...
οποιαδηποτε υποδηξη θα ηταν βοηθητικη για μενα...
ευχαριστω εκ των προτερων
μαριος

kon73 25-01-10 13:34

Καλησπέρα Μάριε,

Στο Event που θέλεις (Αναφέρεις OnClick του TextBox με όνομα txtURLDOC που περιέχει το URL του κειμένου) θα βάλεις αν πχ ονοματίσεις το DSOFramer Control σου MainFramerControl

Τις εντολές :

Κώδικας:

Dim URL As Sring
URL=me.txtURLDoc
me.MainFramerControl.Open (URL)

Επομένως έτσι θα εμφανίζεται στο DSOFramer το αρχείο που επέλεξες. Να σημειώσω πως η δήλωση URL As String γίνεται και ως Dim URL$

Να σχολιάσω πως ο τρόπος που αναζητάς να εμφανίζεις έγγραφα του Office είναι καλύτερος από το να εμφανίζονται κάνοντας χρήση το αντικείμενο του Internet Explorer.

Tasos 25-01-10 15:46

Καλησπέρα σε όλους!


Μάριε, Ο Κωνσταντίνος ήδη σου έδωσε τη σωστή απάντηση στην ερώτηση αλλά εκτός από το
συμβάν "docurl_Click()", θα σου χρησιμεύσουν και τα συμβάντα του ίδιου του Στοιχείου Ελέγχου.
Έχε υπόψη σου ότι το Στοιχείο Ελέγχου παρέχεται ώς έχει και δεν υποστηρίζεται επίσημα.

Στο παρελθόν είχα φτιάξει κάτι παρόμοιο.
Παραθέτω μέρος του κώδικα που ίσως να σου φανεί χρήσιμο.

Κώδικας:

Option Compare Database
Option Explicit

Private WithEvents oFrame As DSOFramer.FramerControl

Private Sub Form_Load()
    Set oFrame = Me.Framer.Object
    oFrame.BorderStyle = dsoBorder3D
End Sub

Private Sub oFrame_OnDocumentOpened(ByVal File As String, ByVal Document As Object)
    oFrame.MenuBar = True
    oFrame.Toolbars = True
    If Right(Document.FullName, 4) Like "*doc*" Then
        With Document.Application
            .ScreenUpdating = False
            .ActiveWindow.View.Zoom.PageFit = 2
            If .ActiveWindow.View.Zoom.Percentage > 100 Then
                .ActiveWindow.View.Zoom.Percentage = 100
                .ActiveWindow.View.Zoom.PageFit = 0
            End If
            .ScreenUpdating = True
        End With
    End If
End Sub

Private Sub oFrame_BeforeDocumentClosed(ByVal Document As Object, Cancel As Boolean)
    Dim vbPrompt As VbMsgBoxResult
    On Error Resume Next
    If oFrame.IsDirty Then
        vbPrompt = MsgBox("Would you like to save the file before closing it?", _
        vbQuestion Or vbYesNoCancel, "Save Changes?")
        If vbPrompt = vbCancel Then
            Cancel = True
        ElseIf vbPrompt = vbYes Then
            If oFrame.IsReadOnly Or _
                    Len(oFrame.DocumentFullName) = 0 Then
                oFrame.ShowDialog dsoDialogSave
            Else
                oFrame.Save
            End If
        End If
    End If
End Sub


Private Sub  docurl_Click()
    If oFrame Is Nothing Then Set oFrame = Me.Framer.Object
    oFrame.Close
    oFrame.Open docurl
End Sub


Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
        oFrame.Close
              Set oFrame = Nothing
    'DoCmd.Quit
End Sub

Φιλικά

Τάσος

Meteora 25-01-10 16:48

Καλησπέρα σε όλους σας ...
Κρύος ιδρώτας μ' έλουσε! Τι ειναι το αυτό το "DSOFramer Control" ;
Σιγούλια - σιγούλια και ...ελληνικά, παρακαλώ στην όποια απάντησή σας, μη προκληθεί νέο σοκ.
Φιλικά
Νίκος

Tasos 25-01-10 19:17

Αγαπητέ μου φίλε Νίκο, στα Χρήσιμα αρχεία & παραδείγματα > Access Document Viewer,
σε συνημμένο παράδειγμα υπάρχει το Στοιχείο Ελέγχου "DsoFramer.ocx" που αφού το καταχωρήσουμε στο μητρώο των Windows,
μπορούμε να το εισάγουμε σε φόρμες της Access, σε Userform άλλων εφαρμογών του Office ( Word, Excel, Outlook, PowerPoint κτλ.)
αλλά και σε εφαρμογές VB.

Χρησιμοποιείται σαν Container μέσα σε μια φόρμα για να φιλοξενεί κυρίως Word, Excel, PowerPoint.

Φιλικά

Τάσος

marios1984 26-01-10 09:24

καλημερα ...ευχαριστω για τις αμμεσες απαντησεις...λοιπον αρχικα με βαση αυτο που με ειπε ο φιλος κων/ντινος με βγαζει ενα ωραιοτατο error...αφου στις ιδιοτητες το dsoframer δεν βλεπω url γιατι πρεπει να του ορισω url? kai αφου το οριζω τι ειναι αυτο που οριζω?
για να δω μην εχω κανει καμια πατατια...το docurl to εχω ορισει σαν κειμενο και μεσα σαυτο εχω περασει το url το κειμενο πχ C:/dekstop/blablabla.doc και στην φορμα το εχω ονομασει txtdocurl και στο κλικ event εβαλα αυτο που μου προτεινε ο φιλος Κων/νος αφου αλλαξα τα ονοματα βεβαια...και αλλη μια ερωτηση

Έχε υπόψη σου ότι το Στοιχείο Ελέγχου παρέχεται ώς έχει και δεν υποστηρίζεται επίσημα.

δηλαδη?

marios1984 26-01-10 09:27

α και με βγαζει error στο dim url as string
το μηνυμα
user-defined type not defined

kon73 26-01-10 09:42

Καλημέρα Μάριε,

Απαντώντας στις 2 ερωτήσεις σου ξεκινώ με την πρώτη.

1. Το Url δεν είναι property/ιδιότητα του DSOFramer, είναι μια μεταβλητή που απλά παίρνει τιμές από το αντικείμενο txtbox που προφανώς θα έχεις στην φόρμα σου.

Το method/ενέργεια open είναι αυτό που έχει το αντικείμενο DSOFramer. Ωστόσο τα events του φίλου μου Τάσου είναι πολύ καλύτερη λύση από το να τα διαχειρίζεται κανείς από το click του URL.

Χρειάζεται ωστόσο εξοικίωση με τα Events και πιο γενικά με VBA, όμως βλέποντας το URL σου διακρίνω λάθος στους καθέτους που είναι αντίστροφοι από αυτούς που θα έπρεπε. Δηλάδη αντί του C:/dekstop/blablabla.doc θα πρέπει να έχει C:\dekstop\blablabla.doc

Για να εμφανίζονται όμως μηνύματα λάθους κλπ λειτουργίες του αντικειμένου θα πρέπει να διαχειριστείς τα Events που έχει για τον DSOFramer ο Object Explorer στο VBA περιβάλλον της βάσης.

Κλείνοντας μια βέλτιστη λύση είναι να περάσεις ένα δείγμα της βάσης σου στο εδώ Forum και να στο τροποποιήσουμε αναλόγως και φυσικά να δούμε και τα erros που αναφέρεις στο δεύτερο topic σου.

2. Το αντικείμενο DSOFramer αναφέροντας πολύ σωστά ο Τάσος πως δεν υποστηρίζεται από την Microsoft σημαίνει απλά πως επίσημο Support εκεί έξω στο internet για αυτό το αντικείμενο δεν θα βρεις και απλά βασίζεσαι σε γνώσεις διάφορων χρηστών για αυτό το αντικείμενο.

Να ξέρεις ωστόσο ότι το Ms Office Team Development του παρόντος Forum (Μέλη του οποίου είμαστε εγώ και ο Τάσος) θα σταθούμε δίπλα σου και σε όλους του χρήστες φυσικά του Forum σε προβλήματα που θα αντιμετωπίσεις με διάφορα αντικείμενα όπως και το DSOFramer.

Tasos 26-01-10 14:06

2 Συνημμένο(α)
Καλημέρα σε όλους!
Φίλε μου Μάριε, επισύναψα το αρχείο έστειλες στο Ms-Office Development Team (DBMarios.zip) για να το τσεκάρουν και τα υπόλοιπα μέλη.

Σύμφωνα με τον κώδικα του προηγούμενου μου μηνύματος, το όνομα του DsoFramer control
θα πρέπει να είναι Framer και όχι oFrame.

Και το βασικότερο: Μη χρησιμοποιείς ελληνικούς χαρακτήρες στα ονόματα των
αντικειμένων της Access
:031:!!

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


Κάποιες αλλάγές που έκανα στον κώδικα, μπορείς να τις δεις στο συνημμένο DBNew.zip

Δες αρχικά αυτά και...προχωράμε.

Φιλικά

Τάσος

marios1984 27-01-10 08:41

Καλημερα τασο και σε ευχαριστω για την βοηθεια....δεν χρησιμοποιησα ελληνικους χαρακτηρες ...νομιζω δλδ ....ευχαριστω ειλικρινα για την βοηθεια ειναι αυτο που χρειαζομουνα ...θα κοιταξω μπας και μπορεσω να το αυτοματο ποιησω δλδ με το που αλλαζω εγγραφη να με το εμφανιζει κατευθειαν απο κατω το κειμενο...τωρα να προμηθευτω αγγλικο γλωσσικο πακετο λιγο δυσκολο γιατι θα πρεπει να αλλαξει ολη η βαση , αν μπορω να το ορισω ετσι , της δουλειας που ειμαι ....ευχαριστω και παλι και για οποιαδηποτε αλλαη θα ενημερωσω

Tasos 27-01-10 09:41

Καλημέρα Μάριε.
Χαίρομαι που σε βοηθήσαμε!
Όταν λέω ελληνικούς χαρακτήρες, εννοώ τους χαρακτήρες των ονομάτων των αντικειμένων και όχι τους χαρακτήρες της λεζάντας ή της τιμής ενός πεδίου.
Ένα μόνο όνομα στο ΄Εργο VBA με ελληνικούς χαρακτήρες πχ.
Ετικέτα1, Λεπτομέρεια , Κείμενο1, ή Κεφαλίδα φόρμας είναι αρκετό για να σου προκαλέσει προβλήματα.

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

Έπρεπε λοιπόν να κάνω τη φόρμα εξαγωγή σε κάποια άλλη βάση προσωρινά,
να τη διαγράψω και κατόπιν να την εισάγω ξανά για να μπορέσω επιτέλους να την ανοίξω!
Μην σκεφτείς ότι με ενόχλησε κάτι απ όλα αυτά.
Σχεδόν σε καθημερινή βάση αντιμετωπίζω παρόμοιες καταστάσεις (ονόματα αντικειμένων στη γερμανική με χαρακτήρες ö,ä,ü,ß).
Aπλά αναφέρω την εμπειρία μου με την ελπίδα να το διαβάσουν και οι υπόλοιποι και να σκεφτούν πόσες ώρες δουλειάς θα θυσιάσουν αν χρειαστεί να κάνουν κάτι ανάλογο σε κάποια βάση σέ όλα τα αντικείμενα που περιέχονται σε πολλές ίσως δεκάδες Πινάκων, Ερωτημάτων, Μακροεντολών, Λειτουργικών μονάδων, φορμών κλπ.

Είναι κανόνας απαράβατος: Όταν αναπτύσσεις εφαρμογές Access, χρησιμοποιείς την Αγγλική έκδοση ή αγγλικό γλωσσικό πακέτο που δίνουν εγκυρότατα ονόματα στα αντικείμενα.

Διαφορετικά, μετονομάζεις τα πάντα στη Βάση χρησιμοποιώντας λατινικούς χαρακτήρες.


Φιλικά

Τάσος

marios1984 27-01-10 09:47

ΜΜ εχεις δικαιο ....sorry για τον κοπο που σε εβαλα....:(

Tasos 27-01-10 09:57

Κανένα πρόβλημα φίλε μου, δεν είναι κόπος!
Αρκεί να κατανοηθούν και να εφαρμοστούν αυτά που γράφουμε και από τον υπόλοιπο κόσμο που μας διαβάσει.


Η ώρα είναι 22:01.

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


Search Engine Optimization by vBSEO 3.3.2