Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Αλλαγή προβολής σε παράθυρο των Windows
Καλημέρα σε όλους! Το ερωτημά μου νομίζω αφορά api Στο συνημμένο παράδειγμα όταν από τη φόρμα Test πατάω προσθήκη θέλω το παράθυρο των Windows για αναζήτηση αρχείου να ανοίγει μεγιστοποιημένο και προβολή λεπτομέρειες. Αν κάποιος μπορεί ας βοηθήσει. Ευχαριστώ εκ των προτέρων. Φιλικά Δημήτρης |
#2
| |||
| |||
καλημέρα αυτό γίνεται μάλλον μόνο με VBA |
#3
| ||||
| ||||
Καλησπέρα! Δημήτρη, δοκίμασε τον παρακάτω κώδικα στη φόρμα σου (test). Ο κώδικας αυτός λειτουργεί αυτόνομα (δεν εξαρτάται από τις συναρτήσεις των άλλων λειτουργικών μονάδων της εφαρμογής): Πρόσθεσε πρώτα την αναφορά Microsoft Scripting Runtime (Tools > References) Κώδικας: Option Compare Database Option Explicit Private Const strOpenTitle = "Εισαγωγή" Private Const strDlgTitle = "Επιλογή αρχείου..." Private Const DlgClass = "#32770" Private Const SW_MAXIMIZE = 3& Private Const SW_SHOWNORMAL = 1& Private hw As Long Private Const strFilter = "Όλα τα αρχεία (*.*)|Αρχεία Word (*.doc)|Αρχεία Excel (*.xls)|Αρχεία Pdf (*.pdf)|Αρχεία (*.rtf)" Private Declare Function ShowWindow Lib "user32" (ByVal _ hwnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 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 Private fso As New Scripting.FileSystemObject Private Function GetFilePath() As String Dim strFile As String, strInitialDir As String strInitialDir = CurrentProject.Path 'ή πχ. "C:\" WizHook.Key = 51488399 Me.TimerInterval = 1000 WizHook.GetFileName 0, "", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, 0, 0, 64, True GetFilePath = strFile End Function Private Sub Form_Timer() If hw Then Me.TimerInterval = 0: hw = 0: Exit Sub hw = FindWindow(DlgClass, strDlgTitle) ShowWindow hw, SW_MAXIMIZE End Sub Private Sub cmdAddSmall_Click() On Error GoTo cmdAddSmall_Err Dim strFilename As String strFilename = GetFilePath If Len(strFilename) Then Me![FilePath] = strFilename Me.DocumentTitle = fso.GetFileName(strFilename) Me.FolderName = fso.GetParentFolderName(strFilename) End If cmdAddSmall_End: Exit Sub cmdAddSmall_Err: MsgBox Err & vbLf & Err.Description Resume cmdAddSmall_End End Sub Private Sub cmdOpenWordDoc_Click() Dim strFilename As String, lp_Directory As String strFilename = Nz(Me.FilePath, "") If Len(Trim(strFilename)) = 0 Then MsgBox "Παρακαλώ βεβαιωθείτε ότι η διαδρομή για αυτό το έγγραφο είναι σωστή.", vbInformation, "Προσοχή!" ElseIf Not fso.FileExists(strFilename) Then MsgBox "Το έγγραφο δεν βρέθηκε." & vbCrLf & "Παρακαλώ αναζητήστετο ξανά.", vbExclamation, "Λυπάμαι!" Else lp_Directory = Nz(Me.FolderName, "") If Not fso.FolderExists(lp_Directory) Then lp_Directory = "C:\" ShellExecute 0, "open", strFilename, "", lp_Directory, SW_SHOWNORMAL End If End Sub Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 17-07-12 στις 13:28. |
#4
| |||
| |||
Καλημέρα σε όλους τους φίλους. Τάσο είδα την απαντησή σου και σε ευχαριστώ για το χρόνο σου. Δουλεύει, το παράθυρο ανοίγει σε προβολή λεπτομέρειες, δεν γίνεται maximize αλλά δεν πειράζει. Όμως δεν πάει στον φάκελο από όπου πρόσθεσα το τελευταίο αρχείο. Ανοίγει πάντα στο φάκελο που έχω τη βάση πράγμα που δεν εξυπηρετεί. Προσπαθώ να βάλω σε τάξη εκατοντάδες αρχεία ( ερωτήματα - αποφάσεις-κλπ) σκορπισμένα σε διάφορους φακέλους και ήθελα να κάνω ευκολότερη την αναζήτηση. Μια ερώτηση μόνο στο strFilter ποιά είναι η σύνταξη για το OR ώστε να προβάλλει δύο τύπους αρχείων ταυτόχρονα πχ (*.doc) και (*.xls) Και πάλι ευχαριστώ Φιλικά Δημήτρης. |
#5
| ||||
| ||||
Καλησπέρα Δημήτρη! Πρέπει να δουλέψει η μεγέθυνση τουλάχιστον σε Windows 7. Δεν μπόρεσα να το δοκιμάσω σε XP. Ωστόσο δοκίμασε να αυξήσεις το χρόνο στο χρονόμετρο της φόρμας από 1000 σε κάτι μεγαλύτερο (Me.TimerInterval = 1500). Δεν πρόκειται για ένα απλό παράθυρο αλλά για παράθυρο διαλόγου που όταν είναι ανοιχτό διακόπτεται η εκτέλεση του κώδικα με αποτέλεσμα να μην μπορεί να εκτελεστεί ο κώδικας εκείνος που θα βρει και θα μεγιστοποιήσει το παράθυρο αυτό. Όσο για τη διαδρομή φακέλου δοκίμασε: Κώδικας: Private Function GetFilePath() As String Dim strFile As String, strInitialDir As String strInitialDir = Nz(Me.FolderName, "") If Trim(strInitialDir) = "" Then strInitialDir = CurDir WizHook.Key = 51488399 Me.TimerInterval = 1500 WizHook.GetFileName 0, "", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, 0, 0, 64, True GetFilePath = strFile End Function Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
Καλησπέρα Τάσο! Όλα δουλεύουν άψογα. Σε ευχαριστώ πάρα πολύ. Δεν μεγιστοποιεί το παράθυρο αλλά το κρατάει στο μέγεθος που το χρησιμοποίησα την τελευταία φορά οπότε είναι και καλύτερα. Ακόμη και όταν κλείνω και ξανανοίγω τη βάση κρατάει το τελευταίο μέγεθος. Και η διαδρομή φακέλου εντάξει. Έχω Windows XP θα το δοκιμάσω και σε 7 που έχει ο γιος μου. Και πάλι ευχαριστώ Φιλικά Δημήτρης. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Συναρτήσεις] Αλλαγη ημερομηνία έπειτα απο αλλαγή | xaralampos | Excel - Ερωτήσεις / Απαντήσεις | 1 | 24-06-16 22:45 |
[Excel07] Μετατροπή προβολής δεδομένων | γιώργοςΚ | Excel - Ερωτήσεις / Απαντήσεις | 8 | 14-12-15 18:37 |
[Γενικά] Νέο παράθυρο | manolis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 26-02-15 22:39 |
[ Ερωτήματα ] ΗΕμφάνιση ημερολογίου σε αναδυόμενο παράθυρο της Access | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 9 | 18-09-14 20:23 |
Η ώρα είναι 09:00.