Θέμα: Ερωτήματα Οριζόντια Εκτύπωση

Εμφάνιση ενός μόνο μηνύματος
  #9  
Παλιά 03-12-10, 18:32
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Μάρω, στη βάση δεδομένων που επισυνάπτω, γίνεται μια προσπάθεια υλοποίησης του ζητούμενου.
Η λύση είναι παρόμοια με τη μία από τις δύο λύσεις που προτείνει ο Γιάννης, με κάποιες διαφορές που ίσως φανούν χρήσιμες (μπορεί και να σε μπερδέψουν ).
Αποτελείται από ένα πίνακα «tblContacts», τα ερωτήματα «qryContacts1», «qryContacts2», «qryContacts3» και τη φόρμα «frmOpenQueries».
Όταν φορτώνεται η φόρμα γεμίζει μία λίστα με τα ονόματα των ερωτημάτων που υπάρχουν στη βάση.
Στη φόρμα μπορούμε να επιλέξουμε τον προσανατολισμό εκτύπωσης σελίδας (κατακόρυφο ή οριζόντιο) και ακολούθως να κάνουμε διπλό κλικ σε ένα ερώτημα της λίστας για να ανοίξει. Ανοίγει σε προβολή φύλλου δεδομένων, ώστε να έχουμε τη δυνατότητα εφαρμογής φίλτρων.
Μετά την εφαρμογή ή όχι κάποιου φίλτρου κάνουμε κλικ στο κουμπί του εκτυπωτή της γραμμής εργαλείων γρήγορης πρόσβασης για να το εκτυπώσουμε.
Με το κλείσιμο της φόρμας ο προσανατολισμός εκτύπωσης επανέρχεται στον αρχικό.
Η λειτουργικότητα της φόρμας οφείλεται στον παρακάτω κώδικα.
Κώδικας:
Private Sub Form_Close()
    'Επαναφέρεται ο αρχικός προσανατολισμός σελίδας
    Application.Printer.Orientation = Me!lblDefaultPrinter.Tag
End Sub

Private Sub Form_Load()
    
    Dim qd As DAO.QueryDef
    
    'Αποθήκευση προσανατολισμού σελίδας προεπιλεγμένου εκτυπωτή
    Me!lblDefaultPrinter.Tag = Application.Printer.Orientation
    Me.optOriontation = Application.Printer.Orientation
    
    
    Me!lstQueries.RowSourceType = "Value List"
    Me.lstQueries.RowSource = ""        'άδεισμα λίστας
    'Γέμισμα της λίστας με τα ερωτήματα της βάσης δεδομένων
    For Each qd In CurrentDb.QueryDefs
        Me.lstQueries.AddItem qd.Name
    Next
    Me!lstQueries.SetFocus
    Me!lstQueries.ListIndex = 0
    Set qd = Nothing
    
End Sub

Private Sub lstQueries_DblClick(Cancel As Integer)
    'Ορισμός προσανατολισμού σελίδας
    Application.Printer.Orientation = Me.optOriontation
    
    'Εμφανίζει το ερώτημα σε μορφή κανονική για εφαρμογή φίλτρων
    DoCmd.OpenQuery Me.lstQueries, acViewNormal
End Sub
Φιλικά/Γιώργος
Υ.Γ Γιάννη είσαι πολύ γρήγορος. Με πρόλαβες.....
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb PrintQueriesLandscape.mdb (264,0 KB, 31 εμφανίσεις)
Απάντηση με παράθεση