freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Πράξεις μεταξύ διαφορετικών εγγραφών


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [6 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
elio


Μέλος από: 25 Μαη 2009
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 25 Μαη 2009 20:18    Θέμα: Πράξεις μεταξύ διαφορετικών εγγραφών
Περιγραφή θέματος: Πράξεις μεταξύ διαφορετικών εγγραφών
Απάντηση με παράθεση  Mark this post and the followings unread

Κατ' αρχάς συγχαρητήρια για τη πολύ καλή δουλειά σας.
Το πρόβλημα που έχω είναι το παρακάτω :
Έχω φτιάξει μια μικρή βάση για αποτελέσματα μήκους σε αγώνες στίβου.
Υπάρχει ένας πίνακας με τα στοιχεία των αθλητών, ένας πίνακας με τα αποτελέσματα κάθε προσπάθειας κι ένα ερώτημα που υπολογίζει την καλύτερη προσπάθεια κάθε αθλητή.

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

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


Αν μπορεί κάποιος να βοηθήσει θα του ήμουν υπόχρεος
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 25 Μαη 2009 23:31    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Δοκίμασε στο report σου να βάλεις ένα ακόμα πεδίο με controlsource "=GetDiff([best])" (αν το πεδίο με την καλύτερη προσπάθεια ονομάζεται "best")
Στον κώδικα του report πρέπει ακόμα να βάλεις τον ακόλουθο κώδικα:
κώδικας:
Option Compare Database
Option Explicit

Dim haveOldValue As Boolean
Dim oldValue As Double
Dim diff As Double

Private Sub Report_Open(Cancel As Integer)
    haveOldValue = False
End Sub

Private Function GetDiff(ByVal thisValue As Double) As Double
    If (haveOldValue) Then
        GetDiff = oldValue - thisValue
    Else
        haveOldValue = True
        GetDiff = 0
    End If
    oldValue = thisValue
End Function
elio


Μέλος από: 25 Μαη 2009
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 26 Μαη 2009 09:36    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ πολύ!
Έπαιξε τέλεια στην αναφορά.

Δοκίμασα να το βάλω σε module, και να το τρέχω από ερώτημα. (κάνοντας public τη συνάρτηση GetDiff()
Την πρώτη φορά που τρέχω το ερώτημα, μου βγαίνει σωστό, αλλά αν κάνω scroll με το ποντίκι αλλάζει η τιμή διαφοράς στην πρώτη εγγραφή. Τα υπόλοιπα παραμένουν σωστά.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 26 Μαη 2009 13:05    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Τα queries χρειάζονται διαφορετική προσέγγιση αφού δεν έχουν events για να πιάσεις και να βάλεις αντίστοιχο κώδικα.

Το πιο γρήγορο που μπορείς να αλλάξεις για να παίζει σε queries είναι κάτι τέτοιο

κώδικας:
Option Compare Database
Option Explicit

Dim oldValue As Double

Public Function GetDiff(ByVal thisValue As Double) As Double
    If (oldValue > thisValue) Then
        GetDiff = oldValue - thisValue
    Else
        GetDiff = 0
    End If
    oldValue = thisValue
End Function
elio


Μέλος από: 25 Μαη 2009
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 28 Μαη 2009 08:26    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

και πάλι ευχαριστώ!
elio


Μέλος από: 25 Μαη 2009
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 25 Ιουν 2009 16:09    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

επανέρχομαι με κάτι διαφορετικό.
Στα αγωνίσματα δρόμου (όπως πχ στα 800 μέτρα) για να μπορέσω να χρησιμοποιήσω και εκατοστά δευτερολέπτου, πολλαπλασιάζω τα λεπτά επί 60 επί 100, τα δευτερόλεπτα επί 100 και αυτά τα γινόμενα τα προσθέτω με τα εκατοστά για να μπορέσω να κάνω την ταξινόμηση. Στη συνέχεια ακολουθώ την αντίστροφη διαδικασία για να δείξω τη διαφορά από τον πρώτο.
Θέλω το ίδιο για διαφορά από τον προηγούμενο, αλλά δυστυχώς δεν γίνεται τίποτα.
Παραθέτω τον κώδικα.
κώδικας:
Option Compare Database
Option Explicit

Dim oldValue As Double
Public Function GetDiff(ByVal thisValue As Double) As Double

    If (oldValue < thisValue) Then
        GetDiff = thisValue - oldValue
    Else
        GetDiff = 0
    End If
    oldValue = thisValue
End Function
Private Function GetDH() As Double
GetDH = Int(GetDiff / (100 * 60 * 60))
End Function
Private Function GetDM() As Double
GetDM = Int((GetDiff - GetDH * 100 * 60 * 60) / (100 * 60))
End Function
Private Function GetDS() As Double
GetDS = Int((GetDiff - GetDH * 100 * 60 * 60 - GetDM * 100 * 60) / 100)
End Function
Private Function GetDC() As Double
GetDC = GetDiff - GetDH * 100 * 60 * 60 - GetDM * 100 * 60 - GetDS * 100
End Function

Δοκίμασα να τα βάλω όλα σ' ένα function αλλά πάλι τίποτα
κώδικας:

Option Compare Database
Option Explicit

Dim oldValue As Double
Dim GetDiff As Double
Dim GetDH As Double
Dim GetDM As Double
Dim GetDS As Double
Dim GetDC As Double
Public Function Diff(ByVal thisValue As Double)
    If (oldValue < thisValue) Then
        GetDiff = thisValue - oldValue
    Else
        GetDiff = 0
    End If
    oldValue = thisValue
GetDH = Int(GetDiff / (100 * 60 * 60))
GetDM = Int((GetDiff - GetDH * 100 * 60 * 60) / (100 * 60))
GetDS = Int((GetDiff - GetDH * 100 * 60 * 60 - GetDM * 100 * 60) / 100)
GetDC = GetDiff - GetDH * 100 * 60 * 60 - GetDM * 100 * 60 - GetDS * 100
Diff = GetDH & ":" & GetDM & ":" & GetDS & ":" & GetDC
End Function

Κάθε βοήθεια δεκτή.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [6 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 03 Δεκ 2016 19:39 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos