Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Εξαγωγή ημερομηνίας και ημέρας σε φόρμα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/597-eksagogi-imerominias-kai-imeras-se-forma.html)

ntelios 19-05-10 09:29

Εξαγωγή ημερομηνίας και ημέρας σε φόρμα
 
Kαλημέρα στην κοινότητα!

Έχω έναν πίνακα ο οποίος περιλαμβάνει στοιχεία εργαζομένων. Θέλω να έχω μία φόρμα με 3 στήλες:
1η στήλη: Ημερομηνία
2η στήλη: Ημέρα
3η στήλη: Επώνυμο

Δεν ξέρω αν γίνεται κάτι τέτοιο, αλλά θέλω από ένα combo box της φόρμας να επιλέγω έναν μήνα και να μου πετάει αυτόματα στην πρώτη στήλη τις ημερομηνίες του μήνα - δηλαδή από 1/05/10 έως 31/05/10, στην δεύτερη στήλη τις αντίστοιχες ημέρες και στην τρίτη να επιλέγω μέσω combo box ένα Επώνυμο.

Υπάρχει κάποια διασύνδεση της ημερομηνίας και της ημέρας από το ημερολόγιο στην vba? Πώς θα μπορούσα να κάνω κάτι τέτοιο?(Για τις δύο πρώτες στήλες τουλάχιστον)

Ευχαριστώ

Dangel82 19-05-10 11:15

Καλημέρα Αλέξη, η λύση στο πρόβλημά σου έρχεται απ'ευθείας απο MSDN.

Κώδικας:

Function dhFirstDayInMonth(Optional dtmDate As Date = 0) As Date
    ' Return the first day in the specified month.
    If dtmDate = 0 Then
        ' Did the caller pass in a date? If not, use
        ' the current date.
        dtmDate = Date
    End If
    dhFirstDayInMonth = DateSerial(Year(dtmDate), _
    Month(dtmDate), 1)
End Function
Function dhLastDayInMonth(Optional dtmDate As Date = 0) As Date
    ' Return the last day in the specified month.
    If dtmDate = 0 Then
        ' Did the caller pass in a date? If not, use
        ' the current date.
        dtmDate = Date
    End If
    dhLastDayInMonth = DateSerial(Year(dtmDate), _
    Month(dtmDate) + 1, 0)
End Function

Και το link: Finding the Beginning or End of a Month

Tasos 19-05-10 13:51

1 Συνημμένο(α)
Αλέξη καλημέρα!

Δες ένα παράδειγμα όπου το Combobox "cboDates" συμπληρώνεται με ημερομηνίες
που εξαρτιούνται από την τιμή:
  • του μήνα που έχει επιλεγεί από το Combobox "cboMonth"
  • και του έτους που έχει επιλεγεί από το Combobox "cboYear"
στο παρακάτω συνημμένο.

Καλή συνέχεια!

Τάσος

nisgia 19-05-10 19:29

1 Συνημμένο(α)
Καλησπέρα στην αγαπητή παρέα!!!:biggrin: Δεν πιστεύω να σας έλειψα, έτσι; :whistle:

Ξαναπιάνω δουλειά λοιπόν με ένα παράδειγμα που πιστεύω πως είναι αρκετά κοντά
στο ζητούμενο του φίλου Αλέξη. (συνημμένο "xmplMonthDays")

Με την ευκαιρία να καλωσορίσω θερμά όλα τα νέα μέλη του φόρουμ!:bye2:
Γιάννης (reloaded)

ntelios 20-05-10 08:02

Mου φαίνεται ότι το τελευταίο είναι σχεδόν ακριβώς αυτό που θέλω. Με μία ματιά που έριξα από πίσω όμως δεν έχει κάπου τις ημέρες σαν ονόματα (Δευτέρα κτλ). Αν υπήρχε θα "έσπαγα" το πεδίο της ημερομηνίας στην ημερομηνιά (πχ 12/01/2010) και στην ημέρα (ΣΑΒΒΑΤΟ) γιατί τα χρειάζομαι σε διαφορετικές στήλες. Υπάρχει κάποιος τρόπος να διαχωρίσω την ημέρα από την ημερομηνία για να εμφανίζονται σε διαφορετικές στήλες?

Ευχαριστώ!

nisgia 20-05-10 09:04

Καλημέρα Αλέξη!

Για να δημιουργήσεις το πεδίο με το όνομα ημέρας, άνοιξε τη φόρμα "sfrmNameDates"
σε προβολή σχεδίασης και δημιούργησε ένα αντίγραφο του πεδίου fldDate δίπλα από το υπάρχον.

Στη συνέχεια δώσε στην ιδιότητα Μορφή (format) την τιμή "dddd" (χωρίς τα εισαγωγικά).
Στο αρχικό πεδίο fldDate δώσε μια πιο σύντομη μορφή ημερομηνίας και είσαι έτοιμος.

Αν κολλήσεις κάπου, εδώ είμαστε.

Επίσης, επειδή το παράκανα λίγο με τις διαθέσιμες ημερομηνίες του πίνακα ztblDates,
εκτέλεσε την διαδικασία MakeDates με ένα μικρότερο φάσμα ημερομηνιών
ώστε να ελαφρύνει λίγο το αρχείο.

Για παράδειγμα:

Κώδικας:

Sub MakeDates()
    Dim i As Long
   
    i = #1/1/2009#
    CurrentDb.Execute ("DELETE * FROM ztblDates")
    With CurrentDb.TableDefs("ztblDates").OpenRecordset
        While i < #1/1/2019#
            .AddNew
            .Fields("fldDate") = i
            .Update
            i = i + 1
        Wend
        .Close
    End With
End Sub

Τα λέμε!
Γιάννης

ntelios 20-05-10 09:25

Έκανα Copy Paste το πεδίο fldDate της φόρμας sfrmNameDates και έπειτα με δεξί κλικ - ιδιότητες έδωσα στο αντίγραφο στην ετικέτα μορφή και στην τιμή μορφή το dddd χωρίς τα εισαγωγικά. Τα εισαγωγικά τα βάζει η access έπειτα. Όταν το τρέχω, όλη η στήλη εμφανίζει την τιμή dddd. Μήπως πρέπει να κάνω και κάποια άλλη αλλαγή?

Σε ευχαριστώ πολύ!

nisgia 20-05-10 10:40

Προφανώς δουλεύεις με την ελληνική έκδοση του Office.

Αν δώσεις την τιμή ηηηη στη μορφή θα είναι OK.:wink:

Φρόντισε όμως να δουλεύεις με την αγγλική έκδοση γιατί με την ελληνική
θα έχεις πολλά και συχνά προβλήματα συμβατότητας.:thumbs-up:

Να 'σαι καλά!
Γιάννης

ntelios 24-05-10 11:11

Καλημέρα σε όλους!
Μου δουλεύει μια χαρά σας ευχαριστώ όλους!

Συναντάω ένα προβληματάκι στην προσαρμογή στη δική μου βάση.
Έχω έναν πίνακα tblStelexos στον οποίο έχω πεδία: Lastname, DName και Prop τα οποία είναι κείμενα.
Στο συνημμένο, διέγραψα τον πίνακα tblName και στον πίνακα tblNameDates δημιούργησα έναντι του πεδίου fldName το μετονόμασα σε Lastname Και το έβαλα σύνθετο πλαίσιο να διαβάζει από τον πίνακα tblStelexos στο πεδίο Lastname. Δουλεύει μια χαρά. Το θέμα είναι ότι στην ίδια φόρμα που εμφανίζεται η ημερομηνιά, η ημέρα και το Επώνυμο θέλω να εμφανίζονται και τα αντίστοιχα πεδία των εγγραφών DName και Prop. Δηλαδή, όταν επιλέγω για μία μέρα ένα Επώνυμο, να μου εμφανίζει κατευθείαν και το όνομα και την τιμή που έχει στο πεδίο Prop.
Γίνεται κάτι τέτοιο?

ntelios 25-05-10 08:14

1 Συνημμένο(α)
Καλημέρα και πάλι! Ελπίζω να μην γίνομαι κουραστικός!
Βασικά δεν μπόρεσα να το προσομοιώσω στη βάση μου..
Θα μπορούσε κάποιος να μου εξηγήσει πώς λειτουργεί το τελευταίο συνημμένο γιατί δεν μπορώ να το προσομοιώσω στη βάση μου.. Δηλαδή τι σχετίζεται με τί και πώς λειτουργεί η ιστοριά με τα ονόματα περισσοτερο.

