نمایش نتایج 1 تا 8 از 8

نام تاپیک: ایجاد محدودیت در درج تاریخ

  1. #1

    ایجاد محدودیت در درج تاریخ

    با سلام
    من چون توی فرمهام از تاریخ هجری - شمسی استفاده می کنم و همچنین چون مقدار تاریخ از نوع number هست می خوام براش محدودیت قرار بدم یعنی قبل یا بعد از تاریخ مورد نظری رو وارد نکنم
    لطفا راهنمایی کنید

  2. #2
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    نقل قول: ایجاد محدودیت در درج تاریخ

    نقل قول نوشته شده توسط ghafeleh1370 مشاهده تاپیک
    با سلام
    من چون توی فرمهام از تاریخ هجری - شمسی استفاده می کنم و همچنین چون مقدار تاریخ از نوع number هست می خوام براش محدودیت قرار بدم یعنی قبل یا بعد از تاریخ مورد نظری رو وارد نکنم
    لطفا راهنمایی کنید
    سلام
    منظورتون از اینکه به صورت نامبر هست یعنی چی ؟
    یعنی به این صورت ؟ 1389/03/04
    یا اینکه می خواهید سال و ماه و عدد رو جدا کرده و هر کدوم رو جدا وارد جدول کنید ؟

    اگر منظورتون قسمت اوله که می تونید به شکل زیر عمل کنید.
    اول Input mask تکست باکس خودتون رو به صورت 0000/00/00 وارد کنید
    بعد توی اکشن KeyPress تکست باکس عدد زیر رو وارد کنید تا بغیر چارترهای انتابی که اعداد 0 تا 9 هستند و یک ” / “ که تاریخ رو جدا می کنه کاربر چیز دیگه ای رو نتونه وارد کنه.


    Private Sub txt_date_KeyPress(KeyAscii As Integer)
    On Error Resume Next
    Dim StrValid As String
    StrValid = "0123456789/"
    If KeyAscii > 26 Then
    If InStr(StrValid, Chr(KeyAscii)) = 0 Then
    KeyAscii = 0
    End If
    End If
    End Sub
    اگر هم می خواهید که بصورت دوم عمل کنید و سال/ماه/روز رو جدا کنید م یتونید بصورت زیر عمل کنید.
    اول تاریخ رو تقسیم کنید یا همون split ، و بعد اونا رو فراونی کنید.بصورت کد زیر



    '//txt_date="1389/03/04"
    Dim MyDate(), MyYear, MyMon, MyDay As String
    MyDate() = Split(txt_date.Value, "/") ' string tarikh
    MyYear = MyDate(0) ' Sal
    MyMon = MyDate(1) ' Mah
    MyDay = MyDate(2) ' Rooz
    /* ---------------------------
    KhorooJi
    MyDate(1389,03,04)
    MyYear = 1389
    MyMon = 03
    MyDay = 04
    --------------------------- */

    موفق باشید

  3. #3

    نقل قول: ایجاد محدودیت در درج تاریخ

    ببخشید توضیحات کم بود خوب متوجه نشدید
    من توی table فرمت یا data type تاریخ رو از نوع تکست استفاده کردم بدلیلی اینکه اگه بخوام از نوع date/time استفاده کنم بدلیل استفاده از تاریخ شمسی به مشکل می خورم چون بعضی از تاریخ ها رو نمی تونم وارد کنم
    به همین دلیل من از تکست برای وارد کردن استفاده کردم
    حالا می خوام یه شرط بزارم که مثلا تاریخ قبل از 1388/12/12 رو وارد نکن یعنی اگه کاربر خواست تاریخ 1388/12/11 رو وارد کنه پیغام خطا ظاهر بشه که باید تاریخبزگتر از این تاریخ باید باشد
    مثل نمونه زیز
    1388/12/12<
    توی نمونه DATE/TIME مشکلی با این کد ندارم ولی توی تکست نمی دونم چکار کنم
    ممنون میشم راهنمایی کنید

  4. #4
    کاربر دائمی آواتار sajjad_kochekian
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اصفهان نصف جهان
    پست
    581

    نقل قول: ایجاد محدودیت در درج تاریخ

    من یک پیشنهاد دیگه براتون دارم اگر می خواهید به اینصورت که خودتون گفتید کنترل کنید
    بهتر است سه فیلد برای تاریخ در نظر بگیرید(سال-ماه-روز)
    این طوری می تونید از عدد استفاده کنید به جای متن و کنترل آن هم راحت است

    اگر بتونی از ماژول های تاریخ هجری شمسی استفاده کنی می تونی جنس فیلد را از نوع تاریخ و زمان بگیری و کار خیلی برات راحت تر میشه

  5. #5
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    نقل قول: ایجاد محدودیت در درج تاریخ

    شما می تونید از datediff استفاده کنید، ولی این زیاد جالب نیست برای تاریخ هجری شمسی.
    می تونید توی یه فانکشن خودتون ماه های رو تعریف کنید چون ما تعدا روزهای متفاوت توی ماه هامون داریم کاربر به مشکل می خوره، برای حل مشکلتون شما می تونید چند تا کار انجام بدید.
    datedif:
    استفاده از دیت دیف درصورتی که زیاد براتون مهم نباشه که 100% صحیح کار کنه.!!!!

    'ekhtelafe beyne do tarikh
    'ekhtelafe beyne mahe tarikhe aval va tarikhe dovom
    MsgBox DateDiff("yyyy", "1389/02/04", "1390/03/04")
    MsgBox DateDiff("m", "1389/02/04", "1389/03/04")
    MsgBox DateDiff("d", "1389/02/04", "1389/03/04")


    راه دوم :
    می تونید تابع بالا رو استفاده کنید ولی قبلش تاریخ شمسی رو میلادی کنید و اختلاف اونا رو در بیارید که این راه به نظرم راحت ترین روش براتون می تونه باشه چون اولی جالب نیست راه سوم هم یه کم سخته! یادتون باشه تو این راه هم ممکنه اون اختلافات پیش بیاد.

    راه سوم:
    توی ماژول ماهها رو تعریف و مقدار هر ماه رو بدید و اختلاف ماهها رو در بیارید.

    موفق باشد.

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    اهواز
    پست
    212

    نقل قول: ایجاد محدودیت در درج تاریخ

    با سلام ميتونيد در قسمت validaition rule فيلد تاريخ خود شرط بزاريد مثلا" بزرگتر از يك تاريخ خاص يا كوچكتر و يا حتي بين دو تاريخ مورد نظر.

  7. #7

    نقل قول: ایجاد محدودیت در درج تاریخ

    نقل قول نوشته شده توسط sajjad_kochekian مشاهده تاپیک
    من یک پیشنهاد دیگه براتون دارم اگر می خواهید به اینصورت که خودتون گفتید کنترل کنید
    بهتر است سه فیلد برای تاریخ در نظر بگیرید(سال-ماه-روز)
    این طوری می تونید از عدد استفاده کنید به جای متن و کنترل آن هم راحت است

    اگر بتونی از ماژول های تاریخ هجری شمسی استفاده کنی می تونی جنس فیلد را از نوع تاریخ و زمان بگیری و کار خیلی برات راحت تر میشه

    نمی تونم چون تاریخ توی یه فیلد تعیین شده نمونه شمسی رو ندارم یعنی چطور توی TABLE که نمیشه ماژول شمسی رو تعریف کرد توی فرم رو نمی دونم


    نقل قول نوشته شده توسط id1385 مشاهده تاپیک
    شما می تونید از datediff استفاده کنید، ولی این زیاد جالب نیست برای تاریخ هجری شمسی.
    می تونید توی یه فانکشن خودتون ماه های رو تعریف کنید چون ما تعدا روزهای متفاوت توی ماه هامون داریم کاربر به مشکل می خوره، برای حل مشکلتون شما می تونید چند تا کار انجام بدید.
    datedif:
    استفاده از دیت دیف درصورتی که زیاد براتون مهم نباشه که 100% صحیح کار کنه.!!!!

    'ekhtelafe beyne do tarikh
    'ekhtelafe beyne mahe tarikhe aval va tarikhe dovom
    MsgBox DateDiff("yyyy", "1389/02/04", "1390/03/04")
    MsgBox DateDiff("m", "1389/02/04", "1389/03/04")
    MsgBox DateDiff("d", "1389/02/04", "1389/03/04")
    راه دوم :
    می تونید تابع بالا رو استفاده کنید ولی قبلش تاریخ شمسی رو میلادی کنید و اختلاف اونا رو در بیارید که این راه به نظرم راحت ترین روش براتون می تونه باشه چون اولی جالب نیست راه سوم هم یه کم سخته! یادتون باشه تو این راه هم ممکنه اون اختلافات پیش بیاد.

    راه سوم:
    توی ماژول ماهها رو تعریف و مقدار هر ماه رو بدید و اختلاف ماهها رو در بیارید.

    موفق باشد.

    حقیقتا شاید این کارایی که گفتید بشه ولی من چون از برنامه نویسی خیلی سر در نمیارم اگه نمونه باشه بهتر متوجه میشم

    نقل قول نوشته شده توسط Fatollah_ghazi مشاهده تاپیک
    با سلام ميتونيد در قسمت validaition rule فيلد تاريخ خود شرط بزاريد مثلا" بزرگتر از يك تاريخ خاص يا كوچكتر و يا حتي بين دو تاريخ مورد نظر.
    با این راه نمیشه چون تست کردم جواب نداد

    اینم نمونه خودم اگه خواستید رو این نمونه تست کنید
    تا اینجا هم ممنون بابت جوابهاتون
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar 00.rar‏ (25.5 کیلوبایت, 20 دیدار)

  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    اهواز
    پست
    212

    نقل قول: ایجاد محدودیت در درج تاریخ

    با سلام همونطوري كه گفته بودم عمل كرد نمونه خودتو اصلاح كردم .
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar 00.rar‏ (36.6 کیلوبایت, 39 دیدار)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •