ایجاد محدودیت برای تکس باکس و کمبوباکس و فرم

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ozviat83

    • 2015/01/28
    • 32

    ایجاد محدودیت برای تکس باکس و کمبوباکس و فرم

    با عرض سلام
    من میخواستم برای باکس های فرم موجود در فایل پیوست چند محدودیت قرار دهم
    ۱- در باکس مربوط به نام
    .....۱-تعداد کارکتر ها محدود باشد
    .... ۲-نتوان ابتدا و انتهای نام فاصله خالی تایپ کرد(نتوان اسپیس زد)
    .... ۳-تنها بتوان از حروف استفاده کرد
    ۲-در باکس مربوط به شماره تلفن
    .... ۱-تعداد کارکتر ها محدود باشد
    .... ۲-نتوان ابتدا و انتهای شماره فاصله خالی تایپ کرد(نتوان اسپیس زد)
    .... ۳-تنها بتوان از اعداد استفاده کرد
    .... ۴-هنگامی که می خواهیم شماره تلفن را وارد کنیم به صورت خودکار پیش شماره ۰۹ را وارد کند و این پیش شماره قابل تغییر نباشد
    ۳- در باکس مربوط به تاریخ
    .... ۱-تعداد کارکتر ها محدود باشد
    .... ۲-نتوان ابتدا و انتهای تاریخ فاصله خالی تایپ کرد(نتوان اسپیس زد)
    .... ۳-تنها بتوان از اعداد استفاده کرد
    .... ۴-دو رقم اول مربوط به شماره پرسنلی را از باکس (شماره پرسنلی) بخواند و به صورت پیش فرض دو رقم سال قرار دهد
    .... ۵- فرم باکس به نوعی باشد که نیاز به تایپ / نداشته باشیم و خود باکس بعد از هر دو عدد وارده علامت / را وارد کند
    کل فرم نیز دارای این شرط باشد که تمام اطلاعات باید وارد شد و در صورت ناقص بودن اطلاعات از ذخیره کردن اطلاعات جلوگیری کند و در پیغام خود بگوید که این اخطار بدلیل خالی یا اشتباه پر کردن کدام باکس یا کمبوباکس و یا ....است
    فایل های پیوست شده
    Last edited by ozviat83; 2016/03/31, 18:08.
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزیز
    شما نیاز به یکسری کدهای vba دارین و همچنین یکسری تغییرات در فرمت سل (برای مورد 5 از سومین درخواستتون)
    از اونجایی که شما با کدنویسی اشنایی دارین من فقط روش حل رو خدمتتون ارائه میکنم. زحمت خصوصی سازیش با خودتون
    کد:
    Sub ExcelIran()
    If CheckSpaces("salam ") Then MsgBox "have space"
    If CheckLength("0901010101", 11) Then MsgBox "correct"
    If IsNumeric("091312341234") Then MsgBox "is number"
    If IsNotNumeric("adf2dsaf") = False Then MsgBox "has number"
    End Sub
    
    
    Private Function CheckSpaces(str As String) As Boolean
    CheckSpaces = False
    If Left(str, 1) = " " Or Right(str, 1) = " " Then CheckSpaces = True
    End Function
    
    
    Private Function CheckLength(str As String, Length As Integer) As Boolean
    CheckLength = False
    If Len(str) = Length Then CheckLength = True
    End Function
    
    
    Private Function IsNotNumeric(str) As Boolean
    IsNotNumeric = True
    For i = 1 To Len(str)
        If IsNumeric(Mid(str, i, 1)) Then IsNotNumeric = False
    Next i
    End Function

    کامنت

    • ozviat83

      • 2015/01/28
      • 32

      #3
      با سلام خسته نباشید خدمت استاد بزرگوار آقای امیر قاسمیان
      سپاسگزارم اگر به تمام سئوالات پاسخ بدهید و فایل ضمیمه را ویرایش کنیید

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        ویرایش کردن فایل پیوست با خودتون دوست عزیز
        من فقط راه حل رو میگم خدمتتون
        مثلا برای اینکه باکس نام رو چک کنیم که درست وارد شده یا نه، این کد رو باید به کدهای فرم اضافه کنید
        کد:
        Private Sub NameTextBox_AfterUpdate()
        If CheckSpaces(NameTextBox.Text) Then MsgBox "have space"
        If CheckLength(NameTextBox.Text, 11) = False Then MsgBox "correct"
        If IsNotNumeric(NameTextBox.Text) = False Then MsgBox "has number"
        End Sub
        به همین ترتیب برای بقیه باکس ها هم میشه اضافه کرد.
        در مورد شماره تلفن چون باید با 09 شروع بشه و قابل تغییر نباشد از این کدها استفاده کنید:
        کد:
        Private Sub PhoneTextBox_AfterUpdate()
        If Mid(PhoneTextBox.Text, 1, 2) <> "09" Then MsgBox "number should start with 09"
        If CheckSpaces(PhoneTextBox.Text) Then MsgBox "have space"
        If CheckLength(PhoneTextBox.Text, 11) = False Then MsgBox "correct"
        If IsNumeric(PhoneTextBox.Text) = False Then MsgBox "wrong number"
        End Sub
        
        
        Private Sub PhoneTextBox_Enter()
        If PhoneTextBox.Text = "" Then PhoneTextBox.Text = "09"
        End Sub

        در مورد / گذاشتن تاریخ میتونین از این کد کمک بگیرید:
        کد:
        Private Sub TextBox2_AfterUpdate()
        txt = TextBox2.Text
        TextBox2.Text = Left(txt, 2) & "/" & Mid(txt, 3, 2) & "/" & Right(txt, 2)
        End Sub

        کامنت

        • ozviat83

          • 2015/01/28
          • 32

          #5
          با سلام
          من هر چه سیع کرددم نتوانستم که از کدی که شما گذاشتید استفاده کنم
          Private Sub NameTextBox_AfterUpdate()
          If CheckSpaces(NameTextBox.Text) Then MsgBox "have space"
          If CheckLength(NameTextBox.Text, 11) = False Then MsgBox "correct"
          If IsNotNumeric(NameTextBox.Text) = False Then MsgBox "has number"
          End Sub

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            با سلام

            فایل پیوست را بررسی بفرمایید

            در قسمت name یوزر فرم امکان ورود عدد و اسپیس وجود ندارد

            در قسمت ورود شماره موبایل بعد از ورود دو رقم 09 در ابتدا اضافه میگردد و امکان ورود تکست و اسپیس وجود ندارد
            فایل های پیوست شده
            Last edited by iranweld; 2016/04/05, 12:42.

            کامنت

            • امين اسماعيلي
              مدير تالار ويژوال بيسيك

              • 2013/01/17
              • 1198
              • 84.00

              #7
              اینکه نتونستی از کد ایشون استفاده کنی شاید به این بر میگرده که یادت رفته توابعشون که تو پست یکشون هست رو هم کپی کنی.

              کد:
              [B][FONT=Tahoma][B][COLOR=#0000CD]Private Function CheckSpaces(str As String) As Boolean
              CheckSpaces = False
              If Left(str, 1) = " " Or Right(str, 1) = " " Then CheckSpaces = True
              End Function
              
              
              Private Function CheckLength(str As String, Length As Integer) As Boolean
              CheckLength = False
              If Len(str) = Length Then CheckLength = True
              End Function
              
              
              Private Function IsNotNumeric(str) As Boolean
              IsNotNumeric = True
              For i = 1 To Len(str)
                  If IsNumeric(Mid(str, i, 1)) Then IsNotNumeric = False
              Next i
              End Function[/COLOR][/B][/FONT][/B]
              در پناه خداوندگار ایران زمین باشید و پیروز

              کامنت

              چند لحظه..