Τη συνάρτηση με την εξαγωγή ημερομηνιών και το αντίστοιχο ερώτημα (qryDates) την κατάβαλα αλλά το ερώτημα qryNameDates και τους αντίστοιχους πίνακες (tblNames και tblNameDates) και την σχέση μεταξύ των δεν την κατάλαβα.

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

Ευχαριστώ

Ορίστε και ένα συνημμένο με μία αποτυχημένη προσπάθεια που έκανα για να το προσαρμόσω στον πίνακα tblStelexos

nisgia 26-05-10 14:38

1 Συνημμένο(α)
Καλησπέρα σε όλη την παρέα!

Φίλε Αλέξη, δεν χρειάζεται (και δεν πρέπει) να αποθηκεύεις όλα τα στοιχεία
του κάθε στελέχους στον πίνακα tblNameDates. Τα απαραίτητα στοιχεία είναι μόνο
το μοναδικό κλειδί του κάθε στελέχους και την ημερομηνία.
Φυσικά μπορείς να προσθέσεις και άλλα πεδία στον πίνακα tblNameDates
τα οποία όμως να σχετίζονται μόνο με το θέμα του πίνακα.

Πρέπει να αποφεύγουμε την αποθήκευση μοναδικών δεδομένων σε πολλά σημεία
αλλά και την αποθήκευση άσχετων με το θέμα δεδομένων.:police:

Οι συνενώσεις του ερωτήματος qryNameDates, είναι εξωτερικές συνενώσεις
(LEFT JOIN, RIGHT JOIN) οι οποίες αναγκάζουν το ερώτημα να επιστρέψει
όλες τις εγγραφές από τον πρώτο πίνακα και από το δεύτερο μόνο όσες ταιριάζουν
με αυτές του πρώτου. Οι θέσεις που δεν υπάρχει ταίριασμα γεμίζουν με τιμές NULL.

Για περισσότερα, κάνε μια αναζήτηση με τους παραπάνω όρους.

Στο συνημμένο θα βρεις την εφαρμογή όλων των παραπάνω.
Για ότι άλλο προκύψει, εδώ είμαστε. Μην αγχώνεσαι καθόλου!:001_cool:

Φιλικά, Γιάννης.

PanosPan 20-09-10 09:22

Μετατροπή ημερομηνίας ολογράφως
 
2 Συνημμένο(α)
Παιδιά καλημέρα,
Θα ήθελα να δουλέψω πάνω σε κάτι παρόμοιο με το ερώτημα του Αλέξη.
Αυτό που θέλω είναι απο μία ημερομηνία που εισάγω σε ένα πεδίο φόρμας στο (συνημμένο παράδειγμα [ΔΙΕΚΠΑΙΡΕΩΣΗ] ) να μου μεταφέρει σε ένα άλλο πεδίο (στο συννημένο παράδειγμα [ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ] ) τον μήνα και το έτος της ημερομηνίας.
π.χ. όταν στο πεδίο [ΔΙΕΚΠΑΙΡΕΩΣΗ] εισάγω την 22/12/1980 τότε το πεδίο [ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ] να μου επιστρέφει ΔΕΚΕΜΒΡΙΟΣ 1980.

Έχω κάνει κάτι δοκιμές με το παρακάτω, χωρίς επιθυμητό αποτέλεσμα:
private sub ΔΙΕΚΠΑΙΡΕΩΣΗ_Lostfocus ()
Dim a, b As integer

a = ΔΙΕΚΠΑΙΡΕΩΣΗ
b= Month (a)

if b = 1 then
ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗ = "ΙΑΝΟΥΑΡΙΟΣ"
Κ.Ο.Κ.

* Αν δεν γίνεται στο ίδιο πεδίο [ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ] να μπουν μήνας και έτος (ΔΕΚΕΜΒΡΙΟΣ 1980) ας μπουν σε δύο πεδίο [ΜΗΝΑΣ] = ΔΕΚΕΜΒΡΙΟΣ & [ΕΤΟΣ}= 1980.

Ευχαριστώ πολύ
Πάνος

Meteora 20-09-10 15:12

Καλημέρα...

Για να εμφανιστεί λεκτικά ο μήνας και το έτος γράφεις :
Κώδικας:

