ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: Υλοποίηση προγράµµατος σε Visual Basic µε σκοπό τη δηµιουργία του προγράµµατος εξεταστικής του Τ.Ε.Ι.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: Υλοποίηση προγράµµατος σε Visual Basic µε σκοπό τη δηµιουργία του προγράµµατος εξεταστικής του Τ.Ε.Ι."

Transcript

1 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: Υλοποίηση προγράµµατος σε Visual Basic µε σκοπό τη δηµιουργία του προγράµµατος εξεταστικής του Τ.Ε.Ι. Σπουδαστής : ιακοµηνάς Μανόλης Εισηγητής : Τζαβόπουλος Βαγγέλης

2 Σκοπός αυτής της άσκησης είναι η υλοποίηση ενός προγράµµατος το οποίο θα δηµιουργεί το πρόγραµµα της εξεταστικής του Τ.Ε.Ι. Για τη δηµιουργία αυτού του προγράµµατος ζητήθηκαν τα παρακάτω : 1. Το πρόγραµµα να δουλεύει σε παραθυρικό περιβάλλον των Windows. 2. Το πρόγραµµα να κάνει βέλτιστη επιλογή αιθουσών ανάλογα µε το πλήθος των σπουδαστών. 3. Να µην επιτρέπει την εισαγωγή δυο µαθηµάτων ίδιου εξαµήνου την ίδια µέρα 4. Να επιτρέπει εισαγωγή και διαγραφή αιθουσών και θέσεων κάθε αίθουσας. 5. Να επιτρέπει εισαγωγή και διαγραφή ηµερών. 6. Να εκτυπώνει τα αποτελέσµατα. Για την επίλυση του πρώτου ζητήµατος τέθηκε η ανάγκη επιλογής µιας Visual γλώσσας η οποία να επιτρέπει εύκολη πρόσβαση σε βάσεις δεδοµένων. Μια τέτοια γλώσσα είναι η Visual Basic η οποία σε συνεργασία µε την Access µας επιτρέπει εύκολη πρόσβαση σε δεδοµένα τα οποία είναι αποθηκευµένα σε βάσεις δεδοµένων οι οποίες έχουν δηµιουργηθεί στο περιβάλλον της Access. Οι βάσεις που δηµιουργήθησαν σε Access είναι οι παρακάτω : Οι βάσεις 1-5 είναι οι κύριες βάσεις. Οι βάσεις 6,7 είναι βοηθητικές. Και οι βάση 8 χρησιµοποιείτε για την εκτύπωση. 1

3 Η Visual Basic µας δίνει την δυνατότητα να εργαστούµε σε παραθυρικό περιβάλλον, µας παρέχει πληθώρα εργαλείων µε τα οποία µπορούµε να δηµιουργήσουµε τις δικές µας φόρµες πολύ εύκολα και απλά. Η Visual Basic µας παρέχει δυο µεθόδους πρόσβασης δεδοµένων: Ένα στοιχείο ελέγχου δεδοµένων και ένα αντικείµενο πρόσβασης δεδοµένων. Το στοιχείο ελέγχου δεδοµένων µπορεί να δηµιουργηθεί για να λειτουργεί µε ένα ελάχιστο τµήµα κώδικα, ενώ το αντικείµενο πρόσβασης δεδοµένων επιτρέπει πιο δυνατές λειτουργίες. Έτσι µε αυτές τις µεθόδους µπορούµε να έχουµε γρήγορη και εύκολη προσπέλαση στα δεδοµένα µας. Παρακάτω ακολουθεί ένα γενικό διάγραµµα του προγράµµατος : Σχήµα 1 ΑΝΑΛΥΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Το πρόγραµµα αποτελείτε από πέντε φόρµες. Κάθε ένα από τα παραπάνω κουτιά αποτελεί µια φόρµα. Η κάθε µια φόρµα αποτελεί κι από ένα ξεχωριστό κοµµάτι του προγράµµατος γι αυτό το λόγο θα γίνει ξεχωριστά λεπτοµερής ανάλυση για κάθε µια από τις παραπάνω φόρµες. ΚΥΡΙΑ ΦΟΡΜΑ Η κύρια φόρµα αποτελείτε από πέντε ενεργά κουµπιά, όπως φαίνετε στην Εικόνα 1, µε τα οποία µπορούµε να επιλέξουµε µια από τις παρακάτω λειτουργίες. 1. Εισαγωγή / ιαγραφή Μαθήµατος & ηµιουργία προγράµµατος. 2. Εισαγωγή / ιαγραφή Αίθουσας. 3. Εισαγωγή / ιαγραφή Ηµέρας. 4. Εκτύπωση. 5. Έξοδος. 2

4 Εικόνα 1 (ΚΥΡΙΑ ΦΟΡΜΑ) Πίνακας 1 Αντικείµενα και ιδιότητες της Κύριας Φόρµας. ΑΝΤΙΚΕΙΜΕΝΟ Ι ΙΟΤΗΤΑ ΤΙΜΗ Form MAIN ΚΥΡΙΑ ΦΟΡΜΑ Data Database RecordSourse Visible False Data Data Label Database RecordSourse Visible Database RecordSourse Visible Font Data6 C:\Program Files\MAIN\δβ2.mdb TABLE6 Data7 C:\ Program Files\MAIN \δβ2.mdb TABLE7 False Data8 C:\ Program Files\MAIN \δβ2.mdb TABLE3 False Label1 Α.Τ.Ε.Ι ΚΡΗΤΗΣ Monotype Corsiva 3

5 Label Label Font Label2 ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ MS Sans Serif Label3 ΙΚΟΜΗΝΑΣ ΜΑΝΟΛΗΣ Font MS Sans Serif Label Font Image Image2 CommandButton CommandButton CommandButton CommandButton CommandButton Label4 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ MS Serif Command7 ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Command6 ΕΚΤΥΠΩΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Command3 ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΑΙΘΟΥΣΑΣ Command5 ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΗΜΕΡΑΣ Command1 ΕΞΟ ΟΣ Ανάλυση κώδικα της ΚΥΡΙΑΣ ΦΟΡΜΑΣ Πίσω από το κουµπί (ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ) υπάρχει ο παρακάτω κώδικας : Private Sub Command7_Click() If Not Data6.Recordset.BOF Then Data6.Recordset.MoveFirst Do While Not Data6.Recordset.EOF Data6.Recordset.Delete Data6.Refresh If Not Data7.Recordset.BOF Then Data7.Recordset.MoveFirst Do While Not Data7.Recordset.EOF Data7.Recordset.Delete Data7.Refresh 4

6 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF Data8.Recordset.Delete Data8.Refresh ADD_DEL1.Show Με τον κώδικα αυτό γίνετε ολική διαγραφή των δεδοµένων που υπάρχουν στις βοηθητικές βάσεις 6,7 και 8. στη συνέχεια µας εµφανίζει τη φόρµα για την Εισαγωγή / ιαγραφή Μαθήµατος & ηµιουργία προγράµµατος. Η ολική διαγραφή των βάσεων 6,7 και 8 γίνετε για να µην υπάρχουν δεδοµένα όταν θα γίνει µια νέα δηµιουργία προγράµµατος, έτσι ώστε να αποφευχθεί η καταχώριση δυο ή και περισσότερων όµοιων εγκραφών πράγµα που θα προκαλούσε σφάλµα στην µετέπειτα εκτέλεση του προγράµµατος. Πίσω από το κουµπί (ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΑΙΘΟΥΣΑΣ) υπάρχει ο παρακάτω κώδικας : Private Sub Command3_Click() ADD_DEL2.Show Ο κώδικας αυτός απλά εµφανίζει τη φόρµα για την Εισαγωγή / ιαγραφή Αίθουσας. Πίσω από το κουµπί (ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΗΜΕΡΑΣ) υπάρχει ο παρακάτω κώδικας : Private Sub Command5_Click() ADD_DEL3.Show Ο κώδικας αυτός απλά εµφανίζει τη φόρµα για την Εισαγωγή / ιαγραφή Ηµέρας. Πίσω από το κουµπί (ΕΚΤΥΠΩΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ) υπάρχει ο παρακάτω κώδικας : Private Sub Command6_Click() 5

7 EKTYPOSH.Show Ο κώδικας αυτός απλά εµφανίζει τη φόρµα για την εκτύπωση του προγράµµατος. Πίσω από το κουµπί (ΕΞΟ ΟΣ) υπάρχει ο παρακάτω κώδικας : Private Sub Command1_Click() Dim question As String Dim answer As VbMsgBoxResult question = "ΣΙΓΟΥΡΑ ΘΕΛΕΤΕ ΝΑ ΤΕΡΜΑΤΙΣΤΕΙ Η ΕΦΑΡΜΟΓΗ;" answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then End Ο κώδικας αυτός εµφανίζει το παρακάτω µήνυµα (Εικόνα 2) µε το οποίο γίνετε επιβεβαίωση στο αν θέλουµε να τερµατιστεί η εφαρµογή. Αν η απάντηση είναι θετική, δηλαδή αν πατηθεί το κουµπί ΝΑΙ, τότε η εφαρµογή τερµατίζεται, αν η απάντηση είναι αρνητική, δηλαδή αν πατηθεί το κουµπί ΟΧΙ, τότε η εφαρµογή δεν τερµατίζεται. Εικόνα 2 Τα Data 6, Data 7, Data 8 (βλ. Εικόνα 1) είναι αντικείµενα ελέγχου δεδοµένων µε τα οποία γίνετε η σύνδεση των βάσεων µε το πρόγραµµα. Στις ιδιότητες των Data δίνονται το όνοµα της βάσης και το πλήρες µονοπάτι που αυτή είναι αποθηκευµένη καθώς και ο συγκεκριµένος πίνακας που θα συνδεθεί µε την εφαρµογή. Τα συγκεκριµένα αντικείµενα έχουν οριστεί από τις ιδιότητες να µην είναι ορατά όταν εκτελείτε η εφαρµογή. 6

8 ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Στη φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ (Εικόνα 3) µπορούν να γίνουν τα εξής : 1. Εισαγωγή ενός νέου µαθήµατος σε συγκεκριµένο εξάµηνο έτσι ώστε να υπάρχει στη βάση και να µπορεί να χρησιµοποιηθεί στη δηµιουργία του προγράµµατος. 2. ιαγραφή κάποιου µαθήµατος το οποίο δεν διδάσκετε πια, από την βάση. 3. ηµιουργία προγράµµατος. Η δηµιουργία του προγράµµατος γίνετε ως εξής : Για κάθε µάθηµα που επιλέγουµε από τη λίστα δίνουµε τον αριθµό των µαθητών που οφείλουν αυτό το µάθηµα. Στη συνέχεια γίνετε καταχώριση, είτε έµµεση καταχώριση, είτε άµεση. Στην άµεση καταχώριση µπορούµε να επιλέξουµε εµείς την ηµέρα και την ώρα που θα καταχωρηθεί το µάθηµα, ενώ στην έµµεση καταχώριση την επιλογή την κάνει το πρόγραµµα µε διάφορα κριτήρια που θα δούµε παρακάτω. Εικόνα 3 (Φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΠΡΟΓΡΑΜΜΑΤΟΣ). ΗΜΙΟΥΡΓΙΑ 7

9 Πίνακας 2 Αντικείµενα και ιδιότητες της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΑΝΤΙΚΕΙΜΕΝΟ Ι ΙΟΤΗΤΑ ΤΙΜΗ Form ADD_DEL1 ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Data Data Data Data Data Data Data Data Data Data Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible Database RecordSourse Visible TextBox EXAMINO Data1 C:\ Program Files\MAIN \δβ1.mdb TABLE1 False Data2 C:\ Program Files\MAIN \δβ1.mdb TABLE2 False Data3 C:\ Program Files\MAIN \δβ1.mdb TABLE3 False Data4 C:\ Program Files\MAIN \δβ2.mdb TABLE8 False Data5 C:\ Program Files\MAIN \δβ2.mdb TABLE5 False Data6 C:\ Program Files\MAIN \δβ1.mdb TABLE6 False Data7 C:\ Program Files\MAIN \δβ1.mdb TABLE7 False Data8 C:\ Program Files\MAIN \δβ2.mdb TABLE3 False Data9 C:\ Program Files\MAIN \δβ2.mdb TABLE1 False Data10 C:\ Program Files\MAIN \δβ2.mdb TABLE2 False 8

10 TextBox MATHIMA TextBox Text1 TextBox EXAMHNO TextBox MATIMA Label Label3 ΕΞΑΜΗΝΟ Label Label1 Label Label Label Label Label Label Label Label Label CommandButton CommandButton CommandButton CommandButton OptionButton OptionButton OptionButton OptionButton ListBox List1 ListBox List2 ComboBox Combo1 ComboBox Combo2 ΜΑΘΗΜΑ Label2 ΑΡΙΘΜΟΣ ΜΑΘΗΤΩΝ ΠΟΥ ΕΧΟΥΝ ΤΟ ΜΑΘΗΜΑ Label4 ΕΞΑΜΗΝΟ Label5 ΜΑΘΗΜΑ Label6 ΗΜΕΡΑ Label7 ΩΡΑ Label11 EMΜΕΣΗ ΚΑΤΑΧΩΡΗΣΗ Label9 ΑΜΕΣΗ ΚΑΤΑΧΩΡΗΣΗ Label8 ΕΝΕΡΓΟΠΟΙΗΣΗ ΕΠΙΛΟΓΗΣ ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Label10 ΙΑΓΡΑΦΗ ΣΥΝΟΛΟΥ ΜΑΘΗΤΩΝ ΟΛΩΝ ΤΩΝ ΜΑΘΗΜΑΤΩΝ Command1 ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Command2 OK Command3 OK Command5 OK Option1 Option1 Option2 Option2 Option3 Option3 Option4 Option4 9

11 Check Box Check1 Χρησιµοποιώντας το Menu Editor (βρίσκεται στα tools) δηµιουργούµε τις εισαγωγές που παρατίθενται στον Πινακα2. Πίνακας 3 Καθορισµός Μενού για την ADD_DEL1.FRM ΛΕΖΑΝΤΑ ΟΝΟΜΑ ΕΠΕΞΕΡΓΑΣΙΑ ΕΠΕΞΕΡΓΑΣΙΑ.ΑΠΟΘΗΚΕΥΣΗ ΑΠΟΘΗΚΕΥΣΗ. ΙΑΓΡΑΦΗ ΙΑΓΡΑΦΗ ΒΟΗΘΕΙΑ ΒΟΗΘΕΙΑ ΕΞΟ ΟΣ ΕΞΟ ΟΣ Ανάλυση κώδικα της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Πίσω από την επιλογή ΑΠΟΘΗΚΕΥΣΗ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Save_Click() Dim I, MAH, MAM As Integer Dim question As String Dim answer As VbMsgBoxResult If MATHIMA.Text = "" Or EXAMINO.Text = "" Then MsgBox ("ΤΑ ΠΕ ΙΑ ΕΞΑΜΗΝΟ ΚΑΙ ΜΑΘΗΜΑ ΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΕΧΟΥΝ ΜΗ ΕΝΙΚΕΣ ΤΙΜΕΣ. ΚΑΤΑΧΩΡΙΣΤΕ ΤΙΜΕΣ ΣΤΑ ΠΕ ΙΑ ΚΑΙ ΠΡΟΣΠΑΘΗΣΤΕ ΞΑΝΑ. ") Exit Sub I = 0 MAH = 0 MAM = 0 If Not Data3.Recordset.EOF Then Data3.Recordset.MoveLast MAH = Data3.Recordset.Fields("HMERES") If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("EXAMINO") = EXAMINO.Text Then MAM = MAM + 1 If Not Data1.Recordset.EOF Then Data1.Recordset.MoveNext 10

12 If MAM >= MAH Then MsgBox (" ΕΝ ΕΠΙΤΡΕΠΕΤΑΙ Ο ΑΡΙΘΜΟΣ ΤΩΝ ΜΑΘΗΜΑΤΩΝ ΕΝΟΣ ΕΞΑΜΗΝΟΥ ΝΑ ΞΕΠΕΡΝΑ ΤΟ ΣΥΝΟΛΟ ΤΩΝ ΗΜΕΡΩΝ ΤΗΣ ΕΞΕΤΑΣΤΙΚΗΣ") Exit Sub If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("MATHIMA") = MATHIMA.Text And Data1.Recordset.Fields("EXAMINO") <> EXAMINO.Text Then question = "ΤΟ ΜΑΘΗΜΑ ΑΥΤΟ ΕΙ Η ΥΠΑΡΧΕΙ ΣΕ ΑΛΛΟ ΕΞΑΜΗΝΟ. ΘΕΛΕΤΕ ΝΑ ΓΙΝΕΙ ΜΕΤΑΦΟΡΑ ΑΥΤΟΥ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΣΕ ΑΛΛΟ ΕΞΑΜΗΝΟ ;" answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then Data1.Recordset.Delete Data1.Refresh If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("EXAMINO") = exam Then I = 1 Data1.Recordset.MoveNext If I = 0 Then If Not Data9.Recordset.BOF Then Data9.Recordset.MoveFirst Do While Not Data9.Recordset.EOF If Data9.Recordset.Fields("EXAMINO") = EXAMINO.Text Then Data9.Recordset.Delete Data9.Recordset.MoveNext Data5.Recordset.MoveFirst Do While Not Data5.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = MATHIMA.Text Then indelete = True Data5.Recordset.Delete If Data5.Recordset.BOF Then Data5.Recordset.MoveFirst Data5.Refresh indelete = False 11

13 Data5.Recordset.MoveNext Else Exit Sub Else If Data1.Recordset.Fields("MATHIMA") = MATHIMA.Text And Data1.Recordset.Fields("EXAMINO") = EXAMINO.Text Then MsgBox ("ΤΟ ΜΑΘΗΜΑ ΑΥΤΟ ΕΙ Η ΥΠΑΡΧΕΙ") Exit Sub If Not Data1.Recordset.EOF Then Data1.Recordset.MoveNext If Not Data9.Recordset.BOF Then Data9.Recordset.MoveFirst Do While Not Data9.Recordset.EOF If Data9.Recordset.Fields("EXAMINO") = EXAMINO.Text Then I = 1 Data9.Recordset.MoveNext If I = 0 Then If Not Data9.Recordset.EOF Then Data9.Recordset.MoveLast Data9.Recordset.AddNew Data9.Recordset.Fields("EXAMINO") = EXAMINO.Text Data9.Recordset.Update Data9.Refresh Data1.Recordset.MoveLast Data1.Recordset.AddNew Data1.Recordset.Fields("EXAMINO") = EXAMINO.Text Data1.Recordset.Fields("MATHIMA") = MATHIMA.Text Data1.Recordset.Update Data1.Refresh Στον κώδικα αυτό αρχικά γίνεται έλεγχος αν έχουν καταχωρηθεί τιµές στα κουτιά (Text Box) EXAMINO και MATHIMA. Αν έστω σε ένα από αυτά τα κουτιά δεν έχει καταχωρηθεί τιµή τότε εµφανίζεται το παρακάτω µήνυµα: 12

14 Εικόνα 4 Στη συνέχεια γίνεται έλεγχος αν ο αριθµός των µαθηµάτων του συγκεκριµένου εξαµήνου είναι µικρότερος από τον αριθµό των ηµερών της εξεταστικής περιόδου. Όταν ο αριθµός των µαθηµάτων του συγκεκριµένου εξαµήνου υπερβαίνει τον αριθµό των ηµερών της εξεταστικής περιόδου τότε εµφανίζεται το παρακάτω µήνυµα: Εικόνα 5 Έπειτα γίνεται έλεγχος σε όλες τις εγγραφές της Βάσης 1. Αν το πεδίο ΜΑΘΗΜΑ της Βάσης 1 είναι ίδιο µε το µάθηµα που έχει καταχωρηθεί στο TextBox MATHIMA αλλά το πεδίο ΕΞΑΜΗΝΟ της συγκεκριµένης εγγραφής είναι διαφορετικό από το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMINO τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 6 Αν η απάντηση στο µήνυµα είναι Όχι τότε δεν γίνεται τίποτα, ενώ αν η απάντηση είναι Ναι τότε το µάθηµα διαγράφεται (ολική διαγραφή της συγκεκριµένης εγγραφής από τη Βάση 1) και δηµιουργείται µια νέα εγγραφή µε το µάθηµα και το νέο εξάµηνο. Επίσης αν δεν υπάρχει άλλο µάθηµα του ίδιου 13

15 εξαµήνου τότε διαγράφεται και το συγκεκριµένο εξάµηνο από τη Βάση 4. Αν το πεδίο ΜΑΘΗΜΑ της Βάσης 1 είναι ίδιο µε το µάθηµα που έχει καταχωρηθεί στο TextBox MATHIMA και το πεδίο ΕΞΑΜΗΝΟ της συγκεκριµένης εγγραφής είναι ίδιο µε το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMINO τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 7 Αν το µάθηµα δεν υπάρχει καθόλου στη Βάση 1 τότε δηµιουργείται µια νέα εγγραφή στη Βάση 1 µε το µάθηµα που έχει καταχωρηθεί στο TextBox MATHIMA και το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMINO. Επίσης αν το εξάµηνο δεν υπάρχει στη Βάση 4 τότε δηµιουργείται µια νέα εγγραφή στη Βάση 4 µε το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMINO. Πίσω από την επιλογή ΙΑΓΡΑΦΗ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Delete_Click() Dim I As Integer Dim question As String Dim answer As VbMsgBoxResult I = 0 question = "ΘΕΛΕΤΕ ΝΑ ΙΑΓΡΑΦΕI TO MAΘΗΜΑ " + _ MATHIMA.Text answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("MATHIMA") = MATHIMA.Text Then indelete = True Data1.Recordset.Delete If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Data1.Refresh indelete = False Data1.Recordset.MoveNext 14

16 Data5.Recordset.MoveFirst Do While Not Data5.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = MATHIMA.Text Then indelete = True Data5.Recordset.Delete If Data5.Recordset.BOF Then Data5.Recordset.MoveFirst Data5.Refresh indelete = False Data5.Recordset.MoveNext If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("EXAMINO") = EXAMINO.Text Then I = 1 Data1.Recordset.MoveNext If I = 0 Then If Not Data9.Recordset.BOF Then Data9.Recordset.MoveFirst Do While Not Data9.Recordset.EOF If Data9.Recordset.Fields("EXAMINO") = EXAMINO.Text Then Data9.Recordset.Delete Data9.Recordset.MoveNext Όταν επιλεγεί η επιλογή ΙΑΓΡΑΦΗ του Μενού τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 8 15

17 Αν η απάντηση στο µήνυµα είναι Όχι τότε δεν γίνεται τίποτα, ενώ αν η απάντηση είναι Ναι τότε το µάθηµα διαγράφεται (ολική διαγραφή της συγκεκριµένης εγγραφής από τη Βάση 1). Επίσης αν δεν υπάρχει άλλο µάθηµα του ίδιου εξαµήνου τότε διαγράφεται και το συγκεκριµένο εξάµηνο από τη Βάση 4. Πίσω από την επιλογή ΒΟΗΘΕΙΑ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub ΒΟΗΘΕΙΑ_Click() HELPDIMPROG.Show Ο κώδικας αυτός απλά εµφανίζει τη βοήθεια για τη φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΜΑΘΗΜΑΤΩΝ & ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ η οποία φαίνεται στην παρακάτω εικόνα : Εικόνα 9 16

18 Πίσω από την επιλογή ΕΞΟ ΟΣ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Exit_Click() Unload Me Με τον κώδικα αυτό επιστρέφουµε στην ΚΥΡΙΑ ΦΟΡΜΑ. Πίσω από το TextBox Text1 υπάρχει ο παρακάτω κώδικας : Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbkeyreturn Then Command3_Click If Not (KeyAscii = vbkeyback Or KeyAscii = vbkeyreturn Or KeyAscii = vbkey0 Or KeyAscii = vbkey1 Or KeyAscii = vbkey2 Or KeyAscii = vbkey3 Or KeyAscii = vbkey4 Or KeyAscii = vbkey5 Or KeyAscii = vbkey6 Or KeyAscii = vbkey7 Or KeyAscii = vbkey8 Or KeyAscii = vbkey9) Then MsgBox ("Ο ΧΑΡΑΚΤΗΡΑΣ ΠΟΥ ΚΑΤΑΧΩΡΗΣΑΤΕ ΕΝ ΕΙΝΑΙ ΑΡΙΘΜΟΣ") KeyAscii = vbkeyclear Με τον κώδικα αυτό όταν καταχωρηθεί ο αριθµός των µαθητών στο TextBox Text1 και πατηθεί το πλήκτρο Enter τότε γίνεται ΕΜΜΕΣΗ ΚΑΤΑΧΩΡΙΣΗ. Επίσης αν ο χαρακτήρας που θα καταχωρείτε κάθε φορά δεν είναι αριθµός τότε εµφανίζεται το παρακάτω µήνυµα και αποτρέπει την εισαγωγή αυτού του χαρακτήρα. Εικόνα 10 Πίσω από το ListBox (List1) υπάρχει ο παρακάτω κώδικας : Private Sub List1_Click() EXAMINO.Text = List1 List2.Clear MATHIMA.Text = "" MATIMA.Text = "" EXAMHNO.Text = "" 17

19 Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("EXAMINO") = List1 Then List2.AddItem Data1.Recordset.Fields("MATHIMA") Data1.Recordset.MoveNext Data1.Recordset.MoveFirst List1.Clear If Not Data9.Recordset.BOF Then Data9.Recordset.MoveFirst Do While Not Data9.Recordset.EOF List1.AddItem Data9.Recordset.Fields("EXAMINO") Data9.Recordset.MoveNext Option2.Value = False Με τον κώδικα αυτό εµφανίζονται όλες οι εγγραφές της Βάσης 4 (Όλα τα Εξάµηνα) στο ListBox (List 1). Όταν επιλέξουµε ένα εξάµηνο από τη λίστα τότε εµφανίζονται όλα τα µαθήµατα του συγκεκριµένου εξαµήνου, στο ListBox (List 2). Πίσω από το ListBox (List2) υπάρχει ο παρακάτω κώδικας : Private Sub List2_Click() Text1.Text = "" MATHIMA.Text = List2 MATIMA.Text = "" Option3.Value = False Option2.Value = False If Not Data5.Recordset.BOF Then Data5.Recordset.MoveFirst Do While Not Data5.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = List2 Then Text1.Text = Data5.Recordset.Fields("MATHITES") Data5.Recordset.MoveNext Text1.SetFocus Με τον κώδικα αυτό, όταν επιλεγεί ένα από τα µαθήµατα που υπάρχουν στο ListBox (List2) τότε αυτό το µάθηµα εµφανίζεται στο TextBox 18

20 (MATHIMA).Στη συνέχεια αν στο µάθηµα αυτό έχει δοθεί αριθµός µαθητών τότε ο αριθµός αυτός εµφανίζεται στο TextBox (Text 1). Πίσω από το OptionButton (Option2) υπάρχει ο παρακάτω κώδικας : Private Sub Option2_Click() EXAMHNO.Text = EXAMINO.Text Όταν πατηθεί το OptionButton (Option2) τότε στο TextBox (EXAMHNO) εµφανίζεται το εξάµηνο που έχει επιλεγεί από το ListBox (List1) Πίσω από το OptionButton (Option3) υπάρχει ο παρακάτω κώδικας : Private Sub Option3_Click() MATIMA.Text = List2 Όταν πατηθεί το OptionButton (Option3) τότε στο TextBox (ΜΑΤΙΜΑ) εµφανίζεται το µάθηµα που έχει επιλεγεί από το ListBox (List 2) Πίσω από το OptionButton (Option1) υπάρχει ο παρακάτω κώδικας : Private Sub Option1_Click() If Not Data3.Recordset.BOF Then Data3.Recordset.MoveFirst Do While Not Data3.Recordset.EOF Combo2.AddItem Data3.Recordset.Fields("HMERES") Data3.Recordset.MoveNext Option1.Enabled = False Όταν πατηθεί το OptionButton (Option1) τότε στο ComboBox (Combo 2) εµφανίζονται όλες οι ηµέρες που έχουν καταχωρηθεί στη Βάση 3. Πίσω από το OptionButton (Option4) υπάρχει ο παρακάτω κώδικας : Private Sub Option4_Click() If Not Data10.Recordset.BOF Then Data10.Recordset.MoveFirst Do While Not Data10.Recordset.EOF Combo1.AddItem Data10.Recordset.Fields("WRES") Data10.Recordset.MoveNext 19

21 Option4.Enabled = False Όταν πατηθεί το OptionButton (Option4) τότε στο ComboBox (Combo 1) εµφανίζονται όλες οι ηµέρες που έχουν καταχωρηθεί στη Βάση 5. Πίσω από το κουµπί ΟΚ που αφορά την ΕΜΜΕΣΗ ΚΑΤΑΧΩΡΙΣΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command3_Click() Dim question As String Dim answer As VbMsgBoxResult If Text1.Text = "" Or EXAMINO.Text = "" Or MATHIMA.Text = "" Then MsgBox ("ΕΠΙΛΕΞΤΕ ΕΞΑΜΗΝΟ ΚΑΙ ΜΑΘΗΜΑ ΚΑΙ ΩΣΤΕ ΤΟΝ ΑΡΙΘΜΟ ΤΩΝ ΜΑΘΗΤΩΝ ΠΟΥ ΕΧΟΥΝ ΑΥΤΟ ΤΟ ΜΑΘΗΜΑ") Exit Sub If Not Data5.Recordset.BOF Then Data5.Recordset.MoveFirst Do While Not Data5.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = MATHIMA.Text Then question = "ΣΤΟ ΜΑΘΗΜΑ ΑΥΤΟ ΕΧΕΤΕ ΕΙ Η ΩΣΕΙ ΑΡΙΘΜΟ ΜΑΘΗΤΩΝ. ΘΕΛΕΤΕ ΝΑ ΓΙΝΕΙ ΑΛΛΑΓΗ;" answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then Data5.Recordset.Delete Data5.Refresh Else Exit Sub If Not Data5.Recordset.EOF Then Data5.Recordset.MoveNext Data5.Recordset.AddNew Data5.Recordset.Fields("MATHIMA") = MATHIMA.Text Data5.Recordset.Fields("EXAMINO") = EXAMINO.Text Data5.Recordset.Fields("MATHITES") = Text1.Text Data5.Recordset.Update Data5.Refresh Data5.Recordset.MoveLast 20

22 Με το πάτηµα του κουµπιού ΟΚ για την ΕΜΜΕΣΗ ΚΑΤΑΧΩΡΙΣΗ γίνεται έλεγχος αν έχει καταχωρηθεί αριθµός µαθητών στο TextBox Text 1, εξάµηνο στο TextBox ΕΧΑΜΙΝΟ και µάθηµα στο TextBox MATHIMA. Αν έστω και ένα από αυτά είναι κενό τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 11 Στην συνέχεια γίνεται έλεγχος σε όλη τη Βάση 6. Αν βρεθεί µάθηµα ίδιο µε αυτό που έχει καταχωρηθεί στο TextBox MATHIMA τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 12 Αν η απάντηση στο µήνυµα είναι Όχι τότε δεν γίνεται τίποτα, ενώ αν η απάντηση είναι Ναι τότε το µάθηµα διαγράφεται (ολική διαγραφή της συγκεκριµένης εγγραφής από τη Βάση 6) και δηµιουργείται µια νέα εγγραφή µε το µάθηµα, το νέο εξάµηνο και το νέο αριθµό µαθητών. Πίσω από το Check Box (Check 1) υπάρχει ο παρακάτω κώδικας : Private Sub Check1_Click() If Not Data6.Recordset.BOF Then Data6.Recordset.MoveFirst Do While Not Data6.Recordset.EOF Data6.Recordset.Delete Data6.Refresh If Not Data7.Recordset.BOF Then Data7.Recordset.MoveFirst 21

23 Do While Not Data7.Recordset.EOF Data7.Recordset.Delete Data7.Refresh If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF Data8.Recordset.Delete Data8.Refresh Command1.Enabled = True Με την επιλογή του Check Box (Check 1) γίνεται διαγραφή των βάσεων 6,7 και 8 και στην συνέχεια ενεργοποιείται το κουµπί ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ. Αυτό γίνεται για να αποφευχθούν οι διπλές τιµές στις βάσεις 6,7 και 8 σε µία δεύτερη δηµιουργία προγράµµατος µε αποτέλεσµα τη δηµιουργία λογικού λάθους στο πρόγραµµα. Πίσω από το κουµπί ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ υπάρχει ο παρακάτω κώδικας : Private Sub Command1_Click() Dim X As Integer, Y As Integer, A As Integer, T As Integer, B As String A = 1 B = " " T = 0 Y = 0 Check1.Value = False If Not Data81.Recordset.BOF Then Data81.Recordset.MoveFirst Do While Not Data81.Recordset.EOF Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data81.Recordset.Fields("ΜΑΘΗΜΑ") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data81.Recordset.Fields("ΕΞΑΜΗΝΟ") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data81.Recordset.Fields("ΗΜΕΡΑ") Data8.Recordset.Fields("ΩΡΑ") = Data81.Recordset.Fields("ΩΡΑ") Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = Data81.Recordset.Fields("ΑΙΘΟΥΣΑ") Data8.Recordset.Update Data8.Refresh Data81.Recordset.MoveNext If Not Data71.Recordset.BOF Then Data71.Recordset.MoveFirst 22

24 Do While Not Data71.Recordset.EOF Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data71.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data71.Recordset.Fields("HMERA") Data7.Recordset.Fields("WRA") = Data71.Recordset.Fields("WRA") Data7.Recordset.Update Data7.Refresh Data71.Recordset.MoveNext If Not Data61.Recordset.BOF Then Data61.Recordset.MoveFirst Do While Not Data61.Recordset.EOF Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data61.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data61.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data61.Recordset.Fields("HMERA") Data6.Recordset.Update Data6.Refresh Data61.Recordset.MoveNext Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF Y = Data2.Recordset.Fields("THESEIS") + Y Data2.Recordset.MoveNext Data5.Recordset.Sort = ("MATHITES") If Not Data5.Recordset.EOF Then Data5.Recordset.MoveLast Do While Not Data5.Recordset.BOF If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = Data8.Recordset.Fields("ΜΑΘΗΜΑ") Then If Not Data5.Recordset.BOF Then Data5.Recordset.MovePrevious If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Data8.Recordset.MoveNext On Error Resume Next X = Data5.Recordset.Fields("MATHITES") 23

25 If X <> 0 Then Call EPIL_HMERAS(X, Y, A, T, B) If Not Data5.Recordset.BOF Then Data5.Recordset.MovePrevious Command1.Enabled = False Sub EPIL_HMERAS(ByRef X, Y, A, T As Integer, B As String) If Not Data6.Recordset.BOF Then Data6.Recordset.MoveFirst If Data3.Recordset.EOF Then Data3.Recordset.MoveFirst Do While Not Data6.Recordset.EOF If Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") And Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Then If Data3.Recordset.EOF Then Data3.Recordset.MoveFirst Else Data3.Recordset.MoveNext If Not Data6.Recordset.BOF Then Data6.Recordset.MoveFirst Else A = Data3.Recordset.Fields("HMERES") Data6.Recordset.MoveNext Call EPIL_WRAS(X, Y, A, T, B) Sub EPIL_WRAS(ByRef X, Y, A, T As Integer, B As String) Dim F, I, J As Integer F = 0 Data2.Recordset.MoveLast J = Data2.Recordset.Fields("AITHOYSES") B = "Π1" If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst 24

26 Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext T = Y - F If T = Y And X > Y Then Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then 'B = "Π1" Call EPIL_AITHOYSAS(X, Y, A, T, B) Exit Sub Else B = "Π2" F = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst 25

27 Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext T = Y - F If T = Y And X > Y Then Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then 'B = "Π2" Call EPIL_AITHOYSAS(X, Y, A, T, B) Exit Sub Else B = "Π3" F = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst 26

28 Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext T = Y - F If T = Y And X > Y Then Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then 'B = "Π3" Call EPIL_AITHOYSAS(X, Y, A, T, B) Exit Sub Else B = "ΑΠ1" F = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst 27

29 Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext T = Y - F If T = Y And X > Y Then Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then 'B = "ΑΠ1" Call EPIL_AITHOYSAS(X, Y, A, T, B) Exit Sub Else B = "ΑΠ2" F = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst 28

30 Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext T = Y - F If T = Y And X > Y Then Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then 'B = "ΑΠ2" Call EPIL_AITHOYSAS(X, Y, A, T, B) Exit Sub Else If Data3.Recordset.EOF Then Data3.Recordset.MoveFirst 29

31 Else Data3.Recordset.MoveNext Call EPIL_HMERAS(X, Y, A, T, B) Sub EPIL_AITHOYSAS(ByRef X, Y, A, T As Integer, B As String) Dim P(15) As Integer Dim R(15) As Integer Dim S(15) As Integer Dim RN(15) As Integer Dim PN(15) As Integer Dim E(15) As Integer Dim I, J, F, C, K, NEWREC, X1, X2 As Integer Dim E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15 As Integer Dim M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15 As Integer For I = 1 To 15 E(I) = 0 Next I Data2.Recordset.MoveLast J = Data2.Recordset.Fields("AITHOYSES") Data2.Recordset.MoveFirst For I = 1 To J P(I) = Data2.Recordset.Fields("THESEIS") S(I) = Data2.Recordset.Fields("AITHOYSES") Data2.Recordset.MoveNext Next I I = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") And Data8.Recordset.Fields("ΩΡΑ") = B Then I = I + 1 R(I) = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Data8.Recordset.MoveNext If I = 0 Then I = 1 30

32 For X1 = 1 To J For X2 = 1 To I If S(X1) = R(X2) Then S(X1) = 0 P(X1) = 0 Next X2 Next X1 X2 = 0 For X1 = 1 To J If S(X1) <> 0 Then X2 = X2 + 1 RN(X2) = S(X1) PN(X2) = P(X1) Next X1 For M1 = 1 To X2 If PN(M1) >= X And PN(M1) <= T Then T = PN(M1) E(1) = RN(M1) Next M1 For M1 = 1 To X2-1 For M2 = M1 + 1 To X2 K = PN(M1) + PN(M2) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) Next M2 Next M1 For M1 = 1 To X2-2 For M2 = M1 + 1 To X2-1 For M3 = M2 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) Next M3 Next M2 Next M1 31

33 For M1 = 1 To X2-3 For M2 = M1 + 1 To X2-2 For M3 = M2 + 1 To X2-1 For M4 = M3 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-4 For M2 = M1 + 1 To X2-3 For M3 = M2 + 1 To X2-2 For M4 = M3 + 1 To X2-1 For M5 = M4 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-5 For M2 = M1 + 1 To X2-4 For M3 = M2 + 1 To X2-3 For M4 = M3 + 1 To X2-2 For M5 = M4 + 1 To X2-1 For M6 = M5 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) 32

34 E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-6 For M2 = M1 + 1 To X2-5 For M3 = M2 + 1 To X2-4 For M4 = M3 + 1 To X2-3 For M5 = M4 + 1 To X2-2 For M6 = M5 + 1 To X2-1 For M7 = M6 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-7 For M2 = M1 + 1 To X2-6 For M3 = M2 + 1 To X2-5 For M4 = M3 + 1 To X2-4 For M5 = M4 + 1 To X2-3 For M6 = M5 + 1 To X2-2 For M7 = M6 + 1 To X2-1 For M8 = M7 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) If K >= X And K <= T Then T = K 33

35 E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-8 For M2 = M1 + 1 To X2-7 For M3 = M2 + 1 To X2-6 For M4 = M3 + 1 To X2-5 For M5 = M4 + 1 To X2-4 For M6 = M5 + 1 To X2-3 For M7 = M6 + 1 To X2-2 For M8 = M7 + 1 To X2-1 For M9 = M8 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 34

36 For M1 = 1 To X2-9 For M2 = M1 + 1 To X2-8 For M3 = M2 + 1 To X2-7 For M4 = M3 + 1 To X2-6 For M5 = M4 + 1 To X2-5 For M6 = M5 + 1 To X2-4 For M7 = M6 + 1 To X2-3 For M8 = M7 + 1 To X2-2 For M9 = M8 + 1 To X2-1 For M10 = M9 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-10 For M2 = M1 + 1 To X2-9 For M3 = M2 + 1 To X2-8 For M4 = M3 + 1 To X2-7 For M5 = M4 + 1 To X2-6 For M6 = M5 + 1 To X2-5 For M7 = M6 + 1 To X2-4 For M8 = M7 + 1 To X2-3 For M9 = M8 + 1 To X2-2 For M10 = M9 + 1 To X2-1 For M11 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) 35

37 If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-11 For M2 = M1 + 1 To X2-10 For M3 = M2 + 1 To X2-9 For M4 = M3 + 1 To X2-8 For M5 = M4 + 1 To X2-7 For M6 = M5 + 1 To X2-6 For M7 = M6 + 1 To X2-5 For M8 = M7 + 1 To X2-4 For M9 = M8 + 1 To X2-3 For M10 = M9 + 1 To X2-2 For M11 = M To X2-1 For M12 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) 36

38 E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-12 For M2 = M1 + 1 To X2-11 For M3 = M2 + 1 To X2-10 For M4 = M3 + 1 To X2-9 For M5 = M4 + 1 To X2-8 For M6 = M5 + 1 To X2-7 For M7 = M6 + 1 To X2-6 For M8 = M7 + 1 To X2-5 For M9 = M8 + 1 To X2-4 For M10 = M9 + 1 To X2-3 For M11 = M To X2-2 For M12 = M To X2-1 For M13 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) Next M13 37

39 Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-13 For M2 = M1 + 1 To X2-12 For M3 = M2 + 1 To X2-11 For M4 = M3 + 1 To X2-10 For M5 = M4 + 1 To X2-9 For M6 = M5 + 1 To X2-8 For M7 = M6 + 1 To X2-7 For M8 = M7 + 1 To X2-6 For M9 = M8 + 1 To X2-5 For M10 = M9 + 1 To X2-4 For M11 = M To X2-3 For M12 = M To X2-2 For M13 = M To X2-1 For M14 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) + PN(M14) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) E(14) = RN(M14) Next M14 Next M13 Next M12 38

40 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-14 For M2 = M1 + 1 To X2-13 For M3 = M2 + 1 To X2-12 For M4 = M3 + 1 To X2-11 For M5 = M4 + 1 To X2-10 For M6 = M5 + 1 To X2-9 For M7 = M6 + 1 To X2-8 For M8 = M7 + 1 To X2-7 For M9 = M8 + 1 To X2-6 For M10 = M9 + 1 To X2-5 For M11 = M To X2-4 For M12 = M To X2-3 For M13 = M To X2-2 For M14 = M To X2-1 For M15 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) + PN(M14) + PN(M15) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) E(14) = RN(M14) E(15) = RN(M15) Next M15 Next M14 39

41 Next M13 Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data6.Recordset.Fields("EXAMINO") = Data5.Recordset.Fields("EXAMINO") Data6.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = Data5.Recordset.Fields("MATHIMA") Data7.Recordset.Fields("HMERA") = Data3.Recordset.Fields("HMERES") Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To 15 If E(I) <> 0 Then Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = Data5.Recordset.Fields("MATHIMA") Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = Data5.Recordset.Fields("EXAMINO") Data8.Recordset.Fields("ΗΜΕΡΑ") = Data3.Recordset.Fields("HMERES") Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = E(I) Data8.Recordset.Update Data8.Refresh Next I Ο κώδικας αυτός αποτελείτε από 4 µέρη, το κυρίως πρόγραµµα και 3 υπορουτίνες, µια για την επιλογή ηµέρας (EPIL_HMERAS),µια για την επιλογή ώρας (EPIL_WRAS), και µια για την επιλογή της αίθουσας (EPIL_AITHOYSAS). Το κυρίως πρόγραµµα και οι υπορουτίνες έχουν 5 κοινούς παραµέτρους (Πίνακας 3) των οποίων οι τιµές αλλάζουν και δηλώνονται ως εξής (ByRef X, Y, A, T As Integer, B As String) Πίνακας 4 Παράµετροι κυρίως προγράµµατος και υπορουτινών. 40

42 ΠΑΡΑΜΕΤΡΟΣ X Y A B T ΕΠΕΞΗΓΗΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΠΑΡΑΜΕΤΡΟΥ Αριθµός µαθητών που καταχωρείται σε κάθε µάθηµα. Άθροισµα των θέσεων από όλες τις αίθουσες. Ηµέρα που καταχωρείται κάθε µάθηµα. Ώρα που καταχωρείται κάθε µάθηµα. Ελεύθερες θέσεις για συγκεκριµένη ηµέρα και ώρα Στο κυρίως πρόγραµµα αρχικά ταξινοµείται η Βάση 6 µε βάση το πεδίο ΜΑΘΗΤΕΣ κατά αύξοντα αριθµό (δηλαδή από το µικρότερο στο µεγαλύτερο),και ο δείκτης στη Βάση 6 τοποθετείται στην τελευταία εγγραφή. Στη συνέχεια γίνεται έλεγχος αν το µάθηµα που δείχνει ο δείκτης της Βάσης 6 υπάρχει στη Βάση 8. Αν υπάρχει σηµαίνει ότι το µάθηµα αυτό έχει µπει στο πρόγραµµα της εξεταστικής, άρα ο δείκτης της Βάσης 6 πρέπει να προχωρήσει µια θέση πίσω (σε εγγραφή µε µικρότερο ή ίσο αριθµό µαθητών). Αν δεν υπάρχει τότε η παράµετρος Χ παίρνει τιµή την τιµή που περιέχει το πεδίο ΜΑΘΗΤΕΣ της Βάσης 6στη συγκεκριµένη εγγραφή και στη συνέχεια καλείται η υπορουτίνα για την επιλογή της ηµέρας (EPIL_HMERAS) και ο δείκτης της Βάσης 6 προχωράει µια θέση πίσω. Αυτό γίνεται έως ότου τελειώσουν οι εγγραφές στη Βάση 6 (δηλαδή όταν ο δείκτης της Βάσης 6 φτάσει στην πρώτη εγγραφή). Η ταξινόµηση γίνεται για δυο λόγους. Πρώτον για να πάρουν πρώτα θέση στο πρόγραµµα της εξεταστικής τα µαθήµατα µε το µεγαλύτερο αριθµό µαθητών,έτσι ώστε να µειωθούν οι πιθανότητες σε κάποιο µάθηµα να µην επαρκούν οι θέσεις σε καµία µέρα και ώρα. Και δεύτερον, αν δοθεί αριθµός µαθητών στα µαθήµατα µε τη σειρά ανά εξάµηνο και όχι µε τυχαίες επιλογές, η ταξινόµηση θα ανακατέψει τις εγγραφές της Βάσης 6, οπότε το πρόγραµµα της εξεταστικής θα εξαρτάται άµεσα από τον αριθµό των µαθητών (πεδίο ΜΑΘΗΤΕΣ Βάσης 6) και όχι από τη σειρά που καταχωρήθηκαν οι εγγραφές στη Βάση 6, µε αποτέλεσµα να µειώνονται οι πιθανότητες, τα πρώτα µαθήµατα που θα καταχωρηθούν στη Βάση 6, αν είναι του ίδιου εξαµήνου να τοποθετηθούν στο πρόγραµµα της εξεταστικής σε διαφορετική ηµέρα αλλά ίδια ώρα και συγκεκριµένα την ώρα Π1. Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή ηµέρας (EPIL_HMERAS) ελέγχει ένα από τα κριτήρια που έχουν τεθεί για τη δηµιουργία του προγράµµατος, το κριτήριο να µην επιτρέπει την εισαγωγή δυο µαθηµάτων ίδιου εξαµήνου την ίδια µέρα. Ο έλεγχος ξεκινάει από τη µέρα που έγινε η τελευταία προσθήκη στο πρόγραµµα της εξεταστικής (αν δεν υπάρχει άλλη προσθήκη, δηλαδή είναι η πρώτη, ο έλεγχος ξεκινάει από την πρώτη µέρα). Αν τη συγκεκριµένη µέρα υπάρχει άλλο µάθηµα του ίδιου εξαµήνου, τότε γίνετε έλεγχος για την επόµενη µέρα. Αυτό συνεχίζεται έως ότου βρεθεί µια µέρα που να µην υπάρχει άλλο µάθηµα του ίδιου εξαµήνου. Όταν βρεθεί ηµέρα στην οποία δεν υπάρχει άλλο µάθηµα του ίδιου εξαµήνου τότε η 41

43 παράµετρος Α παίρνει σαν τιµή την συγκεκριµένη µέρα και στη συνέχεια καλείται η υπορουτίνα η οποία κάνει επιλογή ώρας (EPIL_WRAS). Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή ώρας (EPIL_WRAS) ελέγχει αν την ηµέρα, που έχει επιλέγει από την υπορουτίνα επιλογής ηµέρας και την ώρα Π1 υπάρχουν ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα Π1 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε η παράµετρος Β παίρνει την τιµή Π1 και καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS). Αν ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε γίνεται έλεγχος αν την ίδια µέρα και ώρα Π2 υπάρχουν ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα Π2 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε η παράµετρος Β παίρνει την τιµή Π2 και καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS). Αν ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε γίνεται έλεγχος αν την ίδια µέρα και ώρα Π3 υπάρχουν ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα Π3 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε η παράµετρος Β παίρνει την τιµή Π3 και καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS). Αν ο αριθµός των µαθητών είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε γίνεται έλεγχος αν την ίδια µέρα και ώρα ΑΠ1 υπάρχουν ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα ΑΠ1 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε η παράµετρος Β παίρνει την τιµή ΑΠ1 και καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS). Αν ο αριθµός των µαθητών είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε γίνεται έλεγχος αν την ίδια µέρα και ώρα ΑΠ2 υπάρχουν 42

44 ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα ΑΠ2 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε η παράµετρος Β παίρνει την τιµή ΑΠ2 και καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS). Αν ο αριθµός των µαθητών είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε σηµαίνει ότι δεν υπάρχουν ελεύθερες θέσεις για όλους τους µαθητές τη συγκεκριµένη µέρα, οπότε ξανακαλείται η υπορουτίνα για την επιλογή ηµέρας ξεκινώντας όµως τον έλεγχο από την επόµενη ηµέρα. Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή αίθουσας (EPIL_AITHOYSAS) αρχικά δηµιουργεί 5 πίνακες (R(15), P(15), S(15), RN(15), PN(15)). Στη συνέχεια γίνεται προσπέλαση της Βάσης 2 και οι τιµές των πεδίων ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ καταχωρούνται στους πίνακες S( ) και P( ) αντίστοιχα. Έπειτα γίνεται προσπέλαση της Βάσης 8 και καταχωρούνται στον πίνακα R( )οι τιµές του πεδίου ΑΙΘΟΥΣΑ από εγγραφές που τα πεδία ΗΜΕΡΑ και ΩΡΑ είναι ίδια µε την ηµέρα και την ώρα που έχουν επιλεγεί από τις υπορουτίνες EPIL_ HMERAS και EPIL_ WRAS αντίστοιχα. Με βάση τους πίνακες S( ), P( ) και R( ) καταχωρούνται τιµές και στους πίνακες RN( ) και PN( ). Η καταχώρηση γίνεται ως εξής: Συγκρίνονται µία προς µία οι τιµές µεταξύ των πινάκων S( ) και R( ). Αν βρεθούν ίσες τότε οι συγκεκριµένες θέσεις των πινάκων S( ) και P( ) µηδενίζονται. Στην συνέχεια γίνεται ξανά προσπέλαση στον πίνακα S( ) και κάθε φορά που µία θέση του πίνακα έχει τιµή διαφορετική του µηδενός τότε οι τιµές στην συγκεκριµένη θέση των πινάκων S( ) και P( ) καταχωρούνται στους πίνακες RN( ) και PN( ) αντίστοιχα. Έτσι µε αυτόν τον τρόπο εξασφαλίζεται στον πίνακα RN( ) να υπάρχουν οι ελεύθερες αίθουσες και στον PN( ) να υπάρχουν οι θέσεις των ελεύθερων αιθουσών για µια συγκεκριµένη µέρα και ώρα. Στη συνέχεια του προγράµµατος γίνονται όλοι οι δυνατοί συνδυασµοί των ελεύθερων αιθουσών έτσι ώστε να γίνει η βέλτιστη επιλογή των αιθουσών (δηλαδή οι θέσεις που θα µένουν αχρησιµοποίητες να είναι όσο το δυνατόν λιγότερες). Έπειτα το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα που έχουν επιλεγεί από τις υπορουτίνες EPIL_ HMERAS και EPIL_ WRAS αντίστοιχα και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες που έχουν επιλεγεί από την υπορουτίνα EPIL_AITHOYSAS. Πίσω από το κουµπί ΟΚ που αφορά την ΑΜΕΣΗ ΚΑΤΑΧΩΡΙΣΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command2_Click() 43

45 Dim X As Integer, Y As Integer, A As Integer, T As Integer, B As String Dim question As String Dim answer As VbMsgBoxResult A = 1 B = " " T = 0 Y = 0 If Text1.Text = "" Or EXAMHNO.Text = "" Or MATIMA.Text = "" Or Combo1 = "" Or Combo2 = "" Then MsgBox ("ΕΠΙΛΕΞΤΕ ΕΞΑΜΗΝΟ, ΜΑΘΗΜΑ, ΗΜΕΡΑ ΚΑΙ ΩΡΑ ΚΑΙ ΩΣΤΕ ΤΟΝ ΑΡΙΘΜΟ ΤΩΝ ΜΑΘΗΤΩΝ ΠΟΥ ΕΧΟΥΝ ΑΥΤΟ ΤΟ ΜΑΘΗΜΑ") Exit Sub X = CInt(Text1.Text) Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF Y = Data2.Recordset.Fields("THESEIS") + Y Data2.Recordset.MoveNext If Not Data5.Recordset.BOF Then Data5.Recordset.MoveFirst Do While Not Data5.Recordset.EOF If Data5.Recordset.Fields("MATHIMA") = MATIMA.Text Then question = "ΣΤΟ ΜΑΘΗΜΑ ΑΥΤΟ ΕΧΕΤΕ ΕΙ Η ΩΣΕΙ ΑΡΙΘΜΟ ΜΑΘΗΤΩΝ. ΘΕΛΕΤΕ ΝΑ ΓΙΝΕΙ ΑΛΛΑΓΗ;" answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then Data5.Recordset.Delete Data5.Refresh If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΜΑΘΗΜΑ") = MATIMA.Text Then Data8.Recordset.Delete Data8.Refresh Data8.Recordset.MoveNext Else Exit Sub If Not Data5.Recordset.EOF Then Data5.Recordset.MoveNext 44

