Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Καλησπέρα σε όλους, μια ερώτηση και ΄γω σαν αρχάριος για την ACCESS 2003. Σε πίνακα της ACCESS έχω, Πεδίο1 κάποια προιόντα (αρώματα), Πεδίο2 τις τιμές τους (χονδρική). Σε φόρμα καταχωρώ τα τιμολόγια προμηθευτών μου (ημ/νια, ποσότητα, είδος προιόντος και τιμή). Αυτό που θέλω είναι καθώς καταχωρώ το είδος προιόντος να ''καταχωρεί'' και την τιμή στο πεδίο [τιμή] αυτόματα του αντοιστιχου προιόντος από τον πίνακα. Συγνώμη αν σας κούρασα με τα πολλά λόγια. ![]() ![]() ![]() Υ.Γ Ευχαριστώ εκ των προτέρων. |
#2
| |||
| |||
![]()
Καλησπέρα Άκη καλωσόρισες στο φόρουμ. Δεν ξέρω πως σχεδίασες τη βάση σου, αλλά δεν είναι καλή ιδέα στοιχεία που υπάρχουν σ’ ένα πίνακα να αποθηκεύονται και σε άλλους. Δημιουργούνται προβλήματα, όπως: 1) Τα στοιχεία να είναι διαφορετικά στους διάφορους πίνακες (ασυγχρόνιστα). 2). Αν κάνουμε μία διόρθωση σε κάποιο στοιχείο θα πρέπει να την επαναλάβουμε σ’ όλους τους πίνακες που έχει αποθηκευτεί. Στη ΒΔ που επισυνάπτω, υπάρχουν οι φόρμες «frmTimologia» και «frmTimologia2» που έχουν τη λειτουργικότητα, που θέλεις χωρίς να αποθηκεύουν τα στοιχεία που υπάρχουν στον πίνακα «tblAromata» και στον πίνακα «tblTimologia». Στη φόρμα «frmTimologia»στην προέλευση του στοιχείου ελέγχου της τιμής υπάρχει η έκφραση: =IIf(IsNull([AromaID]);"";DLookUp("Timi";"tblAromata";"AromaID=" & [AromaID])). Η φόρμα «frmTimologia2», οφείλει τη συμπεριφορά της στο υποκείμενο ερώτημα «qryTimologia2». Η φόρμα «frmTimologiuError» , που δεν τη συνιστώ ως λύση, αποθηκεύει υπολογιζόμενα στοιχεία και στοιχεία του πίνακα «tblAromata» και στον υποκείμενο πίνακα «tblAromataError». Η επίτευξη της λειτουργικότητά της είναι δυσκολότερη και στηρίζεται στον κώδικα: Κώδικας: Private Sub AromaID_AfterUpdate() Me.fTimi = DLookup("Timi", "tblAromata", "AromaID=" & Me.AromaID) Me.fAroma = DLookup("Aroma", "tblAromata", "AromaID=" & Me.AromaID) If Not (IsNull(Me.fTimi) Or IsNull(Me.Posotita)) Then Me.fAxia = Me.fTimi * Me.Posotita End If End Sub Private Sub fTimi_AfterUpdate() If Not (IsNull(Me.fTimi) Or IsNull(Me.Posotita)) Then Me.fAxia = Me.fTimi * Me.Posotita End If End Sub Private Sub Posotita_AfterUpdate() If Not (IsNull(Me.fTimi) Or IsNull(Me.Posotita)) Then Me.fAxia = Me.fTimi * Me.Posotita End If End Sub |
#3
| |||
| |||
![]()
Γιώργο σε 'υχαριστώ πολύ για τον χρόνο σου θα το τσεκάρω και θα σου πω, θα ανεβάσω και την δικιά μου βδ (μέχρι εκεί που την έφτασα :-) ) για να την δεις. Ευχαριστώ και πάλι.
|
#4
| |||
| |||
![]()
Καλησπερα και απο εμενα Πολυ καλη δουλεια Γιωργο Τελικά αν και φαινεται παραξενο νομιζω οτι η σωστη λυση ειναι αυτη στην frmTimologiuError που αναφερεις ως μη προτεινομενη. Ισως δεν ανελυσε σωστα αυτο που ηθελε αλλα νομιζω οτι την τιμη απο τον κυριως πινακα την ηθελε ως αρχικη (προτεινομενη) Διαχρονικα αυτη πρεπει να αλλαζει (απο τον κυριως πινακα φυσικα) οταν αλλαζει η συμφωνια με τον προμηθευτη χωρις ομως να επιρεαζει τον πινακα των παλιοτερων τιμολογιων. Γι αυτο πιστευω οτι οι 2 πρωτες (ορθες λυσεις) δεν μας κανουν στην περιπτωση αυτη. ΠΧ ένα αρωμα κανει σήμερα 10 και καταχωρω ενα η περισσοτερα τιμολογια με αυτην την τιμη. Μετα απο καποιο διαστημα η τιμη γινεται 12 και απο εκει και περα αφου την αλλαξω στον πινακα αρωματα καταχωρω τιμολογια με την νεα τιμη. Αρα διαχρονικα ενα ειδος μπορει να εχει πολλες τιμες αρα ορθα πρεπει να υπαρχει πεδιο τιμης στον πινακα τιμολογιων. Το πεδιο τιμή στα αρωματα εκφραζει την τρεχουσα συμφωνια. Ελπιζω να εγινα κατανοητος Φιλικα Δημητρης |
#5
| |||
| |||
![]()
Καλησπέρα στην παρέα Δημήτρη, συμφωνώ απόλυτα με το συλλογισμό σου. Ο Άκης όμως μου δημιούργησε την εντύπωση ότι η τιμή είναι σταθερή και ίση με αυτή που υπάρχει στον πίνακα «tblAromata». Αν δεν είναι σταθερή τότε: 1) Θα μπορούσε να υπάρχει μόνο στον πίνακα «tblTimologia», οπότε θα αποφεύγαμε τον κόπο να την καταχωρούμε και στον «tblAromata». 2) Να θεωρείται η τιμή στον πίνακα «tblAromata» ενδεικτική και να χρησιμοποιείται ως προτεινόμενη στη φόρμα καταχώρησης των τιμολογίων, οπότε δε θα χρειάζονταν ο κώδικας. Φιλικά/Γιώργος |
#6
| |||
| |||
![]() Παράθεση:
Η τιμή στα αρωματα ειναι η προτεινομενη Θα μπορουσε καποιος να πει οτι "τι την θελουμε" και ας φερνει την τελευταια τιμη απο τον πινακα τιμολογια. Ομως ετσι ειναι το ορθο Οταν γινει νεα συμφωνια με τον προμηθευτη καταχωρειται στον πινακα αρωματα Οταν καταχωρησουμε το τιμολογιο μετα απο μερες θα ξερει αυτη την νεα τιμη πραγμα που ο χρηστης δεν ειναι υποχρεωμενος να θυμαται. Φιλακα Δημητρης |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Επιλογές από λίστες και τελική απόδοση τιμής | ΤΑΣΙΑΔΗΣ | Excel - Ερωτήσεις / Απαντήσεις | 4 | 27-11-15 14:51 |
[Excel07] Απόδοση τιμής με δυο κριτήρια. | vasilis999 | Excel - Ερωτήσεις / Απαντήσεις | 3 | 12-10-14 23:18 |
[Συναρτήσεις] Απόδοση τιμής σε κείμενο ανά είδος | ΔΗΜΗΤΡΗΣ Γ | Excel - Ερωτήσεις / Απαντήσεις | 5 | 21-04-14 22:32 |
[Γενικά] Εύρεση κοινών τιμών σε δύο κελιά διαφορετικού φύλλου και απόδοση λογικής τιμής | greg13 | Excel - Ερωτήσεις / Απαντήσεις | 5 | 02-11-11 09:42 |
Απόδοση τιμής Υπολογιζόμενου Πεδίου σε πεδίο πίνακα. | foxone | Access - Ερωτήσεις / Απαντήσεις | 6 | 14-10-11 10:32 |
Η ώρα είναι 08:12.