View Full Version : در مورد MaskEdBox یه سوال داشتم
سارامجیدی
یک شنبه 07 مهر 1387, 09:51 صبح
من MaskEdBox برنامه ام رو به ##:## ماسک کردم اما وقتی میخوام یه زمان رو از Table بخونم و داخلش قرار بدم Invalid peroperty value میده.کدم هم اینه:
MaskEdBox1.text=Adodc1.Recordset.Fields("en_time").Value
مشکلش چیه؟
f.nabavi
یک شنبه 07 مهر 1387, 11:03 صبح
فرمت MaskEdBox1 رو باید به صورت hh:mm قرار بدی:
Private Sub Form_Load()
maskedit.Format = "hh:mm"
End Sub
Private Sub Command1_Click()
maskedit.Text = "12:30" 'this code will set the time
End Sub
سارامجیدی
یک شنبه 07 مهر 1387, 12:19 عصر
F.nabavi ممنون
منم همین کارو کردم اما همون Error رو میده.انگار با TEXT. مشکل داره. کارم گیره کمکم کنید.
f.nabavi
یک شنبه 07 مهر 1387, 13:22 عصر
فرمت اطلاعاتی که داخل فیلد en_time ریختید، time هست یا text؟ اگر time هست به Text تبدیل کنید نتیجه رو بگید.
hamed aj
دوشنبه 08 مهر 1387, 00:45 صبح
سلام دوست عزیز
فکر می کنم اگه اینطوری بنویسی مشکل حل بشه
MaskEdBox1.text=CStr(Adodc1.Recordset.Fields("en_time") .Value)
سارامجیدی
دوشنبه 08 مهر 1387, 09:12 صبح
فیلد En_time از نوع nvarchar هست.که زمان رو به دقیقه نشون میده.یه تابع نوشتم که به ساعت و دقیقه تبدیلش میکنه و خروجیش string .نمیدونم چه جوری خروجی رو توی maskEdbox نشون بدم.
f.nabavi
دوشنبه 08 مهر 1387, 09:22 صبح
سلام. میتونی یک مقدار از برنامه و بانک رو آپلود کنی؟
سارامجیدی
دوشنبه 08 مهر 1387, 10:31 صبح
این تابعیه که عمل تبدیل رو انجام میده:
Function mtoh2(m1 As String) As String
Dim hour As Double
Dim min As Double
hour = Val(m1) / 60
min = Val(m1) Mod 60
mtoh2 = Str(hour) + ":" + Str(min)
mtoh2 = Mid(mtoh2, 2, 5)
End Function
اینم خط کدیه که ازش ارور میگیره
frm_fild_moshakhasat.MaskEdbox1.Text = mtoh2(Adodc1.Recordset.Fields("en_time"))
اشتباهم کجاست؟فیلد en_time هم که گفتم از نوع nvarchar هست.
f.nabavi
دوشنبه 08 مهر 1387, 11:30 صبح
اشتباه شما در کد نویسی تابع mtoh2 است. برای اینکه maskedbox1 بتونه یک مقدار را نمایش بده، باید عبارت رو به صورت hh:mm بهش بدی، مثلا "12:30". یعنی دو کاراکتر سمت راست : و دو کاراکتر سمت چپ. تابع شما به چنین شکلی مقدار رو بر نمیگردونه. من تابع رو تغییر دادم. اگر در مورد تغییرات سئوال داشتی بپرس
Private Sub Command1_Click()
MaskEdBox1.Text = mtoh2("500")
End Sub
Function mtoh2(m1 As String) As String
Dim hour As String
Dim min As String
hour = m1 \ 60
min = m1 Mod 60
If Len(hour) < 2 Then hour = "0" & hour
If Len(min) < 2 Then min = "0" & min
mtoh2 = hour + ":" + min
End Function
f.nabavi
دوشنبه 08 مهر 1387, 11:38 صبح
یه نکته دیگه اینکه عددی که به تابع میدی نباید اون قدر بزرگ باشه که مقدارش به ساعت 3 رقم بشه. در اون صورت باز error میده. اگر اعدادت بزرگن خاصیت mask رو به صورت ##:#### در بیار و خاصیت format رو خالی بذار. تابع دو هم تغییر بده که ساعت رو چهار رقمی بده.
سارامجیدی
دوشنبه 08 مهر 1387, 12:01 عصر
خیلی خیلی ممنون
جواب داد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.