PDA

View Full Version : سوال: مقيد كردن تكست باكسي كه توي اون تاريخ وارد ميشه



expert2219
چهارشنبه 28 دی 1390, 11:28 صبح
سلام به همه اساتيد عزيز
از دوستان كي ميدونه چطوري ميشه توي يه تكست باكس كه تاريخ توش وارد ميشه و توي input mask براش
اينطوري --/--/---- تعريف شده ، كاربر نتونه توي ماه عدد بيشتر از 12 و توي روز عدد بيشتر از 31 وارد كنه يا اگه وارد كرد با پيغام خطا روبرو بشه

ATA_TABRIZ
چهارشنبه 28 دی 1390, 12:26 عصر
با سلام
ميتوني از تابع mid استفاده كني در After update يه شرط if بذار با استفاده از and كه هر كدوم درست نبود پيغام بده مثل

if val(mid(text;6;2))>12 and val(mid(text;8;2))>31 then
mgbox(پيغام)
endif

royasaz_bam
پنج شنبه 29 دی 1390, 05:24 صبح
راهی بسیار قدرتمند تر و ساده تر وجود دارد که توصیه مبکنم حتما از آن استفاده نمائی زیرا در روال برنامه هایت تحولی مهم بوجود می آورد:
آن هم استفاده از اکتیوکس مبذل تاریخ CPSDمی باشد علارقم اینکه تعریف و نصب و به قولی رجیستر کرئن اکتیوکس مبدل تاریخ ممکن است در ابتدای کار کمی برایت مشکل باشد ولی همانند بیمه کردن میباشد و در روال کارت بسیار قدرتمند عمل خواهد کرد به سایت CPSD مراجعه کن اکتیوکس را دانلود و نصبش کن ونمونه را که به همراه نرم افزار نصب میشود در فهرست samples در محل نصب اکتیوکس اجرا کن علارقم تمام کربردهای مفید دیگرش یک فیلد با رنگ قرمز عنوان شده که "تاریخ شمسی را اشتباه وارد نمایید" که پس از ورود اشتباه تاریخ پیام مربوطه را میدهد :
باید به قدرت این اکتیوکس اشاره نمایم در فرمول یاد شده بالا در صورتی که ماه اسفند 29 روزه باشد مثلا اسفند امسال و تو به اینگونه عمل نمایی 30/12/1390 پیام خطائی داده نمیشود ولی این اکتیوکس به تو پیام خطای تاریخ اشنباه را میدهد و این باز در حالی است که اگر تاریخ 30/12/1387 را وارد نمائی به تو پیام خطا نمیدهد چرا ...... چون که سال 87 سالی است که شگون ندارد 81073

emami.sie
پنج شنبه 29 دی 1390, 10:20 صبح
با سلام
دوستمون لطف کردن و آدرس اکتیوایس ارزشمند جناب پیروزمهر رو بهتون دادند اما من هم یه اشاره ای به توابع جناب آزادی می کنم و نمونه ای رو هم براتون میذارم... (برای مورد سئوالتون کافیه توی تاریخ 1 یا 2 یه مقدار نامعتبر مثل 90/12/31 رو وارد کنید و نتیجه رو ببینید)
این نکته رو هم بگم که هر دوی این توابع راه گشایی است برای کاربران اکسس و استفاده از هر کدوم بستگی به سلیقه و محدودیتهای کاربر داره...
موفق باشید
یا علی

emph110
پنج شنبه 18 اسفند 1390, 11:10 صبح
با سلام خدمت استاتید محترم
یک فرم طراحی کردم دارای یک masktextbox می باشد که آن را به sql2005 وصل کردم. ولی هنگامی که می خوام اطلاعات مربوط به تاریخ را وارد کنم. error می دهد و نوع فیلد sql را از datetime تعریف کردم.
نوع masktextbox چگونه باید باشد. ( کاربر مبتدی )

royasaz_bam
جمعه 19 اسفند 1390, 01:35 صبح
سلم دوست عزیز
معمولا در اکسس فیلدهای از نوع تاریخ را از نوع تکست میگذارند و اینپوت ماسک آن را به صورت 0000/00/00 قرار میدهند که من خود شخصا حتی اینپوت ماسک آن را خالی میگزارم ولی در عوض کاربر را مجبور میکنم برای درج تاریخ از فرم بازشو گرافیکی تاریخ طبق عکس ذیل استفاده نماید
83870

به این صورت تاریخ همواره درست درج میشود به تجربه میگویم فیلدهای نوع date time به دلیل اینکه اعتبار سنجی تاریخ آنها از نوع میلادی میباشد برای درج تاریخهای شمسیمناسب نمیباشند زیرا ماهای میلادی گاها 28 روزه ولی این شماره ماه ها در شمسی 31 روزه می شوند و شما تقریبا این 3 روز رانمیتوانید وارد نمایید و ارور آن مبنی بر عدم اعتبار تاریخ وارد شده میباشد
البته این مطلب بر اساس تجربه شخصی من میباشد و ممکنه دوست عزیز ارور شما به دلیل ارتباط آن با sql باشد و شما از مطلب عنوان شده آگاه باشید در هر صورت امیوارم مشکلتان حل شود

askar333
یک شنبه 21 اسفند 1390, 19:36 عصر
سلام
ایا این مبدل تاریخ در اکسس کار می کند یا نه
لطفا برای من ارسال کنید
host.domin@gmail.com

royasaz_bam
یک شنبه 21 اسفند 1390, 20:03 عصر
ای اکتیوکس در واقع برای اکسس ساخته شده و بسیار سازگار و مناسب میباشد البته از آن در vb هم میتوان استفاده نمود
لینک دانلود
http://www.cpsd.ir/downloads/PDC%20Version%20V2.exe

