ARData
شنبه 07 بهمن 1391, 17:09 عصر
سلام
تا حالا دقت کرده ايد که شماره هايي با فرمت هاي گوناگون مثل از نوع ريالي يا جداکردن سه رقم به سه رقم اعداد در متن مسيج باکس هميشه بدون فرمت بوده ؟
مثلا عدد داخل يک فيلد : 1,200,150 ريال است ولي زماني که مي خواهيم در متن مسيج باکس برگردانيم عدد 1200150 را برمي گردونه ...
با استفاده از فرمول زير اين مشکل حل شده که توضيح مختصر آن به شرح زير است :
Public Function ARDATA_Format(ByVal STRMyDigit As String, ByVal STRCutSymbol As String, ByVal STRMYFormatName As String)
Dim RevMyDigit As String
Dim MySTRCur As String
Dim i As Integer
Dim j As Integer
If STRMyDigit = "" Then
Exit Function
End If
j = Int((Len(STRMyDigit) - Nz((Len(STRMyDigit) Mod 3), 3)) / 3)
RevMyDigit = StrReverse(Right(STRMyDigit, Len(STRMyDigit) - Nz((Len(STRMyDigit) Mod 3))))
Dim L As Integer
For i = 1 To j
If j = 1 And Len(STRMyDigit) Mod 3 = 0 Then
MySTRCur = STRMyDigit
Exit For
End If
If i = 1 Then
L = 1
Else
L = i
End If
MySTRCur = STRCutSymbol & StrReverse(Mid(RevMyDigit, ((L - 1) * 3) + 1, 3)) & MySTRCur
Next i
ARDATA_Format = Left(STRMyDigit, Len(STRMyDigit) Mod 3) & MySTRCur & " " & STRMYFormatName
End Function
ARDATA_Format("واحد شمارش مثل ريال يا دلار يا کيلوگرم يا ليتر و ...", "سمبل جداکننده سه رقم اعداد", "مقدار عددي يا رشته اي" )
Private Sub Command83_Click()
MsgBox ARDATA_Format("1200140", ",", " ليتر")
End Sub
99029
تا حالا دقت کرده ايد که شماره هايي با فرمت هاي گوناگون مثل از نوع ريالي يا جداکردن سه رقم به سه رقم اعداد در متن مسيج باکس هميشه بدون فرمت بوده ؟
مثلا عدد داخل يک فيلد : 1,200,150 ريال است ولي زماني که مي خواهيم در متن مسيج باکس برگردانيم عدد 1200150 را برمي گردونه ...
با استفاده از فرمول زير اين مشکل حل شده که توضيح مختصر آن به شرح زير است :
Public Function ARDATA_Format(ByVal STRMyDigit As String, ByVal STRCutSymbol As String, ByVal STRMYFormatName As String)
Dim RevMyDigit As String
Dim MySTRCur As String
Dim i As Integer
Dim j As Integer
If STRMyDigit = "" Then
Exit Function
End If
j = Int((Len(STRMyDigit) - Nz((Len(STRMyDigit) Mod 3), 3)) / 3)
RevMyDigit = StrReverse(Right(STRMyDigit, Len(STRMyDigit) - Nz((Len(STRMyDigit) Mod 3))))
Dim L As Integer
For i = 1 To j
If j = 1 And Len(STRMyDigit) Mod 3 = 0 Then
MySTRCur = STRMyDigit
Exit For
End If
If i = 1 Then
L = 1
Else
L = i
End If
MySTRCur = STRCutSymbol & StrReverse(Mid(RevMyDigit, ((L - 1) * 3) + 1, 3)) & MySTRCur
Next i
ARDATA_Format = Left(STRMyDigit, Len(STRMyDigit) Mod 3) & MySTRCur & " " & STRMYFormatName
End Function
ARDATA_Format("واحد شمارش مثل ريال يا دلار يا کيلوگرم يا ليتر و ...", "سمبل جداکننده سه رقم اعداد", "مقدار عددي يا رشته اي" )
Private Sub Command83_Click()
MsgBox ARDATA_Format("1200140", ",", " ليتر")
End Sub
99029