Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > ΜΕΤΑΤΡΟΠΗ ΔΕΚΑΔΙΚΩΝ ΣΕ ΚΛΑΣΜΑΤΑ

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 16-12-20, 14:33
Όνομα: ΚΩΣΤΑΣ
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 28-01-2020
Μηνύματα: 31
Προεπιλογή ΜΕΤΑΤΡΟΠΗ ΔΕΚΑΔΙΚΩΝ ΣΕ ΚΛΑΣΜΑΤΑ

Καλημέρα στην υπέροχη ομάδα.

Προσπάθησα να βρω ανάλογο θέμα αλλά δεν το κατάφερα.

Πως μετατρέπεται κάποιος δεκαδικός αριθμός σε κλάσμα ;

Στο ecxel υπάρχει τύπος ο (?/?) .

Πως μπορούμε να το κάνουμε σε πεδίο σε φόρμα ή σε έκθεση ;
Απάντηση με παράθεση
  #2  
Παλιά 16-12-20, 19:11
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 08-12-2020
Μηνύματα: 153
Προεπιλογή

Δες λίγο αυτό το Post : https://www.tek-tips.com/viewthread.cfm?qid=206890
Απάντηση με παράθεση
  #3  
Παλιά 17-12-20, 21:45
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Η συνάρτηση ConvertDecimalToFraction επιστρέφει κατά βούληση τον ακέραιο χωριστά και το δεκαδικό κομμάτι ενός αριθμού σε κλάσμα.

Για παράδειγμα χρήσης με την τιμή 3,333 από πεδίο φόρμας ή έκθεσης:

=ConvertDecimalToFraction(3,123) επιστρέφει 3 123/1000
ή
=ConvertDecimalToFraction(3,123;2) επιστρέφει 3 3/25
ή
=ConvertDecimalToFraction(3,123;2;False) επιστρέφει 78/25

Όλα τα ορίσματα στη συνάρτηση εκτός από το πρώτο είναι προαιρετικά.


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

Private Function GetDecimalSeparator()
    If Int("1,5") = 1 Then
        GetDecimalSeparator = ","
    Else
        GetDecimalSeparator = "."
    End If
End Function

Public Function ConvertDecimalToFraction(DecimalValue As Variant, _
                                         Optional NumDigitsAfterDecimal As Integer = -1, _
                                         Optional UseWholePartSeperratly As Boolean = True) As String

    Dim DecCount As Integer
    Dim DivParts As Double
    Dim UPart As Long
    Dim LPart As Long
    Dim WholeNumber As Double
    Dim Sep As String

    If IsNull(DecimalValue) Then
        ConvertDecimalToFraction = vbNullString
        Exit Function
    End If

    Sep = GetDecimalSeparator

    UPart = 1
    LPart = 1

    If NumDigitsAfterDecimal > -1 Then
        DecimalValue = Round(DecimalValue, NumDigitsAfterDecimal)
    End If

    WholeNumber = Int(DecimalValue)

    If WholeNumber = DecimalValue Then
        ConvertDecimalToFraction = DecimalValue
        Exit Function
    Else
        DecCount = Len(Split(CStr(DecimalValue), Sep)(1))
    End If
    If UseWholePartSeperratly Then
        DecimalValue = Round(DecimalValue - WholeNumber, DecCount)
    End If
    DivParts = UPart / LPart

    While (DivParts <> DecimalValue)
        If (DivParts < DecimalValue) Then
            UPart = UPart + 1
        Else
            LPart = LPart + 1
            UPart = DecimalValue * LPart
        End If
        DivParts = UPart / LPart
    Wend
    If WholeNumber = 0 Then
        ConvertDecimalToFraction = CStr(UPart) & "/" & CStr(LPart)
    Else
        If UseWholePartSeperratly Then
            ConvertDecimalToFraction = WholeNumber & " " & CStr(UPart) & "/" & CStr(LPart)
        Else
            ConvertDecimalToFraction = CStr(UPart) & "/" & CStr(LPart)
        End If
    End If
End Function
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #4  
Παλιά 15-01-21, 09:50
Όνομα: ΚΩΣΤΑΣ
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 28-01-2020
Μηνύματα: 31
Προεπιλογή

Να ζητήσω πρώτα από όλα μια συγνώμη για την μεγάλη καθυστέρηση απάντησης στα σχετικά των αγαπημένων συνομιλητών .
Δεν είχα δυνατότητα επικοινωνίας λόγω προσωπικών προβλημάτων.
Να ευχηθώ Καλή Χρονιά με ΥΓΕΙΑ και να ευχαριστήσω για την βοήθεια τον Γιάννη και τον Τάσο.

Η αλήθεια είναι πως τώρα θα ασχοληθώ , εαν χρειαστώ βοήθεια θα ενοχλήσω και πάλι.

Ευχαριστώ και πάλι.
Απάντηση με παράθεση
  #5  
Παλιά 05-03-21, 14:06
Όνομα: ΚΩΣΤΑΣ
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 28-01-2020
Μηνύματα: 31
Προεπιλογή

Καλησπέρα .

Πως μπορώ να εφαρμόσω την συνάρτηση σε κελί έκθεσης ώστε να λειτουργήσει ο κώδικας ;

Δεν ξέρω καν πως να ξεκινήσω ;

Υπάρχει η δυνατότητα να ανεβεί σε ένα παράδειγμα .

Ευχαριστώ πολύ .
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Μετατροπή κώδικα VBA γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 01-08-14 10:11
Μετατροπή από MDE σε ACCDE γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 3 25-02-14 08:25
[ Εκθέσεις ] Μετατροπή έκθεσης σε PDF gmax Access - Ερωτήσεις / Απαντήσεις 14 16-08-11 10:34
[Γενικά] μετατροπή σε ωρα misirlis Excel - Ερωτήσεις / Απαντήσεις 9 07-09-10 11:15


Η ώρα είναι 20:39.