Private Sub ΔΙΕΚΠΑΙΡΕΩΣΗ_AfterUpdate()
    πλαίσιο1= Choose(Month(ΔΙΕΚΠΑΙΡΕΩΣΗ), "ΓΕΝΑΡΗΣ", "ΦΛΕΒΑΡΗΣ", "ΜΑΡΤΗΣ", "ΑΠΡΙΛΗΣ", "ΜΑΗΣ", "ΙΟΥΝΗΣ",
"ΙΟΥΛΗΣ", "ΑΥΓΟΥΣΤΟΣ", "ΣΕΠΤΕΜΒΡΙΟΣ", "ΟΚΤΩΒΡΙΟΣ", "ΝΟΕΜΒΡΙΟΣ", "ΔΕΚΕΜΒΡΙΟΣ")
πλαίσιο2 = year(ΔΙΕΚΠΑΙΡΕΩΣΗ)
End Sub

Αν θες να τα ενώσεις σε ένα πλαίσιο κειμένου θα χρειαστείς και τη συνάρτηση str():
str(year(ΔΙΕΚΠΑΙΡΕΩΣΗ))
Ελπίζω όλα να πάνε κατ΄ευχή / Νίκος Δ.

PanosPan 20-09-10 15:25

Σε ευχαριστώ Νίκο θα το δοκιμάσω και θα σε ενημερώσω.
Πάνος

kapetang 20-09-10 15:54

1 Συνημμένο(α)
Καλησπέρα, στην παρέα

Πάνο στο αρχείο που επισυνάπτω δίνω μια λύση παρόμοια με του Νίκου, αλλά με ένα πλαίσιο κειμένου (αυτό που έχεις).
Στις δοκιμές που έκανα υπήρξε πρόβλημα με το όνομα του πλαισίου κειμένου «ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ», γι’ αυτό το άλλαξα.
Επίσης στη φόρμα υπήρχαν και υπολείμματα κώδικα από τις δοκιμές που έκανες.
Τον διέγραψα για να μη δημιουργεί προβλήματα.
Αν δεν έγραψα σωστά κάποιο μήνα μπορείς να τον διορθώσεις.

Φιλικά/Γιώργος

kapetang 20-09-10 16:12

Καλησπέρα και πάλι

Η πιο απλή λύση είναι να γραφεί στην προέλευση στοιχείου ελέγχου η έκφραση:
=Format([ΔΙΕΚΠΑΙΡΕΩΣΗ];"mmmm, yyyy")

Φιλικά/Γιώργος

PanosPan 20-09-10 18:02

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

PanosPan 21-09-10 08:23

Καλημέρα στην εκλεκτή παρέα,
σχετικά με το παραπάνω ζητηματάκι που έθεσα εχθές, δυστυχώς δεν έχω βγάλει άκρη μέχρι τώρα.
1. ο κώδικας του Χρήστου δεν μοιάζει να δουλεύει
2. ούτε η συνάρτηση του Γιώργου στην προέλευση στοιχείου, "=Format([ΔΙΕΚΠΑΙΡΕΩΣΗ];"mmmm, yyyy")" έχει αποτέλεσμα, αν και πιστεύω ότι θα ήταν η καλύτερη λύση (απλή και γρήγορη)
3. η έτερη επιλογή του Γιώργου δουλεύει στις δοκιμές μου αλλά μόνο σε access 2003.
Ευχαριστώ πάρα πολύ
Πάνος

kapetang 21-09-10 10:03

1 Συνημμένο(α)
Καλημέρα στην παρέα

Πάνο στο αρχείο που επισυνάπτω πρόσθεσα στη φόρμα «ΚΕΝΤΡΙΚΟΣ ΠΙΝΑΚΑΣ» ένα πλαίσιο κειμένου στο οποίο έβαλα το σύντομο τύπο. Στην access 2003 που διαθέτω και οι δύο λύσεις λειτουργούν σωστά. Δεν ξέρω τι συμβαίνει με την έκδοση 2007.
Τα παρακάτω πιθανόν να λύσουν το πρόβλημα:
1. Αφαίρεσε όλο τον κώδικα από τη φόρμα (Στη σχεδίαση > Στο φύλλο ιδιοτήτων της φόρμας > Καρτέλα Άλλα > Έχει λειτουργική μονάδα > Όχι).
2. Άλλαξε στη φόρμα το όνομα του πεδίου «ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ» με ένα (πχ txtMinasEtos) με αγγλικούς χαρακτήρες και χωρίς κενά (Στη σχεδίαση > Στο φύλλο ιδιοτήτων του πεδίου ΜΗΝΑΣ_ΕΤΟΣ ΔΙΕΚΠΑΙΡΕΩΣΗΣ > Καρτέλα Άλλα > Όνομα > txtMinasEtos)

Φιλικά/Γιώργος

Tasos 21-09-10 10:28

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

Πάνο, η φόρμα του παραδείγματος που ανέβασες (στο *accdb αρχείο) είναι "χτυπημένη" :pchit:

Δημιούργησε μια καινουργια φόρμα και χρησιμοποίησε κάποια από τις προτάσεις που σου υπέδειξαν οι φίλοι Νίκος και Γιώργος.

Εγώ προσωπικά θα χρησιμοποιούσα σε υπολογισμένο πεδίο τον παρακάτω τύπο:
Κώδικας:

=Choose(Nz(Month([ΔΙΕΚΠΑΙΡΕΩΣΗ]);0);"ΓΕΝΑΡΗΣ";"ΦΛΕΒΑΡΗΣ";"ΜΑΡΤΗΣ";"ΑΠΡΙΛΗΣ";"ΜΑΗΣ";"ΙΟΥΝΗΣ";"ΙΟΥΛΗΣ";
"ΑΥΓΟΥΣΤΟΣ";"ΣΕΠΤΕΜΒΡΙΟΣ";"ΟΚΤΩΒΡΙΟΣ";"ΝΟΕΜΒΡΙΟΣ";"ΔΕΚΕΜΒΡΙΟΣ") & " " & Nz(Year([ΔΙΕΚΠΑΙΡΕΩΣΗ]);"")

Καλή συνέχεια!

Τάσος

kapetang 21-09-10 11:56

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

Τάσο και στο αρχείο 2003 η φόρμα είχε πρόβλημα γι’ αυτό έκανα αλλαγές (αφαίρεση κώδικα και αλλαγή ονόματος).
Μια βελτίωση του σύντομου τύπου είναι η ακόλουθη:
=Format(nz([ΔΙΕΚΠΑΙΡΕΩΣΗ];0);"mmmm, yyyy")
ή, αν θέλουμε το μήνα με κεφαλαία, :
=UCASE(Format(nz([ΔΙΕΚΠΑΙΡΕΩΣΗ];0);"mmmm, yyyy")

Φιλικά/Γιώργος

PanosPan 21-09-10 12:36

Καλημέρα και πάλι,

"Πάνο, η φόρμα του παραδείγματος που ανέβασες (στο *accdb αρχείο) είναι "χτυπημένη""

νομίζω ότι αυτό είναι το πρόβλημα, καθώς τώρα δουλεύουν όλοι οι τύποι.
Σας ευχαριστώ και τους τρεις.

Tasos 21-09-10 12:46

Κώδικας:

Μια βελτίωση του σύντομου τύπου είναι η ακόλουθη:
=Format(nz([ΔΙΕΚΠΑΙΡΕΩΣΗ];0);"mmmm, yyyy")

...Προϋποθέτει την επιλογή "ελληνική" στη μορφοποίηση ημερομηνίας και ώρας στις τοπικές ρυθμίσεις του συστήματος.

Διαφορετικά δεν θα εμφανίζει Ιανουάριος, Φεβρουάριος κτλ. αλλά January, February κτλ.

Τα λέμε
Τάσος

kapetang 21-09-10 15:39

Φίλε Τάσο τώρα κατάλαβα την προσωπική σου προτίμηση .....
Πάντως το προσπαθώ:hammer-smilies-0001

PanosPan 24-09-10 11:53

Μεταφορά πληροφορίας από φόρμα σε πίνακα
 
2 Συνημμένο(α)
Καλημερίζω την εκλεκτή παρέα,
Άντε και μετέτραψα την σύντομη ημερομηνία (πχ. [3/8/2010] σε [Αύγουστος, 2010]) στην φόρμα "ΚΕΝΤΡΙΚΟΣ ΠΙΝΑΚΑΣ", πως γίνεται αυτή ο ονομαστική ημερομηνία [Αύγουστος, 2010]) να μεταφερθεί σε ένα πεδίο στον πίνακα "ΚΕΝΤΡΙΚΟΣ ΠΙΝΑΚΑΣ" (π.χ. πεδίο [ΔΙΕΚΠΑΙΡΕΩΣΗ ΟΝΟΜΑΣΤΙΚΑ] του πίνακα [ΚΕΝΤΡΙΚΟΣ ΠΙΝΑΚΑΣ];
Ίσως έκανα λάθος στον αρχικό μου σχεδιασμό και τώρα χρειάζομαι εκ των υστέρων λύση στο ζήτημα.
ευχαριστώ πολύ
Πάνος

Meteora 24-09-10 15:00

Καλημέρα ...
Πάνο πρόσθεσε τον κώδικα :
Κώδικας:

Private Sub ΔΙΕΚΠΑΙΡΕΩΣΗ_AfterUpdate()
[ΔΙΕΚΠΑΙΡΕΩΣΗ ΟΝΟΜΑΣΤΙΚΑ] = Choose(Month([ΔΙΕΚΠΑΙΡΕΩΣΗ]), "ΙΑΝΟΥΑΡΙΟΣ", "ΦΕΒΡΟΥΑΡΙΟΣ", "ΜΑΡΤΙΟΣ", "ΑΠΡΙΛΙ" & _
"ΟΣ", "ΜΑΙΟΣ", "ΙΟΥΝΙΟΣ", "ΙΟΥΛΙΟΣ", "ΑΥΓΟΥΣΤΟΣ", "ΣΕΠΤΕΜΒΡΙΟΣ", "ΟΚΤΩΒΡΙΟΣ", "ΝΟΕΜΡΙΟΣ", "ΔΕΚΕΜΒ" & _
"ΡΙΟΣ") & ",  " & Year([ΔΙΕΚΠΑΙΡΕΩΣΗ])
End Sub

Όμως αγαπητέ μου πρέπει να διορθώσεις τα ονόματα που χρησιμοποιείς σε πίνακες, πεδία, φόρμες , ... αφού δεν ακολουθούν κανόνες σωστής ονοματολογίας.
Αυτά... / Νίκος Δ.

PanosPan 24-09-10 15:36

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

kapetang 24-09-10 15:58

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Πάνο για να γίνει αυτό που θέλεις πρόσθεσα στον πίνακα ένα πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ», ένα στη φόρμα (το τελευταίο) και κάποιο κώδικα στη φόρμα.
Κανονικά όμως το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ» δε σου χρειάζεται αφού η τιμή του μπορεί να υπολογιστεί από το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗ» και να εμφανιστεί όπου το θέλεις (φόρμα, έκθεση, ερώτημα).
Το πεδίο αυτό είναι επικίνδυνο γιατί μπορεί (κάτω από κάποιες συνθήκες) να μη συμφωνεί με το «ΔΙΕΚΠΑΙΡΕΩΣΗ»
Συμβουλή: Απέφυγε ονόματα πεδίων με κενά και ελληνικούς χαρακτήρες. Δημιουργούν προβλήματα.

Φιλικά/Γιώργος

kapetang 24-09-10 16:10

Καλησπέρα πάλι
Φίλε Νίκο να με συγχωρείς για την παρέμβαση δουλεύαμε ταυτόχρονα και δεν πρόσεξα την απάντησή σου.
Πάντως έχω την εντύπωση ότι ο Πάνος θέλει να αποθηκεύεται η τιμή του υπολογιζόμενου πεδίου σε πίνακα.
Γιώργος

PanosPan 24-09-10 16:10

Γιώργο ευχαριστώ πολύ και σένα,
για τα ονόματα, μάλλον τώρα είναι αργά να τα μετατρέψω σε αγγλικούς χαρακτήρες (κενά στην κανονική βάση δεν έχω έχω). όσο για το:
"Κανονικά όμως το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ» δε σου χρειάζεται αφού η τιμή του μπορεί να υπολογιστεί από το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗ» και να εμφανιστεί όπου το θέλεις (φόρμα, έκθεση, ερώτημα)." θα ήθελα να το δω λίγο, και εάν είναι να επανέλθω με διευκρινίσεις
Σε ευχαριστώ πολύ
Τα λέμε
Πάνος

nisgia 24-09-10 16:15

Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 3716)
Πάντως έχω την εντύπωση ότι ο Πάνος θέλει να αποθηκεύεται η τιμή του υπολογιζόμενου πεδίου σε πίνακα.

Το οποίο αποτελεί μέγα σφάλμα στις σχεσιακές βάσεις δεδομένων...:secret:

PanosPan 24-09-10 16:25

