幣值換算

Category: 隨寫  

程式畫面
write1401.jpg

各元件內容
write1402.jpg
開機先建立新資料庫

after部份
Sub Form1003_After()
Dim int_open as Integer
Dim int_create as Integer '宣告int_open,int_create為整數變數用以創造資料庫
Dim str_db_name as String '宣告str_db_name as 為字串變數用以處理資料檔案
str_db_name="bb_db" '宣告資料庫檔案為bb_db
int_create=DbCreate(my_money_db,"bb_db",0,"TsWk")建立資料庫my_money_db plam內檔名為bb_db,0為放入記憶體內tswk為個人標示可隨便打
int_open=dbopen(my_money_db,str_db_name,0)開啟資料庫my_money_db 並將plam內檔名為bb_db讀入0為資料在記憶體內
MsgBox "資料庫重新建立完成..."

清空所有輸入

List_usa.clear
Field_one_rate.Text=""
Field_2th_rate.Text=""
Field_3th_rate.Text=""
Field_4th_rate.Text=""
Field_goods.Text=""

End Sub

按鈕"記錄"部份

Sub object1053()
Dim my_money_rec as rate '定義my_money_rec 為rate群組(巨集?)並與副程式相關
'將匯率與幣值名稱放入資料庫
my_money_rec.one_rate=Trim(Field_one_rate.Text)
'將Field_one_rate.Text文字去除空白,放入變數one_rate中,再放入資料庫。以下類推。
my_money_rec.two_rate=Trim(Field_2th_rate.Text)
my_money_rec.three_rate=Trim(Field_3th_rate.Text)
my_money_rec.four_rate=Trim(Field_4th_rate.Text)
my_money_rec.money_name=Trim(Field_money_name.Text)
my_money_rec.money_nameb=Trim(Field_money_nameb.Text)
Call InsertData(my_money_rec)呼叫副程式InsertData(my_money_rec)以便將資料放入資料庫

清空所有輸入

Field_one_rate.Text=""
Field_2th_rate.Text=""
Field_3th_rate.Text=""
Field_4th_rate.Text=""
Field_money_nameb.Text=""
Field_money_name.Text=""
Field_goods.Text=""

End Sub

按鈕"讀取"部份~

1)永遠只讀出資料庫中第一筆資料。
2)將資料放回輸入欄位
3)變數不能用阿拉伯數字
4)one~four為匯率其他為名稱但都是字串變數

Sub object1066()
Dim int_read as Integer'宣告int_read 為整數變數用以讀出資料庫中第一筆資料。

Dim str_one_rate as String'宣告str_one_rate 為字串變數用以處理字串資料
Dim str_two_rate as String 以下類推
Dim str_three_rate as String
Dim str_four_rate as String

Dim str_money_name as String
Dim str_money_nameb as String

Dim str_key as String '宣告str_one_rate 為字串變數用以當鍵值
Dim str_re_reat as String '宣告str_one_rate 為字串變數這是要顯示的變數

Dim int_s_one as Integer'宣告int_s_one 為整數變數用以顯示字串str_one_rate 。
Dim int_len_one as Integer'宣告int_len_one 為整數變數用以顯示字串str_one_rate 。以下類推

Dim int_s_two as Integer
Dim int_len_two as Integer

Dim int_s_three as Integer
Dim int_len_three as Integer

Dim int_s_four as Integer
Dim int_len_four as Integer

Dim int_s_name as Integer
Dim int_len_name as Integer

Dim int_s_nameb as Integer
Dim int_len_nameb as Integer

int_read=DbReset(my_money_db)'重整資料庫my_money_db
int_read=DbReadNext(my_money_db,str_key,str_one_rate,str_two_rate,str_three_rate,str_four_rate,str_money_name,str_money_nameb) 將 資料庫 my_money_db讀出,鍵值為str_key(即將所有資料放入str_key中),str_one_rate,str_two_rate, str_three_rate,str_four_rate,str_money_name,str_money_nameb 為資料欄位變數名稱,內有資料

讀出的資料並放回各欄位

