Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Καλημέρα σ' όλη την παρέα. Ζητώ την βοήθειά σας ώστε στην Βάση-Δείγμα να μετατρέπεται το ποσό σε κείμενο. Στηρίζομαι σε μια καταπληκτική εφαρμογή που προτάθηκε στο Forum, αλλά δεν καταφέρνω να την προσαρμόσω σε μ' ένα! Στην 2η Βάση-Δείγμα εμφανίζει το μήνυμα: Περιορίστε τα δεκαδικά ψηφία σε 2! Πως μπορεί να τροποποιηθεί η συνάρτηση ΝumToWords ώστε να μετατρέπει αριθμούς και με πάνω από 2 δεκαδικά ψηφία; Τελευταία επεξεργασία από το χρήστη Χρήστος : 16-10-16 στις 19:57. |
#2
| ||||
| ||||
![]()
Καλημέρα Χρήστο! Αντικατέστησε τον κώδικα της φόρμας με τον παρακάτω κώδικα: Κώδικας: Option Explicit Private Sub Form_Load() ChckShowCur = GetSetting("Acc", "ConvToString", "ShowCurrency", True) Me.OptCharCase = GetSetting("Acc", "ConvToString", "OptCharCase", 0) End Sub Private Sub ChckShowCur_Click() SaveSetting "Acc", "ConvToString", "ShowCurrency", ChckShowCur End Sub Private Sub OptCharCase_AfterUpdate() SaveSetting "Acc", "ConvToString", "OptCharCase", Nz(Me.OptCharCase, 0) Me.Refresh End Sub Function NumToWordsWithMoreDecimals(myValue, Optional CharCase%, _ Optional EurosAndCents As Boolean = True) As String Dim strTemp As String, strTemp1 As String, tmpValue As String If Int(myValue) = myValue Then NumToWordsWithMoreDecimals = NumToWords(myValue, CharCase, EurosAndCents) Exit Function End If tmpValue = Mid(myValue - Int(myValue), 3) If Len(tmpValue) < 3 Then NumToWordsWithMoreDecimals = NumToWords(myValue, CharCase, EurosAndCents) Exit Function End If strTemp = NumToWords(Int(myValue), 0, EurosAndCents) myValue = Mid(myValue - Int(myValue), 3) If myValue = 1 Then strTemp1 = " " & ChrW(954) & ChrW(945) & ChrW(953) & " " & _ NumToWords(myValue, 0, False) & " " & _ ChrW(955) & ChrW(949) & ChrW(960) & ChrW(964) & ChrW(972) ElseIf Len(myValue) = 2 Then strTemp1 = " " & ChrW(954) & ChrW(945) & ChrW(953) & " " & _ NumToWords(myValue, 0, False) _ & " " & ChrW(955) & ChrW(949) & ChrW(960) & ChrW(964) & ChrW(940) Else strTemp1 = " " & ChrW(954) & ChrW(945) & ChrW(953) & " " & NumToWords(myValue, 0, False) End If strTemp = StrConv(strTemp & strTemp1, vbLowerCase) If CharCase = 0 Then strTemp = UCase(Left(strTemp, 1)) & Mid(strTemp, 2) ElseIf CharCase = 1 Then strTemp = UCase(strTemp) ElseIf CharCase = 2 Then strTemp = StrConv(strTemp, vbProperCase) End If If CharCase = 1 Or CharCase = 2 Then strTemp = Replace(strTemp, ChrW(911), ChrW(937)) strTemp = Replace(strTemp, ChrW(910), ChrW(933)) strTemp = Replace(strTemp, ChrW(905), ChrW(919)) strTemp = Replace(strTemp, ChrW(906), ChrW(921)) strTemp = Replace(strTemp, ChrW(904), ChrW(917)) strTemp = Replace(strTemp, ChrW(908), ChrW(927)) strTemp = Replace(strTemp, ChrW(902), ChrW(913)) If CharCase = 1 Then strTemp = Replace(strTemp, ChrW(962), ChrW(931)) End If NumToWordsWithMoreDecimals = strTemp End Function =IIf([poso] Is Null;Null;NumToWordsWithMoreDecimals([Poso];[OptCharCase];[ChckShowCur])) Με τις αναγραφόμενες αλλαγές θα μπορούν να μετατρέπονται και αριθμοί που περιέχουν περισσότερα από 2 δεκαδικά ψηφία. Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 11-02-12 στις 20:01. |
#3
| |||
| |||
![]()
Κάπου έχω πρόβλημα: 0,3473 € ---> Μηδέν Και ΤρειΣ ΧιλιάδεΣ Τετρακόσια Εβδομήντα Τρία Και κάτι άλλο: η συνάρτηση μπορεί να "κοιτάει" τον αριθμό ΜΕΤΑ την στρογγυλοποίηση (πχ 0,3273-->0,35) και να γράφει 0 Ευρώ και 35 Λεπτά; Τελευταία επεξεργασία από το χρήστη Χρήστος : 11-02-12 στις 16:13. |
#4
| ||||
| ||||
![]()
Χρήστο για την πρώτη σου ερώτηση, μπορείς να ξαναπάρεις τον διορθωμένο κώδικα από το προηγούμενο μου μήνυμα. Όσο για τη στρογγυλοποίηση δεν σε κατάλαβα. Από τη μια θέλεις να εμφανίζεις περισσότερα δεκαδικά και από την άλλη να τα στρογγυλοποιείς σε 2;;; Αν θέλεις να στρογγυλοποιήσεις τα ποσά σου μπορείς να χρησιμοποιήσεις: =IIf([poso] Is Null;Null;NumToWords(Round([Poso];2);[OptCharCase];[ChckShowCur])) που σημαίνει ότι δεν θα χρειαστείς τη συνάρτηση NumToWordsWithMoreDecimals από το προηγούμενο μήνυμα. Οποιαδήποτε άλλη αλλαγή που έχει σχέση με την εμφάνιση θα πρέπει να την κάνεις τροποποιώντας τον τύπο. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#5
| |||
| |||
![]()
Θα μελετήσω αυτό που μου λες!
|
#6
| |||
| |||
![]()
Τάσο δεν τα καταφέρνω, αλλά έχω μια δυο παρατηρήσεις. 1. Θέλω η συνάρτηση να δίνει ολογράφως Το Πρώτο Γράμμα Κάθε Λέξης Κεφαλαίο. (καμμιά άλλη επιλογή!) 2. Να Κοιτάει ένα πεδίο και ανεξάρτητα απ' το πλήθος των δεκαδικών ψηφίων , Να κάνει στρογγυλοποίηση σε 2 δεκ. ψηφία και να δίνει το κείμενο πχ 2,34 να δίνει 2 ευρώ και τριαντα τέσσερα λεπτά αλλά και 2,346 να δίνει 2 ευρώ και τριάντα πέντε λεπτά. Συγνώμη ρε Τάσο αν σε κούρασα, αλλά στηρίζομαι στην βοήθειά σου! Η φόρμα που θα δουλέψεις είναι η TotalPriceofOrders2Sub Τελευταία επεξεργασία από το χρήστη Χρήστος : 16-10-16 στις 19:57. |
#7
| ||||
| ||||
![]()
Χρήστο 1. Άνοιξε το συνημμένο που μόλις ανέβασες. 2. Στην καρτέλα Εξωτερικά δεδομένα πάτησε το κουμπί Access όπου με τη βοήθεια του οδηγού θα μπορέσεις να εισάγεις τη λειτουργική μονάδα "mdlFunc" από το πρώτο αρχείο που ανέβασες. Αποθήκευσε. 3. Στην προέλευση στοιχείου ελέγχου του πεδίου NumberInWords της φόρμας TotalPriceofOrders2Sub πέρασε το παρακάτω: =IIf([TotalPrice] Is Null;Null;NumToWords(Round([TotalPrice];2);2)) Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 11-02-12 στις 22:08. |
#8
| |||
| |||
![]()
Φίλε Τάσο σ' ευχαριστώ για την άμεση ανταπόκριση. Λειτουργεί όπως ακριβώς θέλω!! |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Συναρτήσεις] Μετατροπή αριθμού σε κείμενο | taseftim | Excel - Ερωτήσεις / Απαντήσεις | 3 | 23-06-20 19:21 |
Μετατροπή ποσού ολογραφώς | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 2 | 17-07-15 00:28 |
[ Πρόσθετα ] μετατροπή αριθμού σε κείμενο | rmaria | Excel - Ερωτήσεις / Απαντήσεις | 2 | 08-02-14 17:27 |
[Συναρτήσεις] Μετατροπή αριθμού σε κείμενο | mitsodou | Excel - Ερωτήσεις / Απαντήσεις | 10 | 25-05-11 09:12 |
[Συναρτήσεις] Μετατροπή ημερομηνίας σε κείμενο | PanosPan | Excel - Ερωτήσεις / Απαντήσεις | 15 | 02-12-10 18:30 |
Η ώρα είναι 06:01.