46 Call EP_HMERAS(X, Y, A, T, B) Sub EP_HMERAS(ByRef X, Y, A, T As Integer, B As String) If Not Data6.Recordset.BOF Then Data6.Recordset.MoveFirst If Data3.Recordset.EOF Then Data3.Recordset.MoveFirst Do While Not Data6.Recordset.EOF On Error Resume Next If Data6.Recordset.Fields("HMERA") = Combo2 And Data6.Recordset.Fields("EXAMINO") = EXAMHNO.Text Then MsgBox "ΣΕ ΑΥΤΗ ΤΗ ΜΕΡΑ ΥΠΑΡΧΕΙ ΑΛΛΟ ΜΑΘΗΜΑ ΤΟΥ Ι ΙΟΥ ΕΞΑΜΗΝΟΥ. ΕΠΙΛΕΞΤΕ ΑΛΛΗ ΜΕΡΑ." Exit Sub Data6.Recordset.MoveNext Call EP_WRAS (X, Y, A, T, B) Sub EP_WRAS (ByRef X, Y, A, T As Integer, B As String) Dim F, I, J As Integer F = 0 Data2.Recordset.MoveLast J = Data2.Recordset.Fields("AITHOYSES") B = Combo1 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Combo2 And Data8.Recordset.Fields("ΩΡΑ") = B Then Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF If Data2.Recordset.Fields("AITHOYSES") = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Then F = Data2.Recordset.Fields("THESEIS") + F Data2.Recordset.MoveNext Data8.Recordset.MoveNext 45

47 T = Y - F If T = Y And X > Y Then Data5.Recordset.AddNew Data5.Recordset.Fields("MATHIMA") = MATIMA.Text Data5.Recordset.Fields("EXAMINO") = EXAMHNO.Text Data5.Recordset.Fields("MATHITES") = Text1.Text Data5.Recordset.Update Data5.Refresh Data5.Recordset.MoveLast Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = MATIMA.Text Data6.Recordset.Fields("EXAMINO") = EXAMHNO.Text Data6.Recordset.Fields("HMERA") = Combo2 Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = MATIMA.Text Data7.Recordset.Fields("HMERA") = Combo2 Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To J Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = MATIMA.Text Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = EXAMHNO.Text Data8.Recordset.Fields("ΗΜΕΡΑ") = Combo2 Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = I Data8.Recordset.Update Data8.Refresh Next I Exit Sub If X < T Then Call EP_AITHOYSAS (X, Y, A, T, B) Exit Sub If T < Y And X > T Then MsgBox "ΟΙ ΘΕΣΕΙΣ ΕΝ ΕΠΑΡΚΟΥΝ. ΕΠΕΛΕΞΕ ΑΛΛΗ ΩΡΑ Ή ΑΛΛΗ ΜΕΡΑ" Sub EP_AITHOYSAS (ByRef X, Y, A, T As Integer, B As String) Dim P(15) As Integer Dim R(15) As Integer Dim S(15) As Integer Dim RN(15) As Integer Dim PN(15) As Integer Dim E(15) As Integer Dim I, J, F, C, K, NEWREC, X1, X2 As Integer 46

48 Dim E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15 As Integer Dim M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15 As Integer For I = 1 To 15 E(I) = 0 Next I Data2.Recordset.MoveLast J = Data2.Recordset.Fields("AITHOYSES") Data2.Recordset.MoveFirst For I = 1 To J P(I) = Data2.Recordset.Fields("THESEIS") S(I) = Data2.Recordset.Fields("AITHOYSES") Data2.Recordset.MoveNext Next I I = 0 If Not Data8.Recordset.BOF Then Data8.Recordset.MoveFirst Do While Not Data8.Recordset.EOF If Data8.Recordset.Fields("ΗΜΕΡΑ") = Combo2 And Data8.Recordset.Fields("ΩΡΑ") = B Then I = I + 1 R(I) = Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") Data8.Recordset.MoveNext If I = 0 Then I = 1 For X1 = 1 To J For X2 = 1 To I If S(X1) = R(X2) Then S(X1) = 0 P(X1) = 0 Next X2 Next X1 X2 = 0 For X1 = 1 To J If S(X1) <> 0 Then X2 = X2 + 1 RN(X2) = S(X1) PN(X2) = P(X1) Next X1 47

49 For M1 = 1 To X2 If PN(M1) >= X And PN(M1) <= T Then T = PN(M1) E(1) = RN(M1) Next M1 For M1 = 1 To X2-1 For M2 = M1 + 1 To X2 K = PN(M1) + PN(M2) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) Next M2 Next M1 For M1 = 1 To X2-2 For M2 = M1 + 1 To X2-1 For M3 = M2 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) Next M3 Next M2 Next M1 For M1 = 1 To X2-3 For M2 = M1 + 1 To X2-2 For M3 = M2 + 1 To X2-1 For M4 = M3 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) Next M4 Next M3 Next M2 Next M1 48

50 For M1 = 1 To X2-4 For M2 = M1 + 1 To X2-3 For M3 = M2 + 1 To X2-2 For M4 = M3 + 1 To X2-1 For M5 = M4 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-5 For M2 = M1 + 1 To X2-4 For M3 = M2 + 1 To X2-3 For M4 = M3 + 1 To X2-2 For M5 = M4 + 1 To X2-1 For M6 = M5 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-6 For M2 = M1 + 1 To X2-5 For M3 = M2 + 1 To X2-4 For M4 = M3 + 1 To X2-3 For M5 = M4 + 1 To X2-2 For M6 = M5 + 1 To X2-1 For M7 = M6 + 1 To X2 49

51 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-7 For M2 = M1 + 1 To X2-6 For M3 = M2 + 1 To X2-5 For M4 = M3 + 1 To X2-4 For M5 = M4 + 1 To X2-3 For M6 = M5 + 1 To X2-2 For M7 = M6 + 1 To X2-1 For M8 = M7 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 50

52 For M1 = 1 To X2-8 For M2 = M1 + 1 To X2-7 For M3 = M2 + 1 To X2-6 For M4 = M3 + 1 To X2-5 For M5 = M4 + 1 To X2-4 For M6 = M5 + 1 To X2-3 For M7 = M6 + 1 To X2-2 For M8 = M7 + 1 To X2-1 For M9 = M8 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-9 For M2 = M1 + 1 To X2-8 For M3 = M2 + 1 To X2-7 For M4 = M3 + 1 To X2-6 For M5 = M4 + 1 To X2-5 For M6 = M5 + 1 To X2-4 For M7 = M6 + 1 To X2-3 For M8 = M7 + 1 To X2-2 For M9 = M8 + 1 To X2-1 For M10 = M9 + 1 To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) 51

53 E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-10 For M2 = M1 + 1 To X2-9 For M3 = M2 + 1 To X2-8 For M4 = M3 + 1 To X2-7 For M5 = M4 + 1 To X2-6 For M6 = M5 + 1 To X2-5 For M7 = M6 + 1 To X2-4 For M8 = M7 + 1 To X2-3 For M9 = M8 + 1 To X2-2 For M10 = M9 + 1 To X2-1 For M11 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) Next M11 Next M10 Next M9 Next M8 52

54 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-11 For M2 = M1 + 1 To X2-10 For M3 = M2 + 1 To X2-9 For M4 = M3 + 1 To X2-8 For M5 = M4 + 1 To X2-7 For M6 = M5 + 1 To X2-6 For M7 = M6 + 1 To X2-5 For M8 = M7 + 1 To X2-4 For M9 = M8 + 1 To X2-3 For M10 = M9 + 1 To X2-2 For M11 = M To X2-1 For M12 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 53

55 For M1 = 1 To X2-12 For M2 = M1 + 1 To X2-11 For M3 = M2 + 1 To X2-10 For M4 = M3 + 1 To X2-9 For M5 = M4 + 1 To X2-8 For M6 = M5 + 1 To X2-7 For M7 = M6 + 1 To X2-6 For M8 = M7 + 1 To X2-5 For M9 = M8 + 1 To X2-4 For M10 = M9 + 1 To X2-3 For M11 = M To X2-2 For M12 = M To X2-1 For M13 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) Next M13 Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-13 For M2 = M1 + 1 To X2-12 For M3 = M2 + 1 To X2-11 For M4 = M3 + 1 To X2-10 For M5 = M4 + 1 To X2-9 54

56 For M6 = M5 + 1 To X2-8 For M7 = M6 + 1 To X2-7 For M8 = M7 + 1 To X2-6 For M9 = M8 + 1 To X2-5 For M10 = M9 + 1 To X2-4 For M11 = M To X2-3 For M12 = M To X2-2 For M13 = M To X2-1 For M14 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) + PN(M14) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) E(14) = RN(M14) Next M14 Next M13 Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 For M1 = 1 To X2-14 For M2 = M1 + 1 To X2-13 For M3 = M2 + 1 To X2-12 For M4 = M3 + 1 To X2-11 For M5 = M4 + 1 To X2-10 For M6 = M5 + 1 To X2-9 55

57 For M7 = M6 + 1 To X2-8 For M8 = M7 + 1 To X2-7 For M9 = M8 + 1 To X2-6 For M10 = M9 + 1 To X2-5 For M11 = M To X2-4 For M12 = M To X2-3 For M13 = M To X2-2 For M14 = M To X2-1 For M15 = M To X2 K = PN(M1) + PN(M2) + PN(M3) + PN(M4) + PN(M5) + PN(M6) + PN(M7) + PN(M8) + PN(M9) + PN(M10) + PN(M11) + PN(M12) + PN(13) + PN(M14) + PN(M15) If K >= X And K <= T Then T = K E(1) = RN(M1) E(2) = RN(M2) E(3) = RN(M3) E(4) = RN(M4) E(5) = RN(M5) E(6) = RN(M6) E(7) = RN(M7) E(8) = RN(M8) E(9) = RN(M9) E(10) = RN(M10) E(11) = RN(M11) E(12) = RN(M12) E(13) = RN(M13) E(14) = RN(M14) E(15) = RN(M15) Next M15 Next M14 Next M13 Next M12 Next M11 Next M10 Next M9 Next M8 Next M7 Next M6 Next M5 Next M4 Next M3 Next M2 Next M1 Data5.Recordset.AddNew Data5.Recordset.Fields("MATHIMA") = MATIMA.Text Data5.Recordset.Fields("EXAMINO") = EXAMHNO.Text Data5.Recordset.Fields("MATHITES") = Text1.Text 56

58 Data5.Recordset.Update Data5.Refresh Data5.Recordset.MoveLast Data6.Recordset.AddNew Data6.Recordset.Fields("MATHIMA") = MATIMA.Text Data6.Recordset.Fields("EXAMINO") = EXAMHNO.Text Data6.Recordset.Fields("HMERA") = Combo2 Data6.Recordset.Update Data6.Refresh Data7.Recordset.AddNew Data7.Recordset.Fields("MATHIMA") = MATIMA.Text Data7.Recordset.Fields("HMERA") = Combo2 Data7.Recordset.Fields("WRA") = B Data7.Recordset.Update Data7.Refresh For I = 1 To 15 If E(I) <> 0 Then Data8.Recordset.AddNew Data8.Recordset.Fields("ΜΑΘΗΜΑ") = MATIMA.Text Data8.Recordset.Fields("ΕΞΑΜΗΝΟ") = EXAMHNO.Text Data8.Recordset.Fields("ΗΜΕΡΑ") = Combo2 Data8.Recordset.Fields("ΩΡΑ") = B Data8.Recordset.Fields("ΑΙΘΟΥΣΑ") = E(I) Data8.Recordset.Update Data8.Refresh Next I Ο κώδικας αυτός είναι παρόµοιος µε τον κώδικα που υπάρχει πίσω από το κουµπί ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ. Αποτελείτε και αυτός από 4 µέρη, το κυρίως πρόγραµµα και 3 υπορουτίνες, µια για την επιλογή ηµέρας (EP_HMERAS),µια για την επιλογή ώρας (EP_WRAS), και µια για την επιλογή της αίθουσας (EP_AITHOYSAS). Το κυρίως πρόγραµµα και οι υπορουτίνες έχουν 5 κοινούς παραµέτρους (Πίνακας 4) των οποίων οι τιµές αλλάζουν και δηλώνονται ως εξής (ByRef X, Y, A, T As Integer, B As String) Πίνακας 5 Παράµετροι κυρίως προγράµµατος και υπορουτινών. ΠΑΡΑΜΕΤΡΟΣ ΕΠΕΞΗΓΗΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΠΑΡΑΜΕΤΡΟΥ X Αριθµός µαθητών που καταχωρείται σε κάθε µάθηµα. Y Άθροισµα των θέσεων από όλες τις αίθουσες. A Ηµέρα που καταχωρείται κάθε µάθηµα. B Ώρα που καταχωρείται κάθε µάθηµα. T Ελεύθερες θέσεις για συγκεκριµένη ηµέρα και ώρα 57

59 Στο κυρίως πρόγραµµα γίνεται έλεγχος αν στα TextBox Text1, EXAMHNO και MATIMA και στα ComboBox Combo1 και Combo2, έχουν καταχωρηθεί τιµές. Αν έστω και ένα από αυτά είναι άδειο (δηλαδή δεν έχει καταχωρηθεί τιµή), τότε εµφανίζεται το παρακάτω µήνυµα (Εικόνα 13). Εικόνα 13 Στη συνέχεια γίνεται έλεγχος αν το µάθηµα που έχει καταχωρηθεί στο TextBox MATIMA έχει δοθεί ήδη αριθµός µαθητών. Αν έχει δοθεί ξανά στο µάθηµα αυτό αριθµός µαθητών τότε εµφανίζεται το παρακάτω µήνυµα (Εικόνα14). Εικόνα 14 Αν η απάντηση είναι Ναι τότε διαγράφονται οι εγγραφές µε το συγκεκριµένο µάθηµα από τις βάσεις Βάση 6 και Βάση 8 (αν υπάρχει) και στη συνέχεια καλείται η υπορουτίνα για την επιλογή ηµέρας EP_HMERAS. Αν η απάντηση είναι Όχι τότε βγαίνει από το κυρίως πρόγραµµα χωρίς να κάνει τίποτα. Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή ηµέρας (EP_HMERAS) ελέγχει ένα από τα κριτήρια που έχουν τεθεί για τη δηµιουργία του προγράµµατος, το κριτήριο να µην επιτρέπει την εισαγωγή δυο µαθηµάτων ίδιου εξαµήνου την ίδια µέρα. Οπότε ελέγχεται αν το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMHNO υπάρχει στη Βάση 7 τότε εµφανίζεται το παρακάτω µήνυµα (Εικόνα 15) και βγαίνει από την υπορουτίνα. 58

60 Εικόνα 15 Αν δεν υπάρχει το εξάµηνο που έχει καταχωρηθεί στο TextBox EXAMHNO στη Βάση 7, τότε καλείται η υπορουτίνα η οποία κάνει επιλογή ώρας (EP_WRAS). Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή ώρας (EPIL_WRAS) ελέγχει αν την ηµέρα, που έχει καταχωρηθεί στο ComboBox Combo 2 και την ώρα που έχει καταχωρηθεί στο ComboBox Combo 1 υπάρχουν ελεύθερες θέσεις. Αν όλες οι αίθουσες είναι ελεύθερες και ο αριθµός των µαθητών, στο συγκεκριµένο µάθηµα, υπερβαίνει τον αριθµό των θέσεων όλων των αιθουσών, τότε το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής την ηµέρα που έχει καταχωρηθεί στο ComboBox Combo 2 και την ώρα που έχει καταχωρηθεί στο ComboBox Combo 1 και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες. Αν ο αριθµός των µαθητών είναι µικρότερος από τον αριθµό των ελεύθερων θέσεων, τότε καλείται η υπορουτίνα η οποία κάνει επιλογή αίθουσας (EP_AITHOYSAS). Αν ο αριθµός των µαθητών είναι µεγαλύτερος από τον αριθµό των ελεύθερων θέσεων, τότε εµφανίζεται το παρακάτω µήνυµα (Εικόνα 16). Εικόνα 16 Ο κώδικας της υπορουτίνας η οποία κάνει επιλογή αίθουσας (EP_AITHOYSAS) αρχικά δηµιουργεί 5 πίνακες (R(15), P(15), S(15), RN(15), PN(15)). Στη συνέχεια γίνεται προσπέλαση της Βάσης 2 και οι τιµές των πεδίων ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ καταχωρούνται στους πίνακες S( ) και P( ) αντίστοιχα. Έπειτα γίνεται προσπέλαση της Βάσης 8 και καταχωρούνται στον πίνακα R( )οι τιµές του πεδίου ΑΙΘΟΥΣΑ από εγγραφές που τα πεδία ΗΜΕΡΑ και ΩΡΑ είναι ίδια µε την ηµέρα και την ώρα που έχουν καταχωρηθεί στα ComboBox Combo 2 και ComboBox Combo 1 αντίστοιχα. Με βάση τους πίνακες S( ), P( ) και R( ) καταχωρούνται τιµές και στους πίνακες RN( ) και PN( ). Η καταχώρηση γίνεται ως εξής: Συγκρίνονται µία προς µία οι τιµές µεταξύ των πινάκων S( ) και R( ). Αν βρεθούν ίσες τότε οι συγκεκριµένες 59

