![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 阿倫 ![]()
![]() |
想請大家幫小弟一個忙 就是我撰寫一個ACCESS的資料庫 有一個欄位是金額(數字) 我想在列印報表時能夠將它轉換成大寫文字 例如"1230"在列出報表時他會列出"******壹貳叁零" 共十個位子 如果沒用到的位子補*號 請問如何撰寫這個程式 謝謝
搜尋相關Tags的文章:
[ 數字轉換成文字 ] ,
本篇文章發表於2005-11-26 18:11 |
1樓 |
自訂一個函數ConvertC來使用即可
把下列程式加到模組 Function ConvertC(num_org, Optional dollar As Boolean, Optional cate) '數字轉換大寫金額 Dim I Dim result Dim cd(0 To 3) '宣告單位陣列 Dim cd1(0 To 2) num_org = Int(num_org) cd1(1) = "萬" cd1(2) = "億" cd(0) = "" If IsMissing(cate) Then cate = 1 If cate = 1 Then cd(1) = "拾" cd(2) = "佰" cd(3) = "仟" ElseIf cate = 2 Then cd(1) = "十" cd(2) = "百" cd(3) = "千" End If For I = 2 To Len(num_org) + 1 '轉換為國字,但無單位 If cate = 1 Or IsMissing(cate) Then Select Case Mid(CStr(num_org), I - 1, 1) Case Is = 1: X = "壹" Case Is = 2: X = "貳" Case Is = 3: X = "參" Case Is = 4: X = "肆" Case Is = 5: X = "伍" Case Is = 6 X = "陸" Case Is = 7: X = "柒" Case Is = 8: X = "捌" Case Is = 9: X = "玖" Case Is = 0: X = "零" End Select ElseIf cate = 2 Then Select Case Mid(CStr(num_org), I - 1, 1) Case Is = 1: X = "一" Case Is = 2: X = "二" Case Is = 3: X = "三" Case Is = 4: X = "四" Case Is = 5: X = "五" Case Is = 6 X = "六" Case Is = 7: X = "七" Case Is = 8: X = "八" Case Is = 9: X = "九" Case Is = 0: X = "O" End Select End If x1 = x1 & X Next I m = (Len(x1) \ 4) k = (Len(x1) \ 4) m1 = Len(x1) Mod 4 If m1 <> "" Then x2 = Left(x1, m1) u = 1 GoSub po result = J End If For I = 1 To Len(x1) Step 4 m = m - 1 x2 = Mid(x1, I + m1, Len(x1) - (m * 4) - m1) If Len(x2) > 4 Then x2 = Left(x2, 4) End If u = 1 GoSub po result = result & J Next If dollar = True Then ConvertC = result & "元 整" Else ConvertC = result End If Exit Function '中斷程式 po: J = "" L = "" For u = 0 To Len(x2) - 1 '加上單位 If Mid(x2, Len(x2) - u, 1) <> "零" Then L = Mid(x2, Len(x2) - u, 1) & cd(u) J = L & J ElseIf Mid(x2, Len(x2) - u, 1) = "零" And Left(J, 1) <> "零" Then J = "零" & J End If Next u If Right(J, 1) = "零" Then '若最後一位為零,則去掉 J = Left(J, Len(J) - 1) End If If J <> "" Then J = J & cd1(m) End If Return End Function
本篇文章回覆於2005-11-27 00:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
阿倫 ![]() |
謝謝您
我已經看到你提供的程式了 謝謝
本篇文章回覆於2005-11-27 10:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
阿倫 ![]() |
對不起
我剛剛試了 還是不行 可以大概說一下如何設定嗎? 謝謝 因為我的金額欄位是數字 而你說的程式設定一模組 需要再作甚動作嗎 我一直測不出結果 謝謝
本篇文章回覆於2005-11-27 11:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
模組只是設定函數而已,當然須要在表單驅動它,如下:
Me![完整金額] = ConvertC((Me![總計]), True)
本篇文章回覆於2005-11-28 00:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
阿倫 ![]() |
版主你好
因為我還是沒辦法完成他 是否可以把我的範例寄給你 你幫我該一下 可以嗎? 謝謝
本篇文章回覆於2005-11-28 20:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
我並非版主,我的e-mail:lin27850016@yahoo.com.tw
本篇文章回覆於2005-11-29 00:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
資料庫已寄回
本篇文章回覆於2005-11-29 17:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
阿倫 ![]() |
我已經收到你回覆的檔案了
謝謝你
本篇文章回覆於2005-11-29 17:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
TO tungta大大:
首先感謝你上次寄範例給我,非常謝謝。 這次又碰上了一個問題,困擾了許久,與這篇文章碰到的問題一樣, 也就是怎麼把數字轉換成中文大寫再列印出來,我試了上面你教的方 法,但不了解如何在表單驅動它,也試了 Me![完整金額] = ConvertC((Me![總計]), True) 但就是沒用,而且還出現"不正確的外部程序"這個訊息視窗,到底該怎 麼辦,勞煩你幫小妹我解答一下,感激不盡^^
本篇文章回覆於2006-07-05 14:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓 |
可否把資料庫寄來看看:lin27850016@yahoo.com.tw
本篇文章回覆於2006-07-05 15:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓 |
資料庫寄回
1.程式碼要放在模組,才方便所有的表單與報表引用 2.引用程式碼時的語法要放在真正要用的地方,例如報表,要放在該欄位所在位置的On Format事件;若是表單,要放在表單的On Current事件 3.發票總金額的語法正確,但是資料表或查詢(你是用表單)與欄位名稱(要放入所有用來計算的)錯誤,至於為何用查詢呢,因為這樣才會包括產品單價與數量兩個欄位
本篇文章回覆於2006-07-06 15:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
12樓 |
大大們:
Q1: 我的問題也是數字要改成國字,但是,為「生日」資料 但是為配合套印,分為「年」「月」、「日」各別抓取列印,(目前已有簡單抓出來查詢欄) 另外:較特殊的是20→廿、21→廿一…;30→卅、31→卅一以此類推 Q2: 再來:就是上面的模組有嘗試套入(模組:已全copy入。ConvertC巨集:執行RunCode,函數名稱:ConvertC) 新手上路,在表單或報表中還是測不出來, Private Sub Report_Open(Cancel As Integer) Me![國日] = ConvertC((Me![日]), True) End Sub →錯誤訊息:應為變數或程序,而非模組?? 再麻煩大大們!感恩!!
本篇文章回覆於2006-12-04 11:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
13樓 |
各位大大:
上面#12 song 所提的問題Q2已解決 但Q1:還是測不出來,如何將「數字轉文字」 10→十、11→十一…;20→廿、21→廿一…;30→卅、31→卅一 再追加Q3:測試中,若資料為空白,會出現「錯誤」,如何將空白資料改為「吉」 報表中「文字方塊」=IIf([月]=Null,"吉",ConvertC([月],True))→出現錯誤!? 新學不懂,煩請幫忙,感恩!
本篇文章回覆於2006-12-05 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
14樓 |
感謝各位大大:
問題已經解決,測試ok!!
本篇文章回覆於2006-12-05 22:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
15樓 |
如何轉變出為整數,如1200元轉為壹仟貳佰元(不是:壹仟貳佰零拾零角元)
本篇文章回覆於2006-12-15 08:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |