/* */

Thursday, April 14, 2011

[belajar-access] multiple calculator [2 Attachments]

[Attachment(s) from lukas ramos included below]

ada program kecil dibuat dengan VB yang bisa melakukan perhitungan tambah, bagi, kali dalam satu text box, saya ingin melakukannya dengan access tapi gagal terus euy, para master tolong donk
contoh vb nya saya lampirkan

kode didalam VB nya spt ini:

Option Explicit

Function DCr() As String
    DCr = Mid(1 / 2, 2, 1)
End Function

Function SCr() As String
    SCr = Mid(FormatNumber(1000, 0), 2, 1) 'find thousand separator
End Function

Function FormatNumberAuto(Str As String) As String
    Dim Temp1 As String, Temp2 As String
   
    If InStr(Str, "E") Or Str = "0" Then
        FormatNumberAuto = Str
        Exit Function
    End If
   
    If InStr(Str, DCr) Then
        Temp1 = Split(Str, DCr)(0)
        Temp2 = DCr & Split(Str, DCr)(1)
           
        If Temp1 <> "-0" Then Temp1 = Format(Temp1, "#,#")
       
        Do Until Right(Temp2, 1) <> "0"
            Temp2 = Left(Temp2, Len(Temp2) - 1)
        Loop
       
        If Temp2 = DCr Then Temp2 = ""
       
        Str = Temp1 & Temp2
       
        If Left(Str, 1) = DCr Then Str = "0" & Str
       
    Else
        Str = Format(Str, "#,#")
    End If
           
   
    FormatNumberAuto = Str
End Function

Sub Calc()
    On Error GoTo Ero
   
    Dim Temp1 As String, Temp2 As String, Temp3 As String
    Dim TempF As String
    Dim i As Integer

    If Cmb.Text = "" Then Exit Sub
   
    Temp1 = Replace(Cmb.Text, SCr, "")
    Temp1 = Replace(Temp1, DCr, ".")
    Temp1 = Replace(Temp1, " ", "")
   
    Txt = FormatNumberAuto(Script.Eval(Temp1))
   
    Temp2 = Replace(Cmb.Text, " ", "")
    Temp2 = Replace(Temp2, "+", " + ")
    Temp2 = Replace(Temp2, "-", " - ")
    Temp2 = Replace(Temp2, "*", " * ")
    Temp2 = Replace(Temp2, "/", " / ")
    Temp2 = Replace(Temp2, "^", " ^ ")
    Temp2 = Replace(Temp2, "(", "( ")
    Temp2 = Replace(Temp2, ")", " )")
   
    For i = 0 To UBound(Split(Temp2, " "))
        TempF = Split(Temp2, " ")(i)
        If IsNumeric(TempF) Then TempF = FormatNumberAuto(TempF)
           
        Temp3 = Temp3 & TempF & " "
    Next
   
    Temp3 = Left(Temp3, Len(Temp3) - 1)
    Temp3 = Replace(Temp3, "( ", "(")
    Temp3 = Replace(Temp3, " )", ")")
   
    'write history
    For i = 0 To Cmb.ListCount - 1
        If Cmb.List(i) = Temp3 Then
            Cmb.RemoveItem (i)
            Exit For
        End If
    Next
    Cmb.AddItem Temp3
   
    Cmb.Text = Temp3
   
Ero:
    If Err.Number <> 0 Then MsgBox Err.Description, , "Kalkulator"
    Cmb.SetFocus
End Sub

Private Sub Cmb_Click()
    SendKeys "{enter}"
End Sub

Private Sub cmb_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 48 To 57 'number
        Case 43, 45, 42, 47, 94 'function
        Case 40, 41 '( )
        Case 44, 46
            KeyAscii = 0
            Cmb.SelText = DCr
        Case 8 'bs
        Case 13 'enter
            KeyAscii = 0
            Calc
        Case Else
            KeyAscii = 0
    End Select
End Sub

Private Sub Form_Load()
    Cmb.Text = "5000+200000-(45*340)/2"
End Sub


Attachment(s) from lukas ramos

1 of 1 Photo(s)

1 of 1 File(s)


__._,_.___


SPAM IS PROHIBITED



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

No comments:

Post a Comment