61 θέσεις των πινάκων S( ) και P( ) µηδενίζονται. Στην συνέχεια γίνεται ξανά προσπέλαση στον πίνακα S( ) και κάθε φορά που µία θέση του πίνακα έχει τιµή διαφορετική του µηδενός τότε οι τιµές στην συγκεκριµένη θέση των πινάκων S( ) και P( ) καταχωρούνται στους πίνακες RN( ) και PN( ) αντίστοιχα. Έτσι µε αυτόν τον τρόπο εξασφαλίζεται στον πίνακα RN( ) να υπάρχουν οι ελεύθερες αίθουσες και στον PN( ) να υπάρχουν οι θέσεις των ελεύθερων αιθουσών για µια συγκεκριµένη µέρα και ώρα. Στη συνέχεια του προγράµµατος γίνονται όλοι οι δυνατοί συνδυασµοί των ελεύθερων αιθουσών έτσι ώστε να γίνει η βέλτιστη επιλογή των αιθουσών (δηλαδή οι θέσεις που θα µένουν αχρησιµοποίητες να είναι όσο το δυνατόν λιγότερες). Έπειτα το συγκεκριµένο µάθηµα καταχωρείται στο πρόγραµµα της εξεταστικής τη συγκεκριµένη ηµέρα και ώρα που έχουν καταχωρηθεί στα ComboBox Combo 2 και ComboBox Combo 1 αντίστοιχα και δεσµεύει γι αυτή την ηµέρα και ώρα όλες τις αίθουσες που έχουν επιλεγεί από την υπορουτίνα EP_AITHOYSAS. Πίσω από το κουµπί ΟΚ που αφορά την ΙΑΓΡΑΦΉ ΣΥΝΌΛΟΥ ΜΑΘΗΤΏΝ ΌΛΩΝ ΤΩΝ ΜΑΘΗΜΑΤΩΝ υπάρχει ο παρακάτω κώδικας : Private Sub Command5_Click() Dim question As String Dim answer As VbMsgBoxResult question = "ΜΕ ΤΗΝ ΕΝΕΡΓΕΙΑ ΑΥΤΗ ΘΑ ΧΑΘΟΥΝ ΟΛΕΣ ΟΙ ΚΑΤΑΧΩΡΗΣΕΙΣ ΠΟΥ ΕΙΧΑΝ ΓΙΝΕΙ ΣΤΟ ΣΥΝΟΛΟ ΤΩΝ ΜΑΘΗΤΩΝ. ΣΙΓΟΥΡΑ ΘΕΛΕΤΕ ΝΑ ΓΙΝΕΙ ΙΑΓΡΑΦΗ;" answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then If Not Data5.Recordset.EOF Then Data5.Recordset.MoveLast Do While Not Data5.Recordset.BOF Data5.Recordset.Delete Data5.Refresh Else Exit Sub Με το πάτηµα του κουµπιού ΟΚ για την διαγραφή του συνόλου των µαθητών όλων των µαθηµάτων εµφανίζεται το παρακάτω µήνυµα (Εικόνα 17) : 60

62 Εικόνα 17 Αν η επιλογή είναι Ναι τότε διαγράφεται η βοηθητική Βάση 6, έτσι µε αυτό τον τρόπο ο αριθµός των µαθητών σε όλα τα µαθήµατα µηδενίζεται για να προσδιοριστεί ξανά από την αρχή. Αν επιλογή είναι όχι τότε δεν γίνεται τίποτα. Τα Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10 (βλ. Εικόνα 3) είναι αντικείµενα ελέγχου δεδοµένων µε τα οποία γίνετε η σύνδεση των βάσεων µε το πρόγραµµα. Στις ιδιότητες των Data δίνονται το όνοµα της βάσης και το πλήρες µονοπάτι που αυτή είναι αποθηκευµένη καθώς και ο συγκεκριµένος πίνακας που θα συνδεθεί µε την εφαρµογή. Τα συγκεκριµένα αντικείµενα έχουν οριστεί από τις ιδιότητες να µην είναι ορατά όταν εκτελείτε η εφαρµογή. ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΑΙΘΟΥΣΑΣ Στη φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ (Εικόνα 18) µπορούν να γίνουν τα εξής : 1. Εισαγωγή µιας νέας αίθουσας µε τις αντίστοιχες θέσεις που έχει αυτή η αίθουσα. 2. ιαγραφή κάποιας αίθουσας και των αντίστοιχων θέσεων που έχει αυτή η αίθουσα. 3. Μετακίνηση, µε το πάτηµα ενός κουµπιού, στην πρώτη, στην επόµενη, στην προηγούµενη, ή στην τελευταία εγγραφή. 61

63 Εικόνα 18 (Φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ) Πίνακας 6 Αντικείµενα και ιδιότητες της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ. ΑΝΤΙΚΕΙΜΕΝΟ Ι ΙΟΤΗΤΑ ΤΙΜΗ Form Data Database RecordSourse Visible TextBox AITHOYSA TextBox THESEIS Label Label CommandButton CommandButton CommandButton CommandButton ADD_DEL2 ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ Data1 C:\ Program Files\MAIN \δβ1.mdb TABLE2 False Label1 ΑΙΘΟΥΣΑ Label2 ΘΕΣΕΙΣ Command3 ΠΡΩΤΗ Command1 ΕΠΟΜΕΝΗ Command2 ΠΡΟΗΓΟΥΜΕΝΗ Command4 ΤΕΛΕΥΤΑΙΑ 62

64 Χρησιµοποιώντας το Menu Editor (βρίσκεται στα tools) δηµιουργούµε τις εισαγωγές που παρατίθενται στον Πινακα2. Πίνακας 7 Καθορισµός Μενού για την ADD_DEL2.FRM ΛΕΖΑΝΤΑ ΟΝΟΜΑ ΕΠΕΞΕΡΓΑΣΙΑ ΕΠΕΞΕΡΓΑΣΙΑ.ΑΠΟΘΗΚΕΥΣΗ ΑΠΟΘΗΚΕΥΣΗ. ΙΑΓΡΑΦΗ ΙΑΓΡΑΦΗ ΒΟΗΘΕΙΑ ΒΟΗΘΕΙΑ ΕΞΟ ΟΣ ΕΞΟ ΟΣ Ανάλυση κώδικα της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ Πίσω από την επιλογή ΑΠΟΘΗΚΕΥΣΗ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Save_Click() Dim I As Integer Dim question As String Dim answer As VbMsgBoxResult I = 0 If AITHOYSA.Text = "" Or THESEIS.Text = "" Then MsgBox "ΚΑΤΑΧΩΡΗΣΤΕ ΑΙΘΟΥΣΑ ΚΑΙ ΘΕΣΕΙΣ ΚΑΙ ΚΑΝΤΕ ΞΑΝΑ ΑΠΟΘΗΚΕΥΣΗ" Exit Sub If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF I = I + 1 If Data1.Recordset.Fields("AITHOYSES") = AITHOYSA.Text Then question = "Η ΑΙΘΟΥΣΑ ΑΥΤΗ ΥΠΑΡΧΕΙ. ΘΕΛΕΤΕ ΝΑ ΓΙΝΕΙ ΑΛΛΑΓΗ; " answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then Data1.Recordset.Delete Data1.Refresh Else Exit Sub Data1.Recordset.MoveNext If I > 14 Then MsgBox ("ΤΟ ΣΥΝΟΛΟ ΤΩΝ ΑΙΘΟΥΣΩΝ ΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΞΕΠΕΡΝΑΕΙ ΤΟ 15") Exit Sub 63

65 Else Data1.Recordset.AddNew Data1.Recordset.Fields("AITHOYSES") = AITHOYSA.Text Data1.Recordset.Fields("THESEIS") = THESEIS.Text Data1.Recordset.Update Data1.Refresh Στον κώδικα αυτό αρχικά γίνεται έλεγχος αν έχουν καταχωρηθεί τιµές στα TextBox AITHOYSA και THESEIS. Αν βρεθεί έστω και ένα από αυτά κενό, τότε παρακάτω µήνυµα (Εικόνα 19). Εικόνα 19 Αν τα TextBox AITHOYSA και THESEIS δεν είναι κενά, τότε γίνεται έλεγχος αν η αίθουσα που έχει καταχωρηθεί στο TextBox AITHOYSA υπάρχει στη Βάση 2. Αν υπάρχει τότε εµφανίζεται το παρακάτω µήνυµα (Εικόνα 20). Εικόνα 20 Αν η απάντηση είναι Ναι τότε γίνεται διαγραφή, από τη Βάση 2, της εγγραφής της οποίας το πεδίο ΑΙΘΟΥΣΕΣ είναι ίδιο µε το TextBox AITHOYSA και στη συνέχεια γίνεται µια νέα εγγραφή στη Βάση 2 µε τιµές στα πεδία ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ, τις τιµές που έχουν καταχωρηθεί στα TextBox AITHOYSA και THESEIS αντίστοιχα. Αν η απάντηση είναι Όχι, τότε δεν γίνεται τίποτα. Αν τα TextBox AITHOYSA και THESEIS δεν είναι κενά, και η αίθουσα που έχει καταχωρηθεί στο TextBox AITHOYSA δεν υπάρχει στη Βάση 2,τοτε γίνεται κανονικά η καταχώρηση της νέας αίθουσας µε τις αντίστοιχες θέσεις. Επειδή υπάρχει όριο στο σύνολο των αιθουσών το οποίο δεν µπορεί να ξεπερνά τις 15 αίθουσες, πριν από κάθε καταχώρηση γίνεται 64

66 έλεγχος. Αν οι καταχωρίσεις είναι περισσότερες από 15 τότε αποτρέπεται η καταχώρηση και εµφανίζεται το παρακάτω µήνυµα : Εικόνα 21 Πίσω από την επιλογή ΙΑΓΡΑΦΗ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Delete_Click() Dim question As String Dim answer As VbMsgBoxResult question = "ΘΕΛΕΤΕ ΝΑ ΙΑΓΡΑΦΕΙ Η ΕΓΓΡΑΦΗ; " answer = MsgBox(question, vbquestion & vbyesno) If answer = vbyes Then If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If Data1.Recordset.Fields("AITHOYSES") = AITHOYSA.Text Then Data1.Recordset.Delete Data1.Refresh If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst AITHOYSA.Text = Data1.Recordset.Fields("AITHOYSES") THESEIS.Text = Data1.Recordset.Fields("THESEIS") If Not Data1.Recordset.EOF Then Data1.Recordset.MoveNext Else MsgBox ("ΤΕΛΟΣ ΕΓΓΡΑΦΩΝ") AITHOYSA.Text = "" THESEIS.Text = "" Exit Sub Με το πάτηµα της επιλογής ΙΑΓΡΑΦΗ του Μενού εµφανίζεται το παρακάτω µήνυµα (Εικόνα 22). 65

67 Εικόνα 22 Αν η απάντηση είναι Ναι, τότε γίνεται διαγραφή, από τη Βάση 2, της εγγραφής της οποίας το πεδίο ΑΙΘΟΥΣΕΣ είναι ίδιο µε το TextBox AITHOYSA. Αν η απάντηση είναι Όχι τότε δεν γίνεται τίποτα. Όταν δεν υπάρχουν άλλες εγγραφές τότε εµφανίζεται το παρακάτω µήνυµα : Εικόνα 23 Πίσω από την επιλογή ΒΟΗΘΕΙΑ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub HELP_Click() HELP_ADD_DEL2.Show Ο κώδικας αυτός απλά εµφανίζει τη βοήθεια για τη φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ η οποία φαίνεται στην παρακάτω εικόνα : 66

68 Εικόνα 24 Πίσω από την επιλογή ΕΞΟ ΟΣ του Μενού υπάρχει ο παρακάτω κώδικας : Private Sub Exit_Click() Unload Me Με τον κώδικα αυτό επιστρέφουµε στην ΚΥΡΙΑ ΦΟΡΜΑ. Πίσω από το κουµπί ΠΡΩΤΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command3_Click() If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst AITHOYSA.Text = Data1.Recordset.Fields("AITHOYSES") THESEIS.Text = Data1.Recordset.Fields("THESEIS") Ο κώδικας αυτός εµφανίζει στα TextBox AITHOYSA και THESEIS τα πεδία ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ, της πρώτης εγγραφής της Βάσης 2. Πίσω από το κουµπί ΕΠΟΜΕΝΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command1_Click() 67

69 If Not Data1.Recordset.EOF Then Data1.Recordset.MoveNext If Not Data1.Recordset.EOF Then AITHOYSA.Text = Data1.Recordset.Fields("AITHOYSES") THESEIS.Text = Data1.Recordset.Fields("THESEIS") Ο κώδικας αυτός εµφανίζει στα TextBox AITHOYSA και THESEIS τα πεδία ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ, της επόµενης εγγραφής από αυτή που έδειχναν τα TextBox AITHOYSA και THESEIS. Πίσω από το κουµπί ΠΡΟΗΓΟΥΜΕΝΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command2_Click() If Not Data1.Recordset.BOF Then Data1.Recordset.MovePrevious If Not Data1.Recordset.BOF Then AITHOYSA.Text = Data1.Recordset.Fields("AITHOYSES") THESEIS.Text = Data1.Recordset.Fields("THESEIS") Ο κώδικας αυτός εµφανίζει στα TextBox AITHOYSA και THESEIS τα πεδία ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ, της προηγούµενης εγγραφής από αυτή που έδειχναν τα TextBox AITHOYSA και THESEIS. Πίσω από το κουµπί ΤΕΛΕΥΤΑΊΑ υπάρχει ο παρακάτω κώδικας : Private Sub Command4_Click() If Not Data1.Recordset.EOF Then Data1.Recordset.MoveLast AITHOYSA.Text = Data1.Recordset.Fields("AITHOYSES") THESEIS.Text = Data1.Recordset.Fields("THESEIS") Ο κώδικας αυτός εµφανίζει στα TextBox AITHOYSA και THESEIS τα πεδία ΑΙΘΟΥΣΕΣ και ΘΕΣΕΙΣ, της τελευταίας εγγραφής της Βάσης 2. Πίσω από το TextBox AITHOYSA υπάρχει ο παρακάτω κώδικας : Private Sub AITHOYSA_KeyPress(KeyAscii As Integer) If Not (KeyAscii = vbkeyback Or KeyAscii = vbkeyreturn Or KeyAscii = vbkey0 Or KeyAscii = vbkey1 Or KeyAscii = vbkey2 Or KeyAscii = vbkey3 Or KeyAscii = vbkey4 68

70 Or KeyAscii = vbkey5 Or KeyAscii = vbkey6 Or KeyAscii = vbkey7 Or KeyAscii = vbkey8 Or KeyAscii = vbkey9) Then MsgBox ("Ο ΧΑΡΑΚΤΗΡΑΣ ΠΟΥ ΚΑΤΑΧΩΡΗΣΑΤΕ ΕΝ ΕΙΝΑΙ ΑΡΙΘΜΟΣ") KeyAscii = vbkeyclear Με τον κώδικα αυτό γίνετε έλεγχος αν ο χαρακτήρας που θα καταχωρείτε κάθε φορά δεν είναι αριθµός τότε εµφανίζεται το παρακάτω µήνυµα και αποτρέπει την εισαγωγή αυτού του χαρακτήρα. Εικόνα 25 Πίσω από το TextBox THESEIS υπάρχει ο παρακάτω κώδικας : Private Sub THESEIS_KeyPress(KeyAscii As Integer) If Not (KeyAscii = vbkeyback Or KeyAscii = vbkeyreturn Or KeyAscii = vbkey0 Or KeyAscii = vbkey1 Or KeyAscii = vbkey2 Or KeyAscii = vbkey3 Or KeyAscii = vbkey4 Or KeyAscii = vbkey5 Or KeyAscii = vbkey6 Or KeyAscii = vbkey7 Or KeyAscii = vbkey8 Or KeyAscii = vbkey9) Then MsgBox ("Ο ΧΑΡΑΚΤΗΡΑΣ ΠΟΥ ΚΑΤΑΧΩΡΗΣΑΤΕ ΕΝ ΕΙΝΑΙ ΑΡΙΘΜΟΣ") KeyAscii = vbkeyclear Με τον κώδικα γίνετε έλεγχος αν ο χαρακτήρας που θα καταχωρείτε κάθε φορά δεν είναι αριθµός τότε εµφανίζεται το παρακάτω µήνυµα και αποτρέπει την εισαγωγή αυτού του χαρακτήρα. Εικόνα 26 69

71 Το Data 1 (βλ. Εικόνα 18) είναι αντικείµενο ελέγχου δεδοµένων µε το οποίο γίνετε η σύνδεση της βάσης 2 µε το πρόγραµµα. Στις ιδιότητες του Data δίνονται το όνοµα της βάσης και το πλήρες µονοπάτι που αυτή είναι αποθηκευµένη καθώς και ο συγκεκριµένος πίνακας που θα συνδεθεί µε την εφαρµογή. Το συγκεκριµένο αντικείµενο έχει οριστεί από τις ιδιότητες να µην είναι ορατό όταν εκτελείτε η εφαρµογή. ΕΙΣΑΓΩΓΗ / ΙΑΓΡΑΦΗ ΗΜΕΡΑΣ Στη φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΗΜΕΡΩΝ (Εικόνα 27) µπορούν να γίνουν τα εξής : 1. Εµφάνιση του συνόλου των ηµερών. 2. Εισαγωγή µιας νέας ηµέρας. 3. ιαγραφή ηµέρας. Εικόνα 27 (φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ) Πίνακας 8 Αντικείµενα και ιδιότητες της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ. ΑΝΤΙΚΕΙΜΕΝΟ Ι ΙΟΤΗΤΑ ΤΙΜΗ Form ADD_DEL3 ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ Data Label CommandButton Database RecordSourse Visible Data1 C:\ Program Files\MAIN \δβ1.mdb TABLE3 False Label2 Command4 ΤΟ ΣΥΝΟΛΟ ΤΩΝ ΗΜΕΡΩΝ ΕΙΝΑΙ : 70

