Ανανέωση ιστοσελίδας

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 15-02-14, 16:21
Όνομα: Θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-12-2013
Μηνύματα: 21
Προεπιλογή docmd.maximize

Καλησπέρα σε όλους
έχω ένα πρόβλημα σχετικά με την εντολή docmd.maximize εφαρμόζοντας την εντολή σε φόρμες, μου ανοίγει την φόρμα σε όλη την οθόνη και πίσω από την μπάρα τον windows (startup) με αποτέλεσμα να μου καλύπτει κάποιο κομμάτι της φόρμας.
τι ρύθμιση έχω κάνει λάθος?

Σας ευχαριστώ για το χρόνο σας.
Απάντηση με παράθεση
  #2  
Παλιά 16-02-14, 09:57
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα Θοδωρή!

Κανονικά δεν συμβαίνει κάτι τέτοιο εκτός και αν η ιδιότητα "Στυλ περιγράμματος" μιας αναδυόμενης φόρμας έχει οριστεί σε "Κανένα".

Ή λοιπόν αλλάζεις το στυλ περιγράμματος της φόρμας για να λειτουργήσει σωστά η μακροεντολή
ή χρησιμοποιείς συναρτήσεις των Windows API κατά τη φόρτωση της φόρμας για να μην καλύψει
ή να μην καλυφθεί από την μπάρα εργασίας του λειτουργικού.

Ο κώδικας VBA σ΄αυτή την περίιπτωση είναι:


Κώδικας:
Option Compare Database
Option Explicit

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Declare Function SystemParametersInfo Lib "user32" Alias _
    "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef _
    lpvParam As RECT, ByVal fuWinIni As Long) As Long
    
Private Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal _
    x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal _
    bRepaint As Long) As Long
    
Private Const SPI_GETWORKAREA = 48

' Private Sub cmdClose_Click()
     ' DoCmd.Close acForm, Me.Name
' End Sub

Private Sub Form_Load()
    Dim oRect As RECT
    Dim ret As Long
    ret = SystemParametersInfo(SPI_GETWORKAREA, 0, oRect, 0)
    If ret <> 0 Then
        ret = MoveWindow(Me.hwnd, oRect.Left, oRect.Top, (oRect.Right - oRect.Left), (oRect.Bottom - oRect.Top), 1)
    End If
End Sub
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 16-02-14, 10:27
Όνομα: Χρήστος Φ.
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 498
Προεπιλογή

καλημέρα
Αν σχεδιαστεί η φόρμα για ανάλυση full hd, όταν θα ανοίξει σε άλλη "μικρότερη" ανάλυση, θα γίνει η μεγιστοποίηση αλλά τα controls θα προβάλλονται όμορφα στην οθόνη ή όχι;
Απάντηση με παράθεση
  #4  
Παλιά 16-02-14, 12:03
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Χρήστο, αν μια φόρμα έχει σχεδιαστεί για να λειτουργήσει σε οθόνες με διαστάσεις πχ. 1920 * 1080,
εάν μεγιστοποιηθεί σε κάποια οθόνη με μικρότερη αναλυτικότητα (πχ. 1280 * 720) πολύ απλά τα στοιχεία που περιέχονται στα δεξιά της φόρμας δεν θα εμφανιστούν καθόλου.

Γενικότερα οι φόρμες θα πρέπει να σχεδιάζονται για να "χωράνε" στις οθόνες των υπολογιστών προορισμού, όσο μικρές και αν είναι αυτές χωρίς να επηρεάζεται η λειτουργικότητα των πρώτων.

Σήμερα μπορούμε να θεωρήσουμε ως ελάχιστο πλάτος μια οθόνης τα 1280 px.
Υπάρχουν ελάχιστοι υπολογιστές που διαθέτουν οθόνες με ακόμα χαμηλότερη ανάλυση οθόνης.

Με γνώμονα λοιπόν τα παραπάνω και με σεβασμό στο περιβάλλον εργασίας του χρήστη (μην του καλύπτουμε την μπάρα εργασίας για παράδειγμα), σχεδιάζουμε τις φόρμες φροντίζοντας να υπάρχει ομοιογένεια, συμμετρία, αλλά και αυξομοίωση του πλάτους ή ύψους των στοιχείων χρησιμοποιώντας ρυθμίζοντας τις ιδιότητες "Οριζόντια ή κατακόρυφη αγκύρωση".
Περισσότερες λεπτομέρειες υπάρχουν εδώ: Make controls stretch, shrink, or move as you resize a form - Access - Office.com

Οι ιδιότητες "Οριζόντια ή κατακόρυφη αγκύρωση" δεν υπάρχουν σε εκδόσεις microsoft Access < 2007.

Υπάρχει ένα απλό παράδειγμα στο φόρουμ όπου αυξομειώνονται οι διαστάσεις αντικειμένων με χρήση VBA.
Ο σύνδεσμος: http://www.ms-office.gr/forum/14682-post4.html

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 16-02-14, 18:16
Όνομα: Θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-12-2013
Μηνύματα: 21
Προεπιλογή

Ευχαριστώ πολύ Taso.

Έκανα αλλαγή στην ιδιότητα "Στυλ περιγράμματος" αναδυόμενης φόρμας που είχα ορίσει σε "Μεγάλο" το άλλαξα σε "Λεπτό" και τώρα βγαίνει πάνω από την μπάρα των windows.
και πάλι ευχαριστώ πολύ για την πολύτιμη βοήθεια σου.

Θοδωρής.
Απάντηση με παράθεση
  #6  
Παλιά 19-02-14, 00:45
Όνομα: Χρήστος Φ.
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 498
Προεπιλογή

Τάσο σ' ευχαριστώ κι εγώ με τη σειρά μου για τις κατευθύνσεις σου. Θα επεξεργαστώ όσα ανέφερες.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Docmd.maximize posidonas Access - Ερωτήσεις / Απαντήσεις 0 15-02-14 15:33
Μέθοδος OpenReport του αντικειμένου DoCmd ΤΖΙΜΗΣ Access - Ερωτήσεις / Απαντήσεις 3 10-07-11 21:58


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