com12151337
چهارشنبه 18 مرداد 1391, 15:20 عصر
جناب royasaz_bam و دوستان سلام
لینک را دانلود کردم و آدرسی که هنگاه نصب برنامه جهت معرفی آن به کامپیوتر میدم خطا میگیره و در رفرنس هم تیک زدم
1- در مثالهای برنامه کلی نوشته و بنده بخاطر اینکه اولین بار بود برنامه را میدیدم نمی دانم دستورات را کجا بنویسم
2- آن فرمهای تاری و ساعت را چگونه احضار کنم آیا با فشار دادن یک دکمه تاریخ مورد نظر را در برنامه اعمال مکند
ممنون

ictman64
شنبه 03 خرداد 1393, 16:11 عصر
این مبدل در ویندوز 8.1 دارای پیغام خطا هستش چی کار کنم؟
PDC ( Persian Date Converter ) (2.5.0) is not allowed to run on WinNTx (6.2)

Setup Aborted!

این پیغم خطاش هستش

RESMAILY
یک شنبه 04 خرداد 1393, 09:26 صبح
به نام خدا
با سلام. اگر چیزی گیرتان نیامد از روال زیر استفاده کنید. البته تاریخ بصورت text دریافت و ارسال می شود. شما هرطور بنویسیدٰ این روال آن را تبدیل به یک تاریخ هشت رقمی با جداکننده می کند. شاید به دردتان خورد.

'ÊÇÈÚ ßäÊÑá ÏÑÌ ÊÇÑíÎ ÏÑ ÝíáÏåÇí æÑæÏ ÇØáÇÚÇÊ
Public Function Ctrl_Date(ByRef Dte As String) As String
strMsg = Dte
If Dte <> "" Then GoTo 20
strMsg = "..."
10:
strMsg1 = "ÊÇÑíÎ" + "<" + strMsg + ">" + "ãÚÊÈÑäíÓÊ"
strMsg2 = Msg_T
MsgBox strMsg1, vbCritical, strMsg2
Ctrl_Date = ""
Exit Function
20:
'Sal
X_1 = InStr(1, Dte, "/")
If X_1 = 0 Then GoTo 10
strYear = Mid(Dte, 1, X_1 - 1)
len_strYear = Len(strYear)
If len_strYear = 5 Then GoTo 10
If len_strYear = 4 Then GoTo 25
If len_strYear = 3 Then strYear = Trim("1" & strYear)
If len_strYear = 2 Then strYear = Trim("13" & strYear)
25:
If Val(strYear) > 1400 Or Val(strYear) < 1300 Then GoTo 10
'Mah
X_2 = InStr(X_1 + 1, Dte, "/")
If X_2 = 0 Then GoTo 10
strMonth = Mid(Dte, X_1 + 1, X_2 - X_1 - 1)
len_strMonth = Len(strMonth)
If len_strMonth = 3 Then GoTo 10
If len_strMonth = 2 Then GoTo 30
If len_strMonth = 1 Then strMonth = Trim("0" & strMonth)
30:
If Val(strMonth) > 12 Or Val(strMonth) < 1 Then GoTo 10
X_3 = InStr(X_2 + 1, Dte, "/")
If X_3 <> 0 Then GoTo 10
'Rooz
strDay = Mid(Dte, X_2 + 1)
len_strDay = Len(strDay)
If len_strDay = 3 Then GoTo 10
If len_strDay = 2 Then GoTo 35
If len_strDay = 1 Then strDay = Trim("0" & strDay)
35:
If Val(strDay) > 31 Or Val(strDay) < 1 Then GoTo 10
If Val(strMonth) >= 7 And Val(strMonth) <= 12 And Val(strDay) = 31 Then strDay = "30"
If strMonth = 12 And Val(strDay) = 30 Then
ret = MsgBox("ÂíÇÊÇÑíÎ ÓÇá ßÈíÓå ÇÓÊ", 36, strMsg2)
If ret = 7 Then strDay = 29
End If
Dte = Trim(strYear & "/" & strMonth & "/" & strDay)
Ctrl_Date = Dte
End Function

com12151337
یک شنبه 04 خرداد 1393, 11:22 صبح
سلام
با ویندوز 8 بر نامه تاریخ cpsd سازگاری ندارد و اعلام خطا میکند راهی وجود دارذ

sadegh1944
یک شنبه 04 خرداد 1393, 13:52 عصر
سلام
به نظر من بهترین راه استفاده از تابع تاریخ شمسی validdate آقای آزادی می باشد چون نیاز به هیچ گونه برنامه اضافه ای ندارد
در قسمت property تب data گزینه validation rule=validdate([Text1])=True و گزینه validation text= "تاریخ را درست وارد نمایید"

New Account
یک شنبه 04 خرداد 1393, 23:15 عصر
سلام

متاسفانه ظاهراً دوستان علاقه مندند سئوالاتشون رو در هر جایی بپرسند به غیر از بخش پشتیبانی محصول

موضوع ویندوز 8 قبلا مورد بحث واقع شده

سئوالاتتون رو در بخش پشتیبانی مطرح بفرمایید , بخش پشتیبانی برای پاسخگویی به سئوالات کاربران ایجاد شده

در خصوص این محصول اینجا احتمالاً کمکی از کسی بر نمیاد براتون و قطعا با توجه به عرضه نسخه 3 این محصول که مواجه با غیر رایگان شدن اون هم خواهیم شد , پس زین پس دیگه نه توصیه ای در خصوص استفاده از اون خواهد شد تا احیاناً قوانین سایت خدشه دار نشه ( حمل بر تبلیغ نشه ) و نه صحبتی ( عین محصول دوم )

موفق باشید


تصویری از اجرای PDC در ویندوز 8

119488