str_re_reat="*"+str_one_rate+"["+str_two_rate+"]"+str_three_rate+"{"+str_four_rate +"}"+str_money_name+"("+str_money_nameb+")"將讀出的資料放入變數str_re_reat中並加入"*"" [""]""{""}""("")"用以分割字串
int_s_one=InStr(1,str_re_reat,"*",1) 搜尋"*"位置(從第1個字元開始搜尋str_re_reat,直到找到"*"為止。搜尋型態為1??找到後將"*"的位置傳回int_s_one, int_s_one 為整數。
int_len_one=InStr(1,str_re_reat,"[",1)-int_s_one-1 搜尋"*"位置(從第1個字元開始搜尋str_re_reat,直到找到"[",為止。搜尋型態為1??找到後將"[",的位置傳回 int_len_one, 並減掉int_s_one再減1,所得數值傳回int_len_one。
Field_one_rate.Text=Mid(str_re_reat,int_s_one+1,int_len_one) 傳回str_re_reat中的一段字串,int_s_one+1為起始位置int_len_one為結束位置並把值傳回欄位 Field_one_rate.Text
以下類推
int_s_two=InStr(1,str_re_reat,"[",1),
int_len_two=InStr(1,str_re_reat,"]",1)-int_s_two-1
Field_2th_rate.Text=Mid(str_re_reat,int_s_two+1,int_len_two)

int_s_three=InStr(1,str_re_reat,"]",1)
int_len_three=InStr(1,str_re_reat,"{",1)-int_s_three-1
Field_3th_rate.Text=Mid(str_re_reat,int_s_three+1,int_len_three)

int_s_four=InStr(1,str_re_reat,"{",1)
int_len_four=InStr(1,str_re_reat,"}",1)-int_s_four-1
Field_4th_rate.Text=Mid(str_re_reat,int_s_four+1,int_len_four)

int_s_name=InStr(1,str_re_reat,"}",1)
int_len_name=InStr(1,str_re_reat,"(",1)-int_s_name-1
Field_money_name.Text=Mid(str_re_reat,int_s_name+1,int_len_name)

int_s_nameb=InStr(1,str_re_reat,"(",1)
int_len_nameb=InStr(1,str_re_reat,")",1)-int_s_nameb-1
Field_money_nameb.Text=Mid(str_re_reat,int_s_nameb+1,int_len_nameb)

End Sub

按鈕"刪除"部份~
Sub object1043()
Dim int_sel as Integer'宣告int_sel為整數變數用以讀出資料庫中第一筆資料。
Dim int_del as Integer'宣告int_del 為整數變數用以讀出資料庫中第一筆資料。
Dim str_key as String'宣告str_key 為字串變數用以處理資料檔案

str_key=GetKeyVal(int_sel)'用副程式中的GetKeyVal函數取得str_key的值
int_del=DbDelete(my_money_db,str_key) 刪除my_money_db的資料並取得 int_del

成功刪除int_del=0,若不是顯示錯誤訊息

If int_del=0 Then
MsgBox "刪除成功!"

Else

MsgBox "刪除失敗!(code="+str(int_del)+")"

End If

清空各欄位

Field_one_rate.Text=""
Field_2th_rate.Text=""
Field_3th_rate.Text=""
Field_4th_rate.Text=""
Field_money_nameb.Text=""
Field_money_name.Text=""
Field_goods.Text=""
List_usa.clear
Field_goods.Text=""

End Sub

按鈕"換算"部份~

由於計算式只設2個所以其他可以不計

Sub object1077()
Dim one_rate as Integer'宣告one_rate 為整數變數
Dim two_rate as Integer'宣告 two_rate 為整數變數
Dim goods_g as Integer宣告 goods_g 為整數變數
Dim money_g as Integer宣告 money_g 為整數變數
Dim money_k as Float宣告money_k 為浮點數變數,用以取小數點後兩位
Dim money_name as String 宣告 money_name 字串變數

If trim(Field_money_name.text)<>"" And Trim(Field_one_rate.Text)<>"" And Trim(Field_2th_rate.Text)<>"" Then

如果Field_money_name.textField_one_rate.TextField_2th_rate.Text不是空白繼續執行

money_name=Field_money_name.text '將Field_money_name.text 內的值讀入money_name
one_rate=val(Trim(Field_one_rate.Text'將Field_one_rate.Text 內的值去除空白轉為數字再讀入one_rate
two_rate=val(Trim(Field_2th_rate.Text))''將Field_2th.Text內的值去除空白轉為數字再讀入two_rate

If Trim(Field_goods.Text)<>"" Then'如果Field_goods不是空白則繼續執行

goods_g=val(Trim(Field_goods.Text))''將Field_goods.Text內的值去除空白轉為數字再讀入goods_g
money_g=((goods_g*one_rate)/two_rate)*100'運算式money_g為goods_g*one_rate)/two_rate所得的數字,再X100,再去除小數。
money_k=money_g/100''運算式money_k為money_g/100,以還原數字。

列出答案

List_usa.clear

List_usa.add str(money_k)+money_name'

Else '如果Field_goods空白則執行
MsgBox "請輸入商品價格"
EndIf
Else 如果Field_money_name.textField_one_rate.TextField_2th_rate.Text空白執行
MsgBox "資料不足請重新輸入"
EndIf

End Sub

按鈕"再換算"部份~

Sub object1079()

Dim one_rate as Integer'宣告one_rate 為整數變數
Dim two_rate as Integer'宣告 two_rate 為整數變數
Dim three_rate as Integer'宣告three_rate為整數變數
Dim four_rate as Integer'宣告four_rate 為整數變數

Dim goods_g as Integer'宣告goods_g 為整數變數
Dim money_g as Float宣告money_k 為浮點數變數

Dim money_p as Integer'宣告money_p 為整數變數,用以取小數點後兩位
Dim money_k as Float宣告money_k 為浮點數變數,用以取小數點後兩位
Dim money_nameb as String'宣告 money_name 字串變數

If trim(Field_money_nameb.text)<>"" And Trim(Field_one_rate.Text)<>"" And Trim(Field_2th_rate.Text)<>"" And Trim(Field_3th_rate.Text)<>""And Trim(Field_4th_rate.Text)<>""Then
如果(Field_money_name.text)(Field_one_rate.Text)(Field_2th_rate.Text)(Field_3th_rate.Text)(Field_4th_rate.Text)不是空白繼續執行
money_nameb=Field_money_nameb.text'將Field_money_nameb.text 內的值去除空白讀入money_nameb
one_rate=val(Trim(Field_one_rate.Text))'將Field_one_rate.Text 內的值去除空白轉為數字再讀入one_rate
two_rate=val(Trim(Field_2th_rate.Text))''將Field_2th.Text內的值去除空白轉為數字再讀入two_rate
three_rate=val(Trim(Field_3th_rate.Text))''將Field_3th.Text內的值去除空白轉為數字再讀入three_rate
four_rate=val(Trim(Field_4th_rate.Text))''將Field_4th.Text內的值去除空白轉為數字再讀入four_rate

If Trim(Field_goods.Text)<>"" Then '如果Field_goods不是空白則繼續執行
goods_g=val(Trim(Field_goods.Text))''將Field_goods.Text內的值去除空白轉為數字再讀入goods_g

money_g=((goods_g*one_rate)/two_rate)將運算式goods_g*one_rate)/two_rate值讀入money_g
money_p=((money_g*three_rate)/four_rate)*100將運算式money_g*three_rate)/four_rate的值X100,讀入。money_p
money_k=money_p/100還原money_k
' 列出答案
List_usa.clear
List_usa.add str(money_k)+money_nameb
Else '如果Field_goods空白則執行
MsgBox "請輸入商品價格"
EndIf
Else '如果Field_goods空白則執行
MsgBox "資料不足請重新輸入"
EndIf

End Sub

副程式部份

Global my_money_db as Database'my_money_db 資料庫的建造

Type rate 需要的變數
one_rate as String宣告one_rate 為字串變數
two_rate as String宣告two_rate 為字串變數
three_rate as String宣告three_rate 為字串變數
four_rate as String宣告four_rate 為字串變數
money_name as String宣告money_name為字串變數
money_nameb as String宣告money_nameb為字串變數
End Type

新增副程式

Sub InsertData(my_money_rec as rate)呼叫rate 中的宣告
Dim int_ins as Integer宣告int_ins為字串變數
Dim str_key as String 宣告str_key為字串變數
str_key=trim(my_money_rec.one_rate+my_money_rec.two_rate+my_money_rec.three_rate+my_money_rec.four_rate+my_money_rec.money_name+my_money_rec.money_nameb) 讀出鍵值為str_key(即將所有資料放入str_key中)
int_ins=DbInsert(my_money_db,str_key,my_money_rec) 即將所有資料放入str_key中再放入資料庫中,int_ins為判斷變數

判定是否新增成功

If int_ins=0 Then
MsgBox "新增成功!"
Else
MsgBox "新增失敗!(code="+str(int_ins)+")"
End If

End Sub

函數 GetKeyVal
Function GetKeyVal(idx as Integer) as String這裡不瞭(idx as Integer)但知道此函數被設為字串
Dim int_reset as Integer'宣告int_reset為整數變數
Dim int_read as Integer'宣告int_read為整數變數
Dim my_money_rec as rate'宣告my_money_rec as rate'
Dim str_key as String宣告str_key為字串變數
int_reset=DbReset(my_money_db)重設my_money_db
int_read=DbReadNext(my_money_db,str_key,my_money_rec) 將資料庫 my_money_db讀出,鍵值為str_key(即將所有資料放入str_key中)
GetKeyVal=trim(str_key)將值放入 GetKeyVal
End Function

使用方法

例︰美金比當地貨幣為1:600
台幣比美金為33:1

輸入如下,注意*所求的貨幣匯率一定在貨幣名稱下


write1403.jpg
1).按[記錄]此時畫面會被清空,再按[讀取]就可以計算貨價了。

2).之後如果匯率被不慎更動,只要按[讀取]就可以叫回。

3).要更改匯率按刪除會清空畫面並刪除資料庫內的資料供重新輸入

4).[清除]只能清除商品價格跟結算值不會動到資料庫內的資料

5).如不慎更動又按到[記錄],系統只會讀取原先資料,不會有其他影響。


 2014_02_13

Comments


只對管理員顯示


10 « 2024_11 » 12

SUN MON TUE WED THU FRI SAT
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

自我介紹

你(妳)不用知道

Author:你(妳)不用知道
沒有介紹!
我什麼都不會說的!

最新文章

最新留言

最新引用

搜尋欄

加為部落格好友




pagetop