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/760-proodeytikh-kinhsh-logariasmoy.html)

editolis 02-10-10 10:56

Οχι ειναι παλιος τυπος και απλα σου βγαζει κενο στο αποτελεσμα οταν δεν εχεις περασει στοιχεια.

Εαν θελουμε να μας βγαζει το 0 τοτε χρησιμοποιουμε αυτο τον τυπο:

Ας το κανουμε καλυτερο λοιπον:

=nz(DSum("([ΧΡΕΩΣΗ]-[ΠΙΣΤΩΣΗ])";"ΚΙΝΗΣΕΙΣΠΕΛΑΤΩΝ";"[ΑΑΚΙΝΗΣΗΣ]<=[FORMS]![ΠΕΛΑΤΕΣ-ΕΜΦΑΝΙΣΗ ΚΑΡΤΕΛΑΣ ΠΕΛΑΤΗ ΔΕΥΤΕΡΕΥΟΥΣΑ]![ΑΑΚΙΝΗΣΗΣ]");0)

kapetang 02-10-10 11:08

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

Και μια άλλη προσέγγιση.
Το πρόβλημα του Δήμου αποτελεί μια παραλλαγή του υπολογισμού των μερικών αθροισμάτων των τιμών μιας στήλης. Το μερικό άθροισμα για τη i γραμμή της στήλης ισούται με το άθροισμα των τιμών όλων των προηγούμενων γραμμών (< i ) και της ίδιας (i).
Στη βάση δεδομένων που επισυνάπτω δίνεται μία λύση για το ακόλουθο πρόβλημα:
Σε ένα πίνακα (tblExports) έχουμε την αξία τους (ExportAmount) κατά ημερομηνία (ExportDate) και τον κωδικό τους (ExportID). Στην ίδια ημερομηνία μπορούν να γίνουν πολλές εξαγωγές. Θέλουμε σε μία φόρμα (frmExports) να εμφανίζονται τα μερικά αθροίσματα των εξαγωγών αφού ταξινομηθούν πρώτα κατά ημερομηνία (ExportDate) και μετά κατά τον κωδικό τους (ExportID).
Η λύση δόθηκε με ένα υποερώτημα στο ερώτημα qryExports:
Κώδικας:

SELECT tblExports.*, (Select sum(ExportAmount) From tblExports as E where E.ExportDate<tblExports.ExportDate or
( E.ExportDate=tblExports.ExportDate and  E.ExportID<=tblExports.ExportID)) AS SubTotal
FROM tblExports
ORDER BY tblExports.ExportDate, tblExports.ExportID;

πάνω στο οποίο βασίστηκε η φόρμα.

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

pdhmos 02-10-10 15:12

Αγαπητε τολη δοκιμασα αυτο που εστειλες και δουλευει με μια αλλαγη (εβαλα πιστωση - χρεωση αντι χρεωση - πιστωση που το ειχες) και δειχνει σωστα μονο εαν στο ερωτημα κανω ταξινομιση με το ΑΑΚΙΝΗΣΗΣ ενω εγω το εχω με την ημερομηνια.
υπαρχει καμια καλη ιδεα ?
=DSum("0+[ΠΙΣΤΩΣΗ]-[ΧΡΕΩΣΗ]";"ΚΙΝΗΣΕΙΣΠΕΛΑΤΩΝ";"[ΑΑΚΙΝΗΣΗΣ]<=[FORMS]![ΠΕΛΑΤΕΣ-ΕΜΦΑΝΙΣΗ ΚΑΡΤΕΛΑΣ ΠΕΛΑΤΗ ΔΕΥΤΕΡΕΥΟΥΣΑ]![ΑΑΚΙΝΗΣΗΣ]")
(ΒΔ θελει σοβαρη διορθωση και πεταμα και οχι μονο στην ονοματολογια οπως λες αλλα ξεκινησε λαθος και συνεχιζει ετσι)

Νικο αυτο που προτεινες δεν μπορω να πω οτι το καταλαβα (υπαρχει σχετικη ασχετοσινη).
Γιωργο και η προταση σωστη (λιγο μπερδεμα μονο)

kapetang 02-10-10 17:14

Τόλη ευχαριστώ για τη διευκρίνιση.

kapetang 02-10-10 18:42

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