72 CommandButton CommandButton CommandButton CommandButton Command5 ΒΟΗΘΕΙΑ Command1 ΠΡΟΣΘΗΚΗ Command2 ΙΑΓΡΑΦΗ Command4 ΕΞΟ ΟΣ Ανάλυση κώδικα της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΗΜΕΡΩΝ Πίσω από το κουµπί ΤΟ ΣΥΝΟΛΟ ΤΩΝ ΗΜΕΡΩΝ ΕΙΝΑΙ : υπάρχει ο παρακάτω κώδικας : Private Sub Command4_Click() If Not Data1.Recordset.EOF Then Data1.Recordset.MoveLast Label2. = Data1.Recordset.Fields( HMERES ) Ο κώδικας αυτός βρίσκει την τελευταία εγγραφή της Βάσης 3, η οποία δείχνει και το σύνολο των ηµερών και την εµφανίζει στο Label2. Πίσω από το κουµπί ΠΡΟΣΘΗΚΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command1_Click() Dim NEWDAY As Integer Data1.Recordset.Sort = HMERES If Not Data1.Recordset.EOF Then Data1.Recordset.MoveLast NEWDAY = Data1.Recordset.Fields( HMERES ) + 1 Data1.Recordset.AddNew Data1.Recordset.Fields( HMERES ) = NEWDAY Data1.Recordset.Update Data1.Refresh Label2. = NEWDAY Ο κώδικας αυτός βρίσκει την τελευταία εγγραφή της Βάσης 3, η οποία δείχνει το µέγιστο αριθµό των ηµερών, στη συνέχεια αυξάνει κατά ένα αυτόν τον αριθµό και δηµιουργεί µια νέα εγγραφή στη Βάση 3 µε τιµή το νέο αριθµό. Τέλος ο νέος αυτός αριθµός εµφανίζεται στο Label2. Πίσω από το κουµπί ΙΑΓΡΑΦΗ υπάρχει ο παρακάτω κώδικας : 71

73 Private Sub Command2_Click() Data1.Recordset.Sort = HMERES If Not Data1.Recordset.EOF Then Data1.Recordset.MoveLast Data1.Recordset.Delete Data1.Refresh Data1.Recordset.MoveLast Label2. = Data1.Recordset.Fields( HMERES ) Ο κώδικας αυτός διαγράφει την τελευταία εγγραφή της Βάσης 3 και εµφανίζει στο Label2 το νέο µέγιστο αριθµό ηµερών Πίσω από το κουµπί ΒΟΗΘΕΙΑ υπάρχει ο παρακάτω κώδικας : Private Sub Command5_Click() HELP_ADD_DEL3.Show Ο κώδικας αυτός απλά εµφανίζει τη βοήθεια για τη φόρµα ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΗΜΕΡΩΝ η οποία φαίνεται στην παρακάτω εικόνα : Εικόνα 28 Πίσω από το κουµπί ΕΞΟ ΟΣ υπάρχει ο παρακάτω κώδικας : Private Sub Command3_Click() Unload Me 72

74 Με τον κώδικα αυτό επιστρέφουµε στην ΚΥΡΙΑ ΦΟΡΜΑ. Το Data 1 (βλ. Εικόνα 27) είναι αντικείµενο ελέγχου δεδοµένων µε το οποίο γίνετε η σύνδεση της βάσης 3 µε το πρόγραµµα. Στις ιδιότητες του Data δίνονται το όνοµα της βάσης και το πλήρες µονοπάτι που αυτή είναι αποθηκευµένη καθώς και ο συγκεκριµένος πίνακας που θα συνδεθεί µε την εφαρµογή. Το συγκεκριµένο αντικείµενο έχει οριστεί από τις ιδιότητες να µην είναι ορατό όταν εκτελείτε η εφαρµογή. ΕΚΤΥΠΩΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Στη ΦΟΡΜΑ ΕΚΤΥΠΩΣΗΣ (Εικόνα 29) γίνεται η εκτύπωση του προγράµµατος. Εικόνα 29 (ΦΟΡΜΑ ΕΚΤΥΠΩΣΗΣ) 73

75 Πίνακας 9 Αντικείµενα και ιδιότητες της φόρµας ΠΡΟΣΘΑΦΑΙΡΕΣΗ ΑΙΘΟΥΣΩΝ. ΑΝΤΙΚΕΙΜΕΝΟ Ι ΙΟΤΗΤΑ ΤΙΜΗ Form EKTYPOSH ΦΟΡΜΑ ΕΚΤΥΠΩΣΗΣ Data Database RecordSourse Visible Data1 C:\PROGRAMMER\δβ2.mdb TABLE3 False MSFlexGrid GRDRESULTS CommandButton CommandButton CommandButton Command3 ΒΟΗΘΕΙΑ Command2 ΕΚΤΥΠΩΣΗ Command4 ΕΞΟ ΟΣ Ανάλυση κώδικα της Φόρµας Εκτύπωσης Πίσω από το κουµπί ΕΚΤΥΠΩΣΗ υπάρχει ο παρακάτω κώδικας : Private Sub Command2_Click() Dim nctr, GR, M, I As Integer Dim soutput(6) As String Dim AM1, AM2 As String Dim nscalemode, PAGE As Integer AM1 = " " AM2 = " " I = 0 M = 0 GR = 0 PAGE = 1 nscalemode = Printer.ScaleMode Printer.ScaleMode = vbinches GRDRESULTS.Row = 0 GRDRESULTS.Col = 0 soutput(0) = GRDRESULTS.Text GRDRESULTS.Col = 1 soutput(1) = GRDRESULTS.Text GRDRESULTS.Col = 2 soutput(2) = GRDRESULTS.Text GRDRESULTS.Col = 3 soutput(3) = GRDRESULTS.Text GRDRESULTS.Col = 4 74

76 soutput(4) = GRDRESULTS.Text PrintFont "MS Serif", 16, True, True, False PrintText 0.3, 0.1, "ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ" PrintFont "MS Serif", 12, True, True, False PrintText 0.3, 0.5, "ΗΜΕΡΟΜΗΝΙΑ = " & Date$ & " ΣΕΛΙ Α: " & PAGE PrintFont "MS Serif", 12, True, False, True PrintText 0.3, 1, soutput(0) PrintText 1, 1, soutput(1) PrintText 5, 1, soutput(2) PrintText 6.2, 1, soutput(3) PrintText 7.5, 1, soutput(4) PrintFont "MS Serif", 12, False, False, False If Not Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF I = I + 1 Data1.Recordset.MoveNext For nctr = 1 To I GRDRESULTS.Row = nctr GRDRESULTS.Col = 0 soutput(0) = GRDRESULTS.Text GRDRESULTS.Col = 1 soutput(1) = GRDRESULTS.Text AM1 = GRDRESULTS.Text GRDRESULTS.Col = 2 soutput(2) = GRDRESULTS.Text GRDRESULTS.Col = 3 soutput(3) = GRDRESULTS.Text GRDRESULTS.Col = 4 soutput(4) = GRDRESULTS.Text If AM1 = AM2 Then M = M PrintText M, 1 + (GR * 0.25), soutput(3) If GR = 38 And AM1 <> AM2 Then GR = 0 PAGE = PAGE + 1 Printer.NewPage GRDRESULTS.Row = 0 GRDRESULTS.Col = 0 GRDRESULTS.Text = "ΗΜΕΡΑ" GRDRESULTS.ColWidth(0) = 1000 GRDRESULTS.ColAlignment(0) = vbcenter 75

77 GRDRESULTS.Col = 1 GRDRESULTS.Text = "ΜΑΘΗΜΑ" GRDRESULTS.ColWidth(1) = 3000 GRDRESULTS.ColAlignment(1) = vbcenter GRDRESULTS.Col = 2 GRDRESULTS.Text = "ΕΞΑΜΗΝΟ" GRDRESULTS.ColWidth(2) = 1000 GRDRESULTS.ColAlignment(2) = vbcenter GRDRESULTS.Col = 3 GRDRESULTS.Text = "ΑΙΘΟΥΣΑ" GRDRESULTS.ColWidth(3) = 1000 GRDRESULTS.ColAlignment(3) = vbcenter GRDRESULTS.Col = 4 GRDRESULTS.Text = "ΩΡΑ" GRDRESULTS.ColWidth(4) = 1000 GRDRESULTS.ColAlignment(4) = vbcenter GRDRESULTS.Row = 0 GRDRESULTS.Col = 0 soutput(0) = GRDRESULTS.Text GRDRESULTS.Col = 1 soutput(1) = GRDRESULTS.Text GRDRESULTS.Col = 2 soutput(2) = GRDRESULTS.Text GRDRESULTS.Col = 3 soutput(3) = GRDRESULTS.Text GRDRESULTS.Col = 4 soutput(4) = GRDRESULTS.Text PrintFont "MS Serif", 16, True, True, False PrintText 0.3, 0.1, "ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ" PrintFont "MS Serif", 12, True, True, False PrintText 0.3, 0.5, "ΗΜΕΡΟΜΗΝΙΑ = " & Date$ & " ΣΕΛΙ Α: " & PAGE PrintFont "MS Serif", 12, True, False, True PrintText 0.3, 1, soutput(0) PrintText 1, 1, soutput(1) PrintText 5, 1, soutput(2) PrintText 6.2, 1, soutput(3) PrintText 7.5, 1, soutput(4) PrintFont "MS Serif", 12, False, False, False GRDRESULTS.Row = nctr GRDRESULTS.Col = 0 soutput(0) = GRDRESULTS.Text GRDRESULTS.Col = 1 soutput(1) = GRDRESULTS.Text AM1 = GRDRESULTS.Text GRDRESULTS.Col = 2 soutput(2) = GRDRESULTS.Text GRDRESULTS.Col = 3 76

78 soutput(3) = GRDRESULTS.Text GRDRESULTS.Col = 4 soutput(4) = GRDRESULTS.Text If AM1 <> AM2 Then GR = GR + 1 PrintText 0.5, 1 + (GR * 0.25), soutput(0) PrintText 1, 1 + (GR * 0.25), soutput(1) PrintText 5, 1 + (GR * 0.25), soutput(2) PrintText 6.2, 1 + (GR * 0.25), soutput(3) PrintText 7.5, 1 + (GR * 0.25), soutput(4) M = 0 AM2 = AM1 Next nctr Printer.EndDoc Printer.ScaleMode = nscalemode Private Sub Form_Load() GRDRESULTS.Row = 0 GRDRESULTS.Col = 0 GRDRESULTS.Text = "ΗΜΕΡΑ" GRDRESULTS.ColWidth(0) = 1000 GRDRESULTS.ColAlignment(0) = vbcenter GRDRESULTS.Col = 1 GRDRESULTS.Text = "ΜΑΘΗΜΑ" GRDRESULTS.ColWidth(1) = 3000 GRDRESULTS.ColAlignment(1) = vbcenter GRDRESULTS.Col = 2 GRDRESULTS.Text = "ΕΞΑΜΗΝΟ" GRDRESULTS.ColWidth(2) = 1000 GRDRESULTS.ColAlignment(2) = vbcenter GRDRESULTS.Col = 3 GRDRESULTS.Text = "ΑΙΘΟΥΣΑ" GRDRESULTS.ColWidth(3) = 1000 GRDRESULTS.ColAlignment(3) = vbcenter GRDRESULTS.Col = 4 GRDRESULTS.Text = "ΩΡΑ" GRDRESULTS.ColWidth(4) = 1000 GRDRESULTS.ColAlignment(4) = vbcenter MNCURRENTROW = 1 Private Sub PrintFont(sFont As String, _ nfontsize As Integer, _ bfontbold As Boolean, _ bfontitalic As Boolean, _ 77

79 bfontunderline As Boolean) Printer.Font = sfont Printer.FontSize = nfontsize Printer.FontBold = bfontbold Printer.FontItalic = bfontitalic Printer.FontUnderline = bfontunderline Private Sub PrintText(fXCoordinate As Single, _ fycoordinate As Single, _ stext As String) Dim lstart As Long Dim lindex As Long Printer.CurrentX = fxcoordinate Printer.CurrentY = fycoordinate lstart = 1 lindex = InStr(lStart, stext, vbcrlf) Do While lindex <> 0 Mid$(sText, lindex, 2) = " " lstart = lstart + lindex lindex = InStr(lStart, stext, vbcrlf) Printer.Print stext Ο κώδικας αυτός αποτελείτε από 3 µέρη, το κυρίως πρόγραµµα και 2 υπορουτίνες, µια για την ρύθµιση του εκτυπωτή όσον αφορά την γραµµατοσειρά (PrintFont) και µια για την ρύθµιση του εκτυπωτή όσον αφορά τις συντεταγµένες εκτύπωσης και το κείµενο εκτύπωσης (PrintText). Στο κυρίως πρόγραµµα αρχικά δηµιουργείται ένας πίνακας soutput( ) στον οποίο αποθηκεύεται η κάθε γραµµή εκτύπωσης που προέρχεται από το MSFlexGrid (GRDRESULTS). Στη συνέχεια αποθηκεύονται τα ονόµατα των πεδίων της Βάσης 8, τα οποία εµφανίζονται στην πρώτη σειρά (επικεφαλίδα) του MSFlexGrid (GRDRESULTS), στον πίνακα soutput( ). Έπειτα καλούνται οι υπορουτίνες PrintFont και PrintText µε τις ανάλογες παραµέτρους για κάθε γραµµή εκτύπωσης. Εδώ κρίνεται σκόπιµο να γίνει πρώτα επεξήγηση της λειτουργίας των υπορουτινών για την καλύτερη κατανόηση του κώδικα. Η υπορουτίνα PrintFont συνοδεύεται από τις παρακάτω παραµέτρους (Πίνακας 10). Πίνακας 10 Παράµετροι της υπορουτίνας PrintFont. 78

80 ΠΑΡΑΜΕΤΡΟΣ ΕΠΕΞΗΓΗΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΠΑΡΑΜΕΤΡΟΥ ΤΥΠΟΣ sfont nfontsize bfontbolt bfontitalic BFontUnderline Τύπος γραµµατοσειράς. Μέγεθος γραµµατοσειράς. Έντονη γραφή. Πλάγια γραφή. Υπογράµµιση. String Integer Boolean Boolean Boolean Κάθε φορά που καλείται η υπορουτίνα, οι παραπάνω παράµετροι αντιστοιχίζονται σε παραµέτρους του εκτυπωτή που θα χρησιµοποιήσει για την εκτύπωση που θα ακολουθήσει. Η υπορουτίνα PrintText συνοδεύεται από τις παρακάτω παραµέτρους (Πίνακας 11). Πίνακας 11 Παράµετροι της υπορουτίνας PrintΤext. ΠΑΡΑΜΕΤΡΟΣ ΕΠΕΞΗΓΗΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΠΑΡΑΜΕΤΡΟΥ ΤΥΠΟΣ fxcoordinate fycoordinate stext Συντεταγµένη Χ. Συντεταγµένη Υ. Κείµενο προς εκτύπωση. Single Single Boolean Κάθε φορά που καλείται η υπορουτίνα, οι Χ και Υ συντεταγµένες (Πίνακας 11) αντιστοιχίζονται µε τις Χ και Υ συντεταγµένες του εκτυπωτή. Έτσι καθορίζεται το σηµείο εκτύπωσης. Στη συνέχεια εκτυπώνεται σε αυτό το σηµείο το κείµενο που έχει καταχωρηθεί στην τρίτη παράµετρο (stext). Επιστρέφοντας τώρα στην ανάλυση του κώδικα του κυρίως προγράµµατος. Αρχικά καλείται η PrintFont µε τιµές στις παραµέτρους sfont, nfontsize, bfontbolt, bfontitalic, bfontunderline τις "MS Serif", 16, True, True, False αντίστοιχα και ακολουθεί η PrintText µε τιµές στις παραµέτρους fxcoordinate, fxcoordinate, stext τις 0.3, 0.1, "ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ ". Οπότε θα εκτυπωθεί ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ στις συντεταγµένες (Χ,Υ)=(0.3,0.1) µε γραµµατοσειρά MS Serif, µέγεθος γραµµατοσειράς 16, έντονη και πλάγια γραφή και χωρίς υπογράµµιση. Στη συνέχεια καλείται ξανά η PrintFont µε τιµές στις παραµέτρους sfont, nfontsize, bfontbolt, bfontitalic, bfontunderline τις "MS Serif", 12, True, True, False αντίστοιχα και ακολουθεί η PrintText µε τιµές στις παραµέτρους fxcoordinate, fxcoordinate, stext τις 0.3, 0.5, "ΗΜΕΡΟΜΗΝΙΑ = " & Date$. Οπότε θα εκτυπωθεί ΗΜΕΡΟΜΗΝΙΑ = καθώς και η τρέχουσα ηµεροµηνία στις συντεταγµένες (Χ,Υ)=(0.3,0.5) µε γραµµατοσειρά MS Serif, µέγεθος γραµµατοσειράς 12, έντονη και πλάγια γραφή και χωρίς υπογράµµιση. Στη συνέχεια καλείται ξανά η PrintFont µε τιµές στις παραµέτρους sfont, nfontsize, bfontbolt, bfontitalic, bfontunderline τις "MS Serif", 12, True, False, True αντίστοιχα και ακολουθεί η PrintText µε τιµές στις παραµέτρους fxcoordinate, fxcoordinate, stext τις 0.5, 1, soutput(0). Οπότε θα εκτυπωθεί το πρώτο στοιχείο του πίνακα soutput( ) στις συντεταγµένες (Χ,Υ)=(0.5,1) µε γραµµατοσειρά MS Serif, µέγεθος γραµµατοσειράς 12, έντονη και όχι πλάγια 79

81 γραφή και µε υπογράµµιση. Η υπορουτίνα PrintText καλείται για όλα τα στοιχεία του πίνακα soutput( ). Στη συνέχεια καλείται ξανά η PrintFont µε τιµές στις παραµέτρους sfont, nfontsize, bfontbolt, bfontitalic, bfontunderline τις "MS Serif", 12, False, False, False. Στη συνέχεια αποθηκεύεται η πρώτη εγγραφή της Βάσης 8, η οποία εµφανίζεται στην δεύτερη σειρά του MSFlexGrid (GRDRESULTS), στον πίνακα soutput() και ακολουθεί η PrintText µε τιµές στις παραµέτρους fxcoordinate, fxcoordinate, stext τις 0.5, 1 + (GR * 0.25), soutput(0). Οπότε θα εκτυπωθεί το πρώτο στοιχείο του πίνακα soutput( ) στις συντεταγµένες (Χ,Υ)=( 0.5, 1 + (GR * 0.25)) µε γραµµατοσειρά MS Serif, µέγεθος γραµµατοσειράς 12, όχι έντονη και όχι πλάγια γραφή και χωρίς υπογράµµιση. Η υπορουτίνα PrintText καλείται για όλα τα στοιχεία του πίνακα soutput( ). Αυτό επαναλαµβάνεται για όλες τις εγγραφές της Βάσης 8. Αν µετά από µία εκτύπωση ακολουθεί εγγραφή της οποίας το πεδίο ΜΑΘΗΜΑ είναι ίδιο µε το προηγούµενο τότε αλλάζουν και οι δυο συντεταγµένες Χ και Υ και εκτυπώνεται µονάχα το στοιχείο 3 του πίνακα soutput( ), (soutput(3)). Αν µετά από µία εκτύπωση δεν ακολουθεί εγγραφή της οποίας το πεδίο ΜΑΘΗΜΑ να είναι ίδιο µε το προηγούµενο, τότε αλλάζει µονάχα η συντεταγµένη Υ και εκτυπώνονται όλα τα στοιχεία του πίνακα soutput( ). Έτσι µε αυτόν τον τρόπο επιτυγχάνεται η εκτύπωση όπως φαίνεται στην Εικόνα 30. ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ ΗΜΕΡΟΜΗΝΙΑ = ΜΜ-ΗΗ-ΕΕ ΗΜΕΡΑ ΜΑΘΗΜΑ ΕΞΑΜΗΝΟ ΑΙΘΟΥΣΑ ΩΡΑ 1 ΜΑΘΗΜΑ Χ ΧΧ ΧΧΧ Εικόνα 30(Τρόπος εκτύπωσης) Πίσω από το κουµπί ΒΟΗΘΕΙΑ υπάρχει ο παρακάτω κώδικας : Private Sub Command3_Click() HELPEKTYP.Show 80

82 Ο κώδικας αυτός απλά εµφανίζει τη βοήθεια για τη φόρµα ΕΚΤΥΠΩΣΗΣ η οποία φαίνεται στην παρακάτω εικόνα : Εικόνα 31 Πίσω από το κουµπί ΕΞΟ ΟΣ υπάρχει ο παρακάτω κώδικας : Private Sub Command1_Click() Unload Me Με τον κώδικα αυτό επιστρέφουµε στην ΚΥΡΙΑ ΦΟΡΜΑ. Το Data 1 το οποίο χρησιµοποιείται στη φόρµα εκτύπωσης είναι αντικείµενο ελέγχου δεδοµένων µε το οποίο γίνετε η σύνδεση της βάσης 8 µε το πρόγραµµα. Στις ιδιότητες του Data δίνονται το όνοµα της βάσης και το πλήρες µονοπάτι που αυτή είναι αποθηκευµένη καθώς και ο συγκεκριµένος πίνακας που θα συνδεθεί µε την εφαρµογή. Το συγκεκριµένο αντικείµενο έχει οριστεί από τις ιδιότητες να µην είναι ορατό όταν εκτελείτε η εφαρµογή. 81

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 11 Ηµεροµηνία : 10/6/2008 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :...Τµήµα : Αριθµός :...Βαθµός

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ : Β ΗΜΕΡΟΜΗΝΙΑ: Τετάρτη, 3 Ιουνίου 2009 ΩΡΑ: 07:45 10:15 ΟΔΗΓΙΕΣ: Το εξεταστικό δοκίμιο αυτό αποτελείται

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑΤΟΣ ασική Πληροφορική 1 Θεωρία 5 ου ΕΞΑΜΗΝΟΥ ΜΑΘΗΜΑ 1 ο Λάζαρος Σ. Ηλιάδης Αναπληρωτής Καθηγητής ΠΘ

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑΤΟΣ ασική Πληροφορική 1 Θεωρία 5 ου ΕΞΑΜΗΝΟΥ ΜΑΘΗΜΑ 1 ο Λάζαρος Σ. Ηλιάδης Αναπληρωτής Καθηγητής ΠΘ 1. ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΓΛΩΣΣΑ VISUAL BASIC Τύποι µεταβλητών στη Visual Basic Integer Ακέραιοι αριθµοί -32768 έως 32767 Long Ακέραιοι αριθµοί έως περίπου +-2 δις Single Αριθµοί µε υποδιαστολή -10-45

Διαβάστε περισσότερα

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC Η Visual Basic είναι μια γλώσσα προγραμματισμού οδηγούμενη από συμβάντα που έχει ένα ολοκληρωμένο περιβάλλον ανάπτυξης Έχει δημιουργηθεί από τη

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 6: Ασκήσεις στη Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET 1. Ανοίξτε το πρόγραμμα Microsoft Visual Studio Net 2. Στην start page επιλέξτε my profile 3. Στο πεδίο profile επιλέξτε visual basic developer και κλείστε την start page 4. Επιλέξτε File New Project 5.

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

Διαβάστε περισσότερα

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΛΥΚΕΙΟ ΑΡΧ. ΜΑΚΑΡΙΟΥ Γ - ΔΑΣΟΥΠΟΛΗ ΣΧΟΛΙΚΟ ΕΤΟΣ 2014-2015 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΗΜΕΡΟΜΗΝΙΑ: 10 /6 / 2015 ΒΑΘΜΟΣ:... ΤΑΞΗ: Β ΧΡΟΝΟΣ: 2 ώρες ΥΠ. ΚΑΘΗΓΗΤΗ:...

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011 ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ ΗΜΕΡΟΜΗΝΙΑ: 07/06/2011 ΤΑΞΗ: Β ΛΥΚΕΙΟΥ ΩΡΑ: 11:00 ΑΡ. ΣΕΛΙΔΩΝ: 14 ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΗ

Διαβάστε περισσότερα

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

Διαβάστε περισσότερα

Visual basic (µέρος 1 ο ) 1 Περιεχόµενα Visual Basic - Ιδιότητες και Μέθοδοι... 3 Visual Basic editor (περιβάλλον εργασίας).... 7 Menu (µενού επιλογών)... 8 File... 9 Edit... 10 View... 11 Project... 12

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΑΓΙΑΣ ΦΥΛΑΞΕΩΣ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ. Ονοµατεπώνυµο :... Τµήµα :... Αριθµός :...

ΛΥΚΕΙΟ ΑΓΙΑΣ ΦΥΛΑΞΕΩΣ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ. Ονοµατεπώνυµο :... Τµήµα :... Αριθµός :... ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 12 Ηµεροµηνία : 1/6/2007 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :....... Τµήµα :... Αριθµός

Διαβάστε περισσότερα

ΔΑΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ 1. Επανάληψη Θεωρίας 22/1/09

ΔΑΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ 1. Επανάληψη Θεωρίας 22/1/09 ΔΑΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ 1 Επανάληψη Θεωρίας 22/1/09 Private Sub Command1_Click() Athroisma = 0 For I = 1 To VScroll1.Value Athroisma = Athroisma + I Text1.Text = Athroisma -------------------------------- Private

Διαβάστε περισσότερα

Κων/νου Στυλιάδη. Visual Basic στην Access Κλήρωση Εξεταστών Υποψηφίων Οδηγών

Κων/νου Στυλιάδη. Visual Basic στην Access Κλήρωση Εξεταστών Υποψηφίων Οδηγών Προγραµµατισµός µε Visual Basic στην Access Κλήρωση Εξεταστών Υποψηφίων Οδηγών Φλώρινα, Ιανουάριος 2002 Να γίνει η παρακάτω εφαρµογή στην Access : Να δηµιουργηθεί µια βάση δεδοµένων µε όνοµα Exams.mdb,

Διαβάστε περισσότερα

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties) Καθηγητής : Κώστας Αχιλλέως ΒΑΣΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΣΤΗ VISUAL BASIC A ΛΥΚΕΙΟΥ ΚΑΤΕΥΘΥΝΣΗΣ Α) Τι είναι η Visual Basic Είναι μια γλώσσα οπτικού προγραμματισμού υψηλού επιπέδου. Β) Οπτικός

Διαβάστε περισσότερα

Γνωριµία µε τη Microsoft Access

Γνωριµία µε τη Microsoft Access Γνωριµία µε τη Microsoft Access ηµιουργία νέας βάσης δεδοµένων Έναρξη - Προγράµµατα - Microsoft Access - ηµιουργία νέας βάσης δεδοµένων µε χρήση Κενής βάσης δεδοµένων - ΟΚ Επιλέγουµε Φάκελο και στο Όνοµα

Διαβάστε περισσότερα

5. MΑΚΡΟΕΝΤΟΛΕΣ. Η δηµιουργία Μακροεντολής γίνεται µε δύο τρόπους :

5. MΑΚΡΟΕΝΤΟΛΕΣ. Η δηµιουργία Μακροεντολής γίνεται µε δύο τρόπους : 5. MΑΚΡΟΕΝΤΟΛΕΣ. περιέχουν ένα σύνολο ενεργειών-κινήσεων-εντολών οι οποίες εκτελούνται όλες µαζί όταν εκτελείται η µακροεντολή που τις περιέχει. συντάσσονται : sub όνοµα µακροεντολής().....end sub. Οι

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES 2. ΠΑΤΗΣΤΕ EDIT ΑΛΛΑΞΤΕ ΤΟ ΟΝΟΜΑ COMPANY CLOSE 3. ΠΑΤΗΣΤΕ NEW (CREATE NEW)

Διαβάστε περισσότερα

ΜICROSOFT VISUAL STUDIO 2008. Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

ΜICROSOFT VISUAL STUDIO 2008. Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή ΜICROSOFT VISUAL STUDIO 2008 Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging Εισαγωγή Visual Basic 2008 Eργαλείο ανάπτυξης εντυπωσιακών εφαρµογών στα Windows, στο Web, φορητά

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας. Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". ΚΕΦΑΛΑΙΟ 2 Χρήση εργαλείων

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ)

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ) Γενικός Σκοπός Το αναλυτικό πρόγραμμα έχει ως γενικό σκοπό να δώσει στους μαθητές τις απαιτούμενες γνωστικές, κριτικές και αναλυτικές δεξιότητες ώστε να είναι ικανοί να χρησιμοποιούν τους υπολογιστές για

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ Συγγραφική Ομάδα Εποπτεία: Ιάκωβος Παπαντωνίου Ευστάθιος Ευσταθίου Θεόδουλος Κωνσταντίνου Ξένιος Ξενοφώντος Χρίστος Μινίκκης 1 Εισαγωγή στον προγραμματισμό υπολογιστών

Διαβάστε περισσότερα

Ι.Ε.Κ ΠΕΙΡΑΙΑ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ι.Ε.Κ ΠΕΙΡΑΙΑ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Ι.Ε.Κ ΠΕΙΡΑΙΑ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗ V I S U A L B A S I C ΕΚΠΑΙΔΕΥΤΗΣ : ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΠΕ 20 ΠΛΗΡΟΦΟΡΙΚΗΣ V i s u a l B a s i c Θ ε ω ρ η τ ι κ ό Μ έ ρ ο

Διαβάστε περισσότερα

Εντολή If-Then-Else Σκοπός Μαθήματος

Εντολή If-Then-Else Σκοπός Μαθήματος Εντολή If-Then-Else Σκοπός Μαθήματος Χρήση εντολής If Then Else για διακλάδωση σε ένα σύνολο εντολών ανάλογα με το αποτελέσματα μιας μεταβαλλόμενης συνθήκης. Εντολή If-Then Η σύνταξη της If Then είναι

Διαβάστε περισσότερα

Οδηγίες Προσαρτήματος

Οδηγίες Προσαρτήματος Οδηγίες Προσαρτήματος Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας εκτύπωσης Προσαρτήματος στην εφαρμογή Γενική Λογιστική Παρακάτω προτείνεται μια αλληλουχία ενεργειών

Διαβάστε περισσότερα

Υπολογισμός Φορολογικής Αναμόρφωσης

Υπολογισμός Φορολογικής Αναμόρφωσης Υπολογισμός Φορολογικής Αναμόρφωσης Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Υπολογισμού Φορολογικής Αναμόρφωσης στην εφαρμογή Λογιστική Διαχείριση. Παρακάτω

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση TextBoxes ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση TextBoxes ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: Χρήση TextBoxes ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

Διαβάστε περισσότερα

Visual Basic Γλώσσα οπτικού

Visual Basic Γλώσσα οπτικού Visual Basi Γλώσσα οπτικού προγραµµατισµού «Η αρχή είναι το ήµισυ του παντός» Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να εξηγούν τι είναι η Visual Basi. ναεξηγούνταστάδιαδηµιουργίας

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΠΑΡΑΛΙΜΝΙΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ: Πληροφορική Κατεύθυνσης ΗΜΕΡΟΜΗΝΙΑ: 10/06/2014

ΛΥΚΕΙΟ ΠΑΡΑΛΙΜΝΙΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ: Πληροφορική Κατεύθυνσης ΗΜΕΡΟΜΗΝΙΑ: 10/06/2014 ΛΥΚΕΙΟ ΠΑΡΑΛΙΜΝΙΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: 2013-2014 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2014 ΜΑΘΗΜΑ: Πληροφορική Κατεύθυνσης ΗΜΕΡΟΜΗΝΙΑ: 10/06/2014 ΤΑΞΗ: Β ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2:00 ΩΡΑ: 7:45 9:45 π.μ.

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΟΓΡΑΦΗΣΗ ΝΟΣΟΚΟΜΕΙΟΥ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΟΓΡΑΦΗΣΗ ΝΟΣΟΚΟΜΕΙΟΥ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΟΓΡΑΦΗΣΗ ΝΟΣΟΚΟΜΕΙΟΥ Του φοιτητή ΣΙΔΗΡΟΠΟΥΛΟΣ ΘΕΟΔΟΣΙΟΣ Επιβλέπων καθηγητής ΓΙΑΓΚΟΥΣΤΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Αρ. Μητρώου: 01/1670 Θεσσαλονίκη 2012 1 από 32 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 2

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων Pylon Entry Πόροι Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων Περιεχόμενα Δημιουργία Νέου Πόρου... 3 Καρτέλα Βασικά Στοιχεία... 4 Καρτέλα Βασικά Στοιχεία... 4 Καρτέλα

Διαβάστε περισσότερα

Το teachers Web είναι µία ΝΕΑ Υπηρεσία που υποστηρίζεται από την Οµάδα Υποστήριξης του Πληροφοριακού Συστήµατος Γραµµατειών. Η υπηρεσία Teachers Web, προσφέρει στους διδάσκοντες χρήστες του συστήµατος

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

Διαβάστε περισσότερα

Εγχειρίδιο Χρήστη Φάση 2: Αρχική Καταχώρηση Συµβάσεων

Εγχειρίδιο Χρήστη Φάση 2: Αρχική Καταχώρηση Συµβάσεων ΦΟΡΕΑΣ: ΙΝΣΤΙΤΟΥΤΟ ΙΑΡΚΟΥΣ ΕΚΠΑΙ ΕΥΣΗΣ ΕΝΗΛΙΚΩΝ ΕΡΓΟ: «Υλοποίηση Πληροφοριακού συστήµατος για την Υποστήριξη του Έργου ιαχείρισης των ηµοσίων Ι.Ε.Κ.» Εγχειρίδιο Χρήστη Φάση 2: Αρχική Καταχώρηση Συµβάσεων

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Αρ. Μητρώου:

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Αρ. Μητρώου: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Της φοιτήτριας Νεστοροπούλου Μαρίας Επιβλέπων καθηγητής Γιακουστίδης Κωνσταντίνος Αρ. Μητρώου: 052922

Διαβάστε περισσότερα

ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ

ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ 1 Ο Ι.Ε.Κ ΠΕΙΡΑΙΑ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ Δημιουργία Βάσης Δεδομένων σε Περιβάλλον VISUAL BASIC: 1. Κλικ στο Add-Ins 2. Επιλέγω Visual Data

Διαβάστε περισσότερα

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

Διαβάστε περισσότερα

Υπόδειγµα 1: Πλήρης κυριότητα σε διαµέρισµα µε µία αποθήκη χωρίς χιλιοστά στο οικόπεδο και µία θέση στάθµευσης µε χιλιοστά στο οικόπεδο

Υπόδειγµα 1: Πλήρης κυριότητα σε διαµέρισµα µε µία αποθήκη χωρίς χιλιοστά στο οικόπεδο και µία θέση στάθµευσης µε χιλιοστά στο οικόπεδο Υπόδειγµα 1: Πλήρης κυριότητα σε διαµέρισµα µε µία αποθήκη χωρίς χιλιοστά στο οικόπεδο και µία θέση στάθµευσης µε χιλιοστά στο οικόπεδο Για την ηλεκτρονική υποβολή της δήλωσης αρχικά στην σελίδα του κτηµατολογίου

Διαβάστε περισσότερα

Ηλεκτρονικές Υπηρεσίες: ηλώσεις Μαθηµάτων Συγγραµµάτων, Ηλεκτρονικό Ταχυδροµείο, Πιστοποιητικό Ασφάλειας

Ηλεκτρονικές Υπηρεσίες: ηλώσεις Μαθηµάτων Συγγραµµάτων, Ηλεκτρονικό Ταχυδροµείο, Πιστοποιητικό Ασφάλειας ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ Ηλεκτρονικές Υπηρεσίες: ηλώσεις Μαθηµάτων Συγγραµµάτων, Ηλεκτρονικό Ταχυδροµείο, Πιστοποιητικό Ασφάλειας 1. Εισαγωγικά Οι φοιτητές του Τµήµατος ιοίκησης Επιχειρήσεων του Τ.Ε.Ι

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1 On line ΔΗΛΩΣΗ ΕΦΑΡΜΟΓΗΣ Μέτρο 2.2.1 ΙΑΝΟΥΑΡΙΟΣ 2017 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1 ΓΕΝΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ... 3 1.1 Υποχρεωτικά Πεδία... 3 1.2 Βοηθητική Λίστα Τιμών (drop down list)... 3 1.3 Αναζήτηση... 3 1.3.1

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 10 η : Το αντικείμενο Συλλογή (Collection) & τα αντικείμενα ListBox, CheckedListBox & ComboBox Ι.

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3 ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3 Φόρµες Ένας τρόπος για να συλλέξετε πληροφορία από τους επισκέπτες του δικτυακού σας τόπου είναι οι φόρµες. Με τα εξειδικευµένα αυτά εργαλεία µπορείτε να κάνετε έρευνες ή τεστ,

Διαβάστε περισσότερα

Να γράψετε πρόγραμμα στην Visual Basic το οποίο θα εκτελεί τις ανάλογες εντολές για κάθε ένα από τα πιο κάτω Command Buttoms.

