تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[vb6.0] كيف اجعل المستخدم إدخل رقم فقط في حقل رقم الصنف ؟؟
#7
(17-11-13, 09:46 PM)ناجي إبراهيم كتب : السلام عليكم...

استعمل الأكواد التالية بدل الأكواد في المرفق. مع الملاحظات التالية:

كود تهيئة الـ FlexGrid لا يمكن أن يكون في الحدث Form_Resize و إلا فإنه سيتم تنفيذه كلما تغير حجم النافذة. مكانه الصحيح هو الحدث Form_Load.
معالجة مفاتيح التحكم (مثل Enter و BackSpace و Delete) تتم عادة في الحدث KeyDown أو الحدث KeyUp. أما الحدث KeyPress فيستعمل لعالجة مفاتيح الكتابة (الحروف و الأرقام و الرموز الأخرى).
تمت إضافة استعمال المفتاح Delete لمسح محتوى الخلية بأكمها.
في عمود رقم الصنف يمكن إدخال الأرقام فقط و بطول 9 خانات (طبعاً يمكنك تعديل ذلك في الكود).
عند إنشاء صف جديد في الـ FlexGrid يتم الانتقال إليه و ضمان ظهوره (بدل بقائه مختفياً في الأسفل).
عند كتابة رقم في العمود الأول و ضغط Enter يتم البحث عنه في قاعدة البيانات و جلب بقية البيانات، أو إظهار رسالة بعدم وجود صنف بهذا الرقم.

كود :
Private Sub Form_Load()
    Set db = OpenDatabase(App.Path & "\db1.mdb", 2)
    Set rs = db.OpenRecordset("soft", 2)
    
    fox.Rows = 10
    fox.Cols = 5
    fox.Clear
    fox.ColAlignment(0) = 3
    fox.ColAlignment(1) = 3
    fox.ColAlignment(2) = 3
    fox.ColAlignment(3) = 3
    fox.ColAlignment(4) = 3
    
    fox.ColWidth(0) = 1500                                 '
    fox.ColWidth(1) = 2800
    fox.ColWidth(2) = 1500
    fox.ColWidth(3) = 1500
    fox.ColWidth(4) = 1500
    fox.TextMatrix(0, 0) = "رقم الصنف"
    fox.TextMatrix(0, 1) = "اسم الصنف"
    fox.TextMatrix(0, 2) = "العدد"
    fox.TextMatrix(0, 3) = "القيمة"
    fox.TextMatrix(0, 4) = "المجموع الفردي"

End Sub

Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
    rs.Close
    db.Close
End Sub

Private Sub fox_KeyDown(KeyCode As Integer, Shift As Integer)
    With fox
        Select Case KeyCode
            Case vbKeyBack
                If .Text <> "" Then .Text = Left$(.Text, (Len(.Text) - 1))
            Case vbKeyDelete
                .Text = ""
            Case vbKeyReturn
                If .Col = 0 Then
                    If IsNumeric(.Text) Then
                        rs.FindFirst "iD = " & .Text
                        If rs.NoMatch Then
                            MsgBox "لا يوجد صنف بهذا الرقم"
                        Else
                            .TextMatrix(.Row, 1) = rs("chs")
                            .TextMatrix(.Row, 2) = rs("no")
                            .TextMatrix(.Row, 3) = rs("vbn")
                            .TextMatrix(.Row, 4) = rs("CTT")
                        End If
                    End If
                ElseIf .Col = (.Cols - 1) Then
                    If .Row = (.Rows - 1) Then .Rows = .Rows + 1
                    .Col = 0
                    .Row = .Row + 1
                    If .Row > 12 Then .TopRow = .Rows - 13
                Else
                    .Col = .Col + 1
                End If
        End Select
    End With
End Sub

Private Sub fox_KeyPress(KeyAscii As Integer)
    With fox
        If KeyAscii > 31 Then
            If fox.Col = 0 Then
                If (Len(.Text) < 9) And IsNumeric(Chr$(KeyAscii)) Then
                    .Text = .Text + Chr$(KeyAscii)
                End If
            Else
                .Text = .Text + Chr$(KeyAscii)
            End If
        End If
    End With
End Sub

نرجو الاستفادة و السلام.
--------------------------------------------------------
اخي العزيز ناجي ابراهيم
السلام عليكم ورحمة وبركاته
لك من الف شكر وتقدير والله يحفظكم ويرعاكم
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: كيف اجعل المستخدم إدخل رقم فقط في حقل رقم الصنف ؟؟ - بواسطة Microformt - 18-11-13, 06:16 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] كيف يمكن إخفاء عمود رقم الصنف و إظهاره برمجياً نامل المساعدة في المثال التالي ؟ Microformt 2 720 19-11-23, 10:49 PM
آخر رد: Microformt
  ريد عند النقر على الصف من الجدول المجود على الفورم يظهر رقم الصنف في Text ؟ Microformt 0 609 04-11-23, 10:13 PM
آخر رد: Microformt
Question [vb6.0] كيف اجعل تقرير برنامجي تكون السجلات ملونه مثل الذي في الصورة التأليه ؟ Microformt 0 524 29-10-23, 07:37 PM
آخر رد: Microformt
Question [vb6.0] نامل المساعدة في المثال المرفق يوجد مشكلة في إضافة رقم الصنف الى قاعدة البيانات لا اع Microformt 1 491 23-10-23, 12:11 AM
آخر رد: Taha Okla
Information [vb6.0] كيف اجعل الارقم في التقرير باء الغه الانجليزية حتى لو كان نظام الارقام في الويندوز Microformt 0 390 16-08-23, 10:41 AM
آخر رد: Microformt
Question [vb6.0] كيف اشترط على المستخدم ان تتكون كلمة السر من احرف كبيره وارقام ورموز ؟ Microformt 1 576 07-07-23, 08:26 AM
آخر رد: Taha Okla
Question [vb6.0] كيف اجعل الصورة تتحرك تدريجياً الى منتصف الفورة من جهة اليمين ؟ Microformt 1 600 13-04-23, 04:57 PM
آخر رد: Taha Okla
Question [vb6.0] كيف امنع المستخدم إدخال في Text نص عربي اريد إدخال انجليزي فقط ؟ Microformt 5 1,235 26-11-22, 01:25 PM
آخر رد: عبدالمؤمن
Question [vb6.0] كيف اجعل هذا الشريط يظهر المساحة المستخدمة من قاعدة البيانات؟ Microformt 2 1,036 05-10-22, 08:53 AM
آخر رد: Microformt
Question [vb6.0] كيف اجعل textيقبل فقط إدخال نسبة موأيه بتنسيق التالي ؟؟ Microformt 4 955 28-09-22, 04:54 PM
آخر رد: Microformt

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم