تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[vb6.0] كيف اجعل المستخدم إدخل رقم فقط في حقل رقم الصنف ؟؟
#1
الساده الكرام
السلام عليكم ورحمة وبركاته


*- ملاحظة هامه قبل الاجابة على السوال
في برنامجي المرفق في الامكان الان إدخال البيانات مباشر الى فيلكس جريد دون الحاجه الى text !!

السوال
كيف اجعل المستخدم إدخل رقم فقط في حقل رقم الصنف ؟؟

نامل من الله في برنامجي المرفق

والله يحفظكم ويرعاكم


الملفات المرفقة
.rar   diy.rar (الحجم : 11.96 ك ب / التحميلات : 136)
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد
تم الشكر بواسطة:
#2
لابد من الاعتماد على تكست بوكس

و هذا الكود :
كود :
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) Then
KeyAscii = 0
End If
End Sub
الرد
تم الشكر بواسطة:
#3
(16-11-13, 09:03 PM)asto كتب : لابد من الاعتماد على تكست بوكس

و هذا الكود :
كود :
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) Then
KeyAscii = 0
End If
End Sub
---------------------------------------------------------------------
اخي العزيز
السلام عليكم ورحمة وبركاته
لا فادة من الاجابة !!!!!
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد
تم الشكر بواسطة:
#4
عليك يا اخي ان تعمل ربط و ادخال ايضا

ففي القسم العام

Dim db As DAO.Database
Dim Rs1 As DAO.Recordset

و في كوماند للادخال مثلا
كود :
Set db = DBEngine.OpenDatabase(App.Path & "\db1.MDB", False, False)
  Set Rs1 = db.OpenRecordset("Select * From [soft]", dbOpenDynaset)

rs1.AddNew
rs1!رقم الصنف=text1.text
rs1.update
و استبدل رقم الصنف بكلمة انكليزية

يعني المهم ان تتعامل مع rs1
الرد
تم الشكر بواسطة:
#5
(16-11-13, 09:35 PM)asto كتب : عليك يا اخي ان تعمل ربط و ادخال ايضا

ففي القسم العام

Dim db As DAO.Database
Dim Rs1 As DAO.Recordset

و في كوماند للادخال مثلا
كود :
Set db = DBEngine.OpenDatabase(App.Path & "\db1.MDB", False, False)
  Set Rs1 = db.OpenRecordset("Select * From [soft]", dbOpenDynaset)

rs1.AddNew
rs1!رقم الصنف=text1.text
rs1.update
و استبدل رقم الصنف بكلمة انكليزية

يعني المهم ان تتعامل مع rs1
--------------------------------------------------------------------------------
اخي العزيز
إجابة غير موفقه !!!HuhConfused

السوال كان يدور حول تعامل مع فيلكس جريد ؟؟
انا اعرف كيف اربط تعامل مع فيلكس جريد بقاعدة البيانات ولكن السوال كما هوا في المشاركه الاولى حول كيفية التعامل مع تعامل مع فيلكس جريد
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد
تم الشكر بواسطة:
#6
السلام عليكم...

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

كود تهيئة الـ 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

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد
تم الشكر بواسطة: Microformt
#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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] كيف اجعل زر امر الطابعه في برنامج المرفق غير مفعل نامل الاطلاع عليه والمساعدة ان امكن Microformt 3 78 12-11-18, 02:06 PM
آخر رد: elgokr
  [vb6.0] كيف اجعل المستخدم يكتب في Text انجليزي فقط ؟؟ Microformt 2 115 21-09-18, 05:12 PM
آخر رد: Microformt
Question [vb6.0] كيف اجعل عند النقر على ComboBox تظهر للمستخدم رسالة ؟؟ Microformt 3 128 09-09-18, 11:21 PM
آخر رد: ahmed.m
  كيف اعرف اسم المستخدم للوندوز ابوثامر الحامد 2 134 03-08-18, 02:29 PM
آخر رد: ابوثامر الحامد
Question [vb6.0] كيف اجعل زر الامر غير مفعل في حال عدم جود طابعة على الحاسب ؟ Mysystem32 1 197 28-04-18, 02:18 AM
آخر رد: Amir_alzubidy
  [سؤال] اجبار المستخدم على ادخال التاريخ hananfathy 2 230 07-04-18, 03:01 PM
آخر رد: hananfathy
Information [vb6.0] كيف ان اجعل الصورة الموجودة في خلفية الفورم تكون في منتصف الفورم في برنامج المرفق؟؟ Microformt 2 216 01-04-18, 02:48 PM
آخر رد: Microformt
Question [vb6.0] هل يمكن ان اجعل الصورة الموجودة في خلفية الفورم تتمدد في برنامج المرفق؟؟ Microformt 2 305 23-03-18, 06:26 AM
آخر رد: Microformt
Question [vb6.0] هل يمكن تغير اسم المستخدم وكلمة المرور إذا كنت موجودة ضمن الكود ؟؟ Microformt 2 227 12-03-18, 07:09 AM
آخر رد: Microformt
Information [vb6.0] هل يوجد طريقة اجعل الاستعلام يعرض جميع البيانات باسرع وقت ممكن ؟؟ Microformt 3 370 26-11-17, 12:02 PM
آخر رد: الاصيله

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


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