Να γράψετε πρόγραμμα στην Visual Basic το οποίο θα εκτελεί τις ανάλογες εντολές για κάθε ένα από τα πιο κάτω Command Buttoms. Άσκηση 1 Δίνεται η πιο κάτω φόρμα στην Visual Basic Να γράψετε πρόγραμμα στην Visual Basic το οποίο θα εκτελεί τις ανάλογες εντολές για κάθε ένα από τα πιο κάτω Command Buttoms. Εισαγωγή Τιμών στους Πίνακες

Διαβάστε περισσότερα

Ειδικά Θέματα Παραμετροποίησης. Ασφάλεια Εφαρμογής Εναρμόνιση με τον κανονισμό GDRP. Data Communication A.E.

Ειδικά Θέματα Παραμετροποίησης. Ασφάλεια Εφαρμογής Εναρμόνιση με τον κανονισμό GDRP. Data Communication A.E. Ασφάλεια Εφαρμογής Εναρμόνιση με τον κανονισμό GDRP Γενικός Κανονισμός Προστασίας Προσωπικών Δεδομένων (GDPR) Η συμμόρφωση της εφαρμογής Premium HRM Μισθοδοσία της Data Communication με το GDPR Στις οδηγίες

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΑ. 3.1.1 Name, Caption, Backcolor. 3.2.1 Load, Unload, Activate

ΚΕΦΑΛΑΙΑ. 3.1.1 Name, Caption, Backcolor. 3.2.1 Load, Unload, Activate Vellum Object Oriented Programming Visual Basic Certificate Πιστοποιητικό ανάπτυξης εφαρµογών αντικειµενοστραφούς προγραµµατισµού µε την γλώσσα Visual Basic Vellum Global Educational Services Σελίδα 1

Διαβάστε περισσότερα

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός και Εφαρμογές Υπολογιστών Προγραμματισμός και Εφαρμογές Υπολογιστών Ενότητα 3: Συνθήκες- Δομές απόφασης 1/2 Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Κ.Π. Γιαλούρης Μαθησιακοί Στόχοι Κατανόηση της εντολής ελέγχου & επιλογής

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΩΝ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΠΡΑΞΕΩΝ ΔΕΛΤΙΟ ΔΗΛΩΣΗΣ ΔΑΠΑΝΩΝ (ΕΕΣ)

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΩΝ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΠΡΑΞΕΩΝ ΔΕΛΤΙΟ ΔΗΛΩΣΗΣ ΔΑΠΑΝΩΝ (ΕΕΣ) ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙΔΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ. Υλοποίηση του Ολοκληρωμένου Πληροφοριακού Συστήματος (Ο.Π.Σ.) σύμφωνα με τις απαιτήσεις της Προγραμματικής Περιόδου

Διαβάστε περισσότερα

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ 1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ Σελίδα 1 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ... 3 1 ο Βήμα: Δημιουργία νέας χρήσης.... 3 2 ο Βήμα: Εισαγωγή στην νέα χρήση... 3 3ο

Διαβάστε περισσότερα

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014 ΤΑΞΗ: 3 η ΤΑΞΗ ΕΠΑ.Λ. (Α Β ΟΜΑ Α) ΜΑΘΗΜΑ: ΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΙ ΙΚΟΤΗΤΑΣ Ηµεροµηνία: Κυριακή 4 Μαΐου 2014 ιάρκεια Εξέτασης: 3 ώρες ΘΕΜΑ Α Α1. α - Σωστό β - Σωστό γ - Λάθος δ - Λάθος ε Λάθος ΑΠΑΝΤΗΣΕΙΣ

Διαβάστε περισσότερα

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση.

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση. Εφαρµογή EXTRA ιαδικασία εξαγωγής της µηχανογραφικής έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση. Σελ.1 Το συγκεκριµένο εγχειρίδιο δηµιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 -

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 - - 2 - ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING Περιεχόµενα Εγκατάσταση λογισµικού Οθόνη καλωσορίσµατος στην εγκατάσταση...4 Πληροφορίες ιδρύµατος και λογισµικού...5 ηµιουργία συντόµευσης στο µενού έναρξης

Διαβάστε περισσότερα

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6.

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6. D.P.S. 710 DRIVER Με την εγκατάσταση του οδηγού D.P.S 710 εγκαθίστανται και οι usb drivers στο φάκελο C:\DPS710_FISCAL\DRIVERS Συνδέστε την ταµειακή και στο παράθυρο που θα εµφανίσουν τα windows για την

Διαβάστε περισσότερα

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

Διαβάστε περισσότερα

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Σύνοψη Σ αυτό το κεφάλαιο θα περιγράψουμε τη δημιουργία φορμών, προκειμένου να εισάγουμε δεδομένα και να εμφανίζουμε στοιχεία από τους πίνακες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

Διαβάστε περισσότερα

Σενάριο Χρήσης myschool

Σενάριο Χρήσης myschool Σενάριο Χρήσης ΦΟΡΕΙΣ Επιβεβαίωση των Στοιχείων του Φορέα Αρχικά, θα κληθείτε να ελέγξετε την ορθότητα των στοιχείων του Φορέα σας. Επιλέγοντας την καρτέλα «Φορείς», από το μενού που βρίσκεται στο πάνω

Διαβάστε περισσότερα

Ασφάλειες Database Οδηγίες Χρήσης Εφαρµογής

Ασφάλειες Database Οδηγίες Χρήσης Εφαρµογής Ασφάλειες Database Οδηγίες Χρήσης Εφαρµογής Εφαρµογή ιαχείρισης Ασφαλιστικού Γραφείου-Πρακτορείου ΠΕΡΙΕΧΟΜΕΝΑ 1.Γενικά Ταξινόµηση Εναλλαγή µεταξύ των ανοικτών παραθύρων Εξαγωγή εδοµένων Συνηµµένα Αρχεία

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ 2013 ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ Περιήγηση στις δυνατότητες του λογισμικού και στον τρόπο χρήσης του ΟΜΑΔΑ ΕΡΓΟΥ ΔΙΕΥΘΥΝΣΗΣ

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

Meridian v1.8.1.23 Βασικές Οδηγίες Χρήσης

Meridian v1.8.1.23 Βασικές Οδηγίες Χρήσης Meridian v1.8.1.23 Βασικές Οδηγίες Χρήσης 1 Οδηγίες Εγκατάστασης Η έκδοση του Meridian είναι συμβατή μόνο με τα λειτουργικά συστήματα Windows 2000/XP ή νεότερα. Γενικά Από τα περιεχόμενα του cd ή από το

Διαβάστε περισσότερα

Εισαγωγή και επεξεργασία δεδοµένων

Εισαγωγή και επεξεργασία δεδοµένων Μάθηµα 4 Εισαγωγή και επεξεργασία δεδοµένων Εισαγωγή δεδοµένων σε πίνακα 1. Ανοίγουµε το παράθυρο του πίνακα Υπάλληλοι σε προβολή φύλλου δεδοµένων. 2. Η κενή γραµµή, η οποία υπάρχει πάντα στον πίνακα,

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για ιευθύνσεις και Γραφεία Εκπαίδευσης

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για ιευθύνσεις και Γραφεία Εκπαίδευσης ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για ιευθύνσεις και Γραφεία Εκπαίδευσης ΠΕΡΙΕΧΌΜΕΝΑ Περιεχόµενα Περιεχόµενα... - 1 - Εισαγωγή... - 2 - Σηµείο πρόσβασης και αναγνώριση

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α ΦΥΛΛΟ ΑΣΚΗΣΕΩΝ : 11 Αρχεία κειµένου - Αρχεία µε τύπο ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη Παρατηρήσεις:

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΣΥΣΤΗΜΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΤΩΝ Online Student Trainer

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΣΥΣΤΗΜΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΤΩΝ Online Student Trainer ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΖΕΓΚΙΝΗΣ ΗΜΗΤΡΙΟΣ (Α.Μ. 26/01) ΤΟΥΤΟΥΝΤΖΙ ΗΣ ΧΡΗΣΤΟΣ (Α.Μ. 120/01) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΣΥΣΤΗΜΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΤΩΝ Online Student Trainer Εξεταστική

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Εφαρμογή κατασκευής Προγράμματος εξεταστικών περιόδων. εφαρμογής

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Εφαρμογή κατασκευής Προγράμματος εξεταστικών περιόδων. εφαρμογής «Εφαρμογή κατασκευής προγράμματος εξεταστικών περιόδων» ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Κεντρική σελίδα της εφαρμογής 1 Περιεχόμενα Κεντρική σελίδα της εφαρμογής... 3 Σελίδα διαχείρισης καθηγητών... 4 Σελίδα διαχείρισης

Διαβάστε περισσότερα

eλογιστής Οδηγίες Χρήσης Εφαρµογής

eλογιστής Οδηγίες Χρήσης Εφαρµογής eλογιστής Οδηγίες Χρήσης Εφαρµογής Εφαρµογή ιαχείρισης Λογιστικού Γραφείου ΠΕΡΙΕΧΟΜΕΝΑ 1. Γενικά Ταξινόµηση Εναλλαγή µεταξύ των ανοικτών παραθύρων Εξαγωγή εδοµένων Συνηµµένα Αρχεία Εµφανιζόµενες Στήλες

Διαβάστε περισσότερα

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER 4.1. ΕΙΣΑΓΩΓΗ Με την "Επίλυση", µπορείτε να βρείτε τη βέλτιστη τιµή για τον τύπο ενός κελιού το οποίο ονοµάζεται κελί προορισµού σε ένα φύλλο εργασίας. Η "Επίλυση" λειτουργεί

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 7 η : Εντολές Επανάληψης Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΟΝ ΙΣΟΛΟΓΙΣΜΟ ΚΑΙ ΤΗΝ ΚΑΤΑΣΤΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΧΡΗΣΕΩΝ (BSD16) ΙΟΥΛΙΟΣ 2008 Ηλεκτρονική υποβολή στοιχείων

Διαβάστε περισσότερα

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Οδηγός Εγγραφής Γραφείων Πρακτικής Άσκησης Για να εγγραφείτε στο πρόγραμμα «Άτλας» ως Γραφείο Πρακτικής Άσκησηςθα πρέπει πρώτα να δημιουργήσετε

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗ ΔΗΛΩΣΗ ΜΑΘΗΜΑΤΩΝ ΓΙΑ ΤΟ 2011-12 ΧΕΙΜΕΡΙΝΟ. Για να πραγματοποιήσετε την δήλωσή σας μεταβαίνετε στο σύνδεσμο:

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗ ΔΗΛΩΣΗ ΜΑΘΗΜΑΤΩΝ ΓΙΑ ΤΟ 2011-12 ΧΕΙΜΕΡΙΝΟ. Για να πραγματοποιήσετε την δήλωσή σας μεταβαίνετε στο σύνδεσμο: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗ ΔΗΛΩΣΗ ΜΑΘΗΜΑΤΩΝ ΓΙΑ ΤΟ 2011-12 ΧΕΙΜΕΡΙΝΟ Για να πραγματοποιήσετε την δήλωσή σας μεταβαίνετε στο σύνδεσμο: https://e-gram.teilam.gr/unistudent Ειδικά οι πρωτοετείς μεταβαίνουν στον σύνδεσμο

Διαβάστε περισσότερα

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της Διαδικασίας Χρηστών.

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

Διαβάστε περισσότερα

Είδη. Σε αυτό το εγχειρίδιο περιγράφεται η Δημιουργία, Μεταβολή, Διαγραφή και Αναζήτηση ενός είδους

Είδη. Σε αυτό το εγχειρίδιο περιγράφεται η Δημιουργία, Μεταβολή, Διαγραφή και Αναζήτηση ενός είδους Είδη Σε αυτό το εγχειρίδιο περιγράφεται η Δημιουργία, Μεταβολή, Διαγραφή και Αναζήτηση ενός είδους Περιεχόμενα Δημιουργία Νέου Είδους 3 Καρτέλα Βασικά Στοιχεία 4 Καρτέλα Πολιτική Τιμολόγησης 7 Στην καρτέλα

Διαβάστε περισσότερα

Pylon Entry. Είδη. Στη διαδικασία αυτή περιγράφεται η Δημιουργία Μεταβολή Διαγραφή - Αναζήτηση ενός είδους

Pylon Entry. Είδη. Στη διαδικασία αυτή περιγράφεται η Δημιουργία Μεταβολή Διαγραφή - Αναζήτηση ενός είδους Pylon Entry Είδη Στη διαδικασία αυτή περιγράφεται η Δημιουργία Μεταβολή Διαγραφή - Αναζήτηση ενός είδους Περιεχόμενα Δημιουργία Νέου Είδους... 3 Καρτέλα Βασικά Στοιχεία... 4 Καρτέλα Πολιτική Τιμολόγησης...

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

Διαβάστε περισσότερα

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Το κεφάλαιο αυτό περιλαµβάνει µια συνοπτική εισαγωγή στην Microsoft Access 2000, που είναι και το σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων µε το οποίο θα ασχοληθούµε.

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΠΑΛΟΥΡΙΩΤΙΣΣΑΣ ΣΧΟΛΙΚΟ ΕΤΟΣ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΙΟΥ-ΙΟΥΝΙΟΥ 2013 ΒΑΘΜΟΣ: ΟΝΟΜΑ:... ΤΜΗΜΑ:... ΑΡ.:...

ΛΥΚΕΙΟ ΠΑΛΟΥΡΙΩΤΙΣΣΑΣ ΣΧΟΛΙΚΟ ΕΤΟΣ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΙΟΥ-ΙΟΥΝΙΟΥ 2013 ΒΑΘΜΟΣ: ΟΝΟΜΑ:... ΤΜΗΜΑ:... ΑΡ.:... ΛΥΚΕΙΟ ΠΑΛΟΥΡΙΩΤΙΣΣΑΣ ΣΧΟΛΙΚΟ ΕΤΟΣ 2012-2013 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΙΟΥ-ΙΟΥΝΙΟΥ 2013 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ: Β ΗΜΕΡΟΜΗΝΙΑ: 31/05/2013 ΧΡΟΝΟΣ: 2 ΩΡΕΣ ΩΡΑ: 7:45-9:45 ΒΑΘΜΟΣ: Αριθμητικώς:... Ολογράφως:...

Διαβάστε περισσότερα

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 3 η : Η Γλώσσα Προγραμματισμού VB.NET (2 ο Μέρος) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής

Διαβάστε περισσότερα

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΕΞΕΤΑΣΕΙΣ ΓΙΑ ΤΑ ΑΝΩΤΕΡΑ ΚΑΙ ΑΝΩΤΑΤΑ ΕΚΠΑΙ ΕΥΤΙΚΑ Ι ΡΥΜΑΤΑ Μάθηµα: Πληροφορική Ηµεροµηνία εξέτασης: Σάββατο,

Διαβάστε περισσότερα

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Δεν κάνει compile και το λάθος είναι σηµαντικό: Το head1 είναι δείκτης σε struct, εποµένως η προσπέλαση πεδίου γίνεται 321 FAIL µε head1->next και όχι head1.next. Επιπλέον, έχετε λάθος

Διαβάστε περισσότερα

Ο.Π.Σ. σύμφωνα με Π Τ Π. Έκδοση: ι με τη

Ο.Π.Σ. σύμφωνα με Π Τ Π. Έκδοση: ι με τη ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΑΣ & ΑΝΑΠΤΥΞΗΣ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ. Υλοποίηση του Ολοκληρωμένου Πληροφοριακού Συστήματος (Ο.Π.Σ.) σύμφωνα με τις

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης για Σχολικές Μονάδες Δ/θμιας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης για Σχολικές Μονάδες Δ/θμιας ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης για Σχολικές Μονάδες Δ/θμιας ΠΕΡΙΕΧΌΜΕΝΑ Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... - 1 - ΕΙΣΑΓΩΓΗ... - 3 - ΣΗΜΕΙΟ ΠΡΟΣΒΑΣΗΣ ΚΑΙ ΑΝΑΓΝΩΡΙΣΗ ΧΡΗΣΤΩΝ... -

Διαβάστε περισσότερα

Name (.: lblname Caption (. : 0 = BorderStyle ( 1 = 0 = Alignment ( ) 2 = Font ( Times New, Bold, 12

Name (.: lblname Caption (. : 0 = BorderStyle ( 1 = 0 = Alignment ( ) 2 = Font ( Times New, Bold, 12 Visual Basic (µέρος 2 ο ) 1 Περιεχόµενα Ετικέτες (Labels)... 3 Πλαίσια Κειµένου (TextBoxes)... 4 Πλήκτρα Εντολών (Command Buttons)... 6 Πλήκτρα Επιλογής (Option Buttons)... 7 Πλαίσια Ελέγχου (Check Boxes)...

Διαβάστε περισσότερα

Είσοδος. Καλωσορίσατε στο Ενιαίο Σύστημα Πληρωμών Δαπανών Ηλεκτρονικών Υπηρεσιών.

Είσοδος. Καλωσορίσατε στο Ενιαίο Σύστημα Πληρωμών Δαπανών Ηλεκτρονικών Υπηρεσιών. «Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών» έκδοση v.1.2, 10/09/2014 Περιεχόμενα Είσοδος... 3 Οικονομικά Υπεύθυνος... 4 Αρχική Οθόνη... 4 Διαχείριση Χρηστών... 4 Αναζήτηση Χρήστη... 4 Δημιουργία

Διαβάστε περισσότερα

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΣΤΟΙΧΕΙΩΝ ΡΕΥΣΤΟΤΗΤΑΣ (BSD07) (ΠΔ.Τ.Ε. 2563/19.7.2005 Ε50) Ιανουάριος 2005 ΓΕΝΙΚΑ... 4 1. Προϋποθέσεις

Διαβάστε περισσότερα

Ανάπτυξη εφαρμογής Input-Output

Ανάπτυξη εφαρμογής Input-Output Ανάπτυξη εφαρμογής Input-Output Πίνακας Περιεχομένων Ανάπτυξη εφαρμογής Input-Output... 1 1. Εκτέλεση του περιβάλλοντος ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 2. Δημιουργία νέου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή

Διαβάστε περισσότερα