Ναι, αυτό που θέλω είναι όντως μία αποθήκευση στον πίνακα και αυτό γιατί θέλω να κάνω εξαγωγή του πίνακα σε excel και εκεί χρειάζομαι να φιλτράρω ανά μήνα ένα πεδίο σύντομης ημερομηνίας (στο παράδειγμά μου το πεδίο με το όνομα (ΔΙΕΚΠΑΙΡΕΩΣΗ). Ωστόσο καθώς το πεδίο είναι συμπληρωμένο με σύντομες ημερομηνίες π.χ. 1/2/2010, 2/2/2010, 3/2/2010..........28/2/2010 θα πρέπει στο φίλτρο του excel να τσεκάρω 28 έως 30 ημερομηνίες, ενώ εάν είχα τη ῾μετάφραση῾ της σύντομης ημερομηνίας σε μήνα ολογράφως π.χ. Ιανουάριος, Φεβρουάριος Μάρτιος κοκ. τότε το φιλτράρισμα θα ήταν πιο εύκολο και γρήγορο.
ελπίζω να έγινα κατανοητός με την περιγραφή του ζητήματος,
Ευχαριστώ και πάλι για το χρόνο και τη διάθεσή σας.
Τα λέμε
Πάνος

PanosPan 24-09-10 16:27

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

nisgia 24-09-10 16:55

Παράθεση:

Αρχική Δημοσίευση από PanosPan (Μήνυμα 3720)
Ναι, αυτό που θέλω είναι όντως μία αποθήκευση στον πίνακα και αυτό γιατί θέλω να κάνω εξαγωγή του πίνακα σε excel...

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

Υ.Γ.
Μην έχεις ποτέ εμπιστοσύνη σε ότι λέω εγώ αλλά στην κοινή λογική.:dft012:

PanosPan 24-09-10 17:07

Γιάννη σε ευχαριστώ, από Δευτέρα που θα πάω στο γραφείο, και αφού μελετήσω όλους τους παραμέτρους, θα πράξω αναλόγως (η ιδέα σου -εάν κατάλαβα καλά να μεταφράσω την ημερομηνία από σύντομη (1/2/2010) σε ολογράφως (Φεβρουάριος 2010) με συνάρτηση σε στήλη του του excel μου αρέσει πολύ).
Τα λέμε
Πάνος

kapetang 24-09-10 17:41

Καλησπέρα

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

Private Sub ΔΙΕΚΠΑΙΡΕΩΣΗ_Exit(Cancel As Integer)
    If Me.NewRecord Then
        If Not IsNull(Me![ΔΙΕΚΠΑΙΡΕΩΣΗ]) Then
            Me![ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ] = Format(Me![ΔΙΕΚΠΑΙΡΕΩΣΗ], "mmmm, yyyy")
        End If
    End If
End Sub

με τον ακόλουθο
Κώδικας:

Private Sub ΔΙΕΚΠΑΙΡΕΩΣΗ_Exit(Cancel As Integer)
    Me![ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ] = Format(Me![ΔΙΕΚΠΑΙΡΕΩΣΗ], "mmmm, yyyy")
End Sub

Φιλικά/Γιώργος

PanosPan 28-09-10 07:50

Καλημέρα σε όλους του φίλους,


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

Γιώργος είπε: "Κανονικά όμως το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗΟΝΟΜΑΣΤΙΚΑ» δε σου χρειάζεται αφού η τιμή του μπορεί να υπολογιστεί από το πεδίο «ΔΙΕΚΠΑΙΡΕΩΣΗ: και να εμφανιστεί όπου το θέλεις (φόρμα, έκθεση, ερώτημα)".

Παιδιά μπορείτε να μου πείτε πως σε ένα ερώτημα μπορούμε να υπολογίσουμε την τιμή της σύντομης ημερομηνίας που υπάρχει στο πεδίο "ΔΙΕΚΠΑΙΡΕΩΣΗ" και να εμφανιστεί -εάν κατάλαβα καλά- σε ημερομηνία ολογράφως (πχ. 2/8/2010 σε Αύγουστος του 2010).

ελπίζω να μη γίνομαι κουραστικός με αυτό το ζήτημα
Ευχαριστώ πολύ
Πάνος

kapetang 28-09-10 09:17

1 Συνημμένο(α)
Καλημέρα σε όλους

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

Φιλικά/Γιώργος

PanosPan 28-09-10 10:09

χίλια ευχαριστώ Γιώργο.
Τα λέμε
Πάνος


Η ώρα είναι 15:25.

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


Search Engine Optimization by vBSEO 3.3.2