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


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

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

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

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


الملفات المرفقة
.rar   diy.rar (الحجم : 11.96 ك ب / التحميلات : 123)
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد
تم الشكر بواسطة:
#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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Question [vb6.0] كيف اجعل زر الامر غير مفعل في حال عدم جود طابعة على الحاسب ؟ Mysystem32 1 99 28-04-18, 02:18 AM
آخر رد: Amir_alzubidy
  [سؤال] اجبار المستخدم على ادخال التاريخ hananfathy 2 127 07-04-18, 03:01 PM
آخر رد: hananfathy
Information [vb6.0] كيف ان اجعل الصورة الموجودة في خلفية الفورم تكون في منتصف الفورم في برنامج المرفق؟؟ Microformt 2 105 01-04-18, 02:48 PM
آخر رد: Microformt
Question [vb6.0] هل يمكن ان اجعل الصورة الموجودة في خلفية الفورم تتمدد في برنامج المرفق؟؟ Microformt 2 150 23-03-18, 06:26 AM
آخر رد: Microformt
Question [vb6.0] هل يمكن تغير اسم المستخدم وكلمة المرور إذا كنت موجودة ضمن الكود ؟؟ Microformt 2 127 12-03-18, 07:09 AM
آخر رد: Microformt
Information [vb6.0] هل يوجد طريقة اجعل الاستعلام يعرض جميع البيانات باسرع وقت ممكن ؟؟ Microformt 3 224 26-11-17, 12:02 PM
آخر رد: الاصيله
Question [vb6.0] هل يمكن أن اجعل ملف ini قاعدة بيانات لبرنامجي ؟ Microformt 1 135 23-11-17, 12:17 AM
آخر رد: Ahmed_Mansoor
  منع المستخدم من اغلاق الفورم اسلام الكبابى 3 181 04-11-17, 03:24 PM
آخر رد: اسلام الكبابى
Question [vb6.0] كيف اجعل زر الامر ينتقل امام text عند انتقل موشر الكتابه الى text اخر ؟؟ Microformt 2 188 29-10-17, 07:33 AM
آخر رد: Microformt
Question [vb6.0] كيف اجعل خلفية Text شفافه ؟؟ Microformt 7 388 13-10-17, 05:40 AM
آخر رد: Mohamad Anan

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


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