Δήμο το αρχείο που ανέβασες είναι σε έκδοση που δεν μπορώ να ανοίξω.
Επειδή θέλεις να χρησιμοποιήσεις τη λύση του Τόλη και υπάρχει και το πρόβλημα των ονομάτων και επειδή δεν τον βλέπω και συνδεδεμένο, προτείνω να κάνεις τα εξής:
1. Να αλλάξεις τον τύπο του Τόλη από το δεύτερο ερωτηματικό και μετά με την έκφραση:
“[D]<[F]![D] OR ([D]=[F]![D] AND [I]<=[F]![I])”)
Στην έκφραση θα αντικαταστήσεις τα σύμβολα που χρησιμοποίησα ως εξής:
D με το όνομα που έδωσες στην ημερομηνία.
F με το FORMS]![ΠΕΛΑΤΕΣ-ΕΜΦΑΝΙΣΗ ΚΑΡΤΕΛΑΣ ΠΕΛΑΤΗ ΔΕΥΤΕΡΕΥΟΥΣΑ
I με το ΑΑΚΙΝΗΣΗΣ.
2. Στο ερώτημα που έχεις, η ταξινόμηση πρώτα θα γίνεται με την ημερομηνία και μετά με το ΑΑΚΙΝΗΣΗΣ.
Σου βρήκα δουλειά για το Σαββατοκύριακο
Καλή τύχη

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

kapetang 03-10-10 09:06

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

Η βάση δεδομένων που επισυνάπτεται αποτελεί μια αναβάθμιση της προηγούμενης.
Περιλαμβάνει τρεις φόρμες:
1. Στη φόρμα «frmExports» τα μερικά αθροίσματα εμφανίζονται με τη βοήθεια ενός υπολογιζόμενου πεδίου στο ερώτημα που δεσμεύεται.
2. Στη φόρμα «frmExportsDsum» χρησιμοποιείται ένα αδέσμευτο πλαίσιο κειμένου και η συνάρτηση DSUM . Είναι η λύση που πρότεινε ο Τόλης.
3. Στη φόρμα «frmExportsRS» χρησιμοποιείται ένα αδέσμευτο πλαίσιο ελέγχου και η ακόλουθη συνάρτηση χρήστη:
Κώδικας:

Public Function fncSubTotal(ID As Long) As Double
    Dim sum As Double
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone
    If Me.Count > 0 Then
        sum = 0
        rs.MoveFirst
        Do Until rs.EOF
            sum = sum + Nz(rs!ExportAmount, 0)
            If rs!ExportID = Me.ExportID Then Exit Do
            rs.MoveNext
        Loop
        fncSubTotal = sum
    End If
End Function

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

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

Meteora 03-10-10 10:18

Γιώργο μάλλον περνάς 'κρίση' δημιουργικότητας, έμπνευσης , εργασιομανίας και όλα τα συναφή. Σε ...βγάζω το καπέλο!
Τιμή μου που σε γνώρισα / Νίκος Δ

pdhmos 03-10-10 10:18

Γιωργο καλημερα πρωινο σε ειδα( 7 και κατι ψιλα). Δοκιμασα την την αλλαγη που μου ειπες και συνεχιζει να δειχνει την ταξινομιση κατα ημερομηνια αλλα τα αποτελεσματα κατα ΑΑΚΙΝΗΣΗΣ. Θα δοκιμασω και τον παρακατω . και ερχομαι
Public Function fncSubTotal(ID As Long) As Double
Dim sum As Double
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
If Me.Count > 0 Then
sum = 0
rs.MoveFirst
Do Until rs.EOF
sum = sum + Nz(rs!ExportAmount, 0)
If rs!ExportID = Me.ExportID Then Exit Do
rs.MoveNext
Loop
fncSubTotal = sum
End If
End Function

φιλικα δημος (λαρισας) καλη κυριακη σε ολους

pdhmos 03-10-10 10:20

Νικο μαζυ τα γραφαμε 8+18 πμ δοκιμασα και τις αλλες εκδοχες και κατεληξα στου τασου.
Ενα μεγαλο ΕΥΧΑΡΙΣΤΩ σε ολους. θα χαρω να βοηθησω και εγω σε κατι.
το αντικειμενο μου ειναι επισκευη ηλεκτρονικων συσκευων pdhmos@otenet.gr
καλη κυριακη

kapetang 03-10-10 10:38

Φίλε Νίκο δεν πας πίσω. Σ’ ευχαριστώ


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

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


Search Engine Optimization by vBSEO 3.3.2