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


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

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

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

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


الملفات المرفقة
.rar   diy.rar (الحجم : 11.96 ك ب / التحميلات : 93)

الرد }}}}
تم الشكر بواسطة:
#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

نرجو الاستفادة و السلام.
--------------------------------------------------------
اخي العزيز ناجي ابراهيم
السلام عليكم ورحمة وبركاته
لك من الف شكر وتقدير والله يحفظكم ويرعاكم

الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] كيف اجعل الأرقام في Text بهذا الشكل 123.456.99 ( قياسي ) إظهار الفواصل iisys 22 417 17-11-16, 11:54 PM
آخر رد: iisys
Question [vb6.0] كيف اشترط على المستخدم إدخال نص في مكان اسم المواظف وفي رقم المواظف إدخال رقم ؟؟ Microformt 2 85 23-10-16, 05:36 PM
آخر رد: Microformt
Question [vb6.0] كيف اشترط على المستخدم ان يحدد السجل الذي اريد حذفه في برنامجي المرفق ؟؟ Microformt 2 92 21-10-16, 01:31 PM
آخر رد: Microformt
Question [vb6.0] كيف اجعل برنامجي المرفق يخذ سمات الوندز ؟؟ Microformt 0 73 07-10-16, 05:12 PM
آخر رد: Microformt
  [vb6.0] كيف اجعل عند إدارج مسار الصورة في Text تظهر الصوره في برنامج المرفق ؟؟ Microformt 1 90 07-10-16, 12:37 PM
آخر رد: Amir_alzubidy
Question [vb6.0] كيف امنع المستخدم أن إدخل في Text رمز او رقم ؟؟ Microformt 6 230 29-04-16, 08:27 PM
آخر رد: Microformt
Question منع المستخدم للبرنامج من الوصول الى الاكواد والتغيير فيها او نسخها haiderkh 7 318 21-04-16, 10:18 PM
آخر رد: Ahmed_Mansoor
Lightbulb [سؤال] كود يعمل على منع المستخدم من تثبيت البرامج على نظام التشغيل ياسر عبد الكريم 0 128 12-04-16, 09:28 PM
آخر رد: ياسر عبد الكريم
Question [vb6.0] كيف اجعل عند اضغط على خيارات ادادة TabStrip1 يظهر رسالة لمستخدم ؟؟ Microformt 2 189 18-03-16, 12:28 PM
آخر رد: Microformt
Question [vb6.0] هل يمكن ان اجعل خلفية ادة Frame1 شفاف وذلك برمجياً ؟؟؟ Microformt 3 244 10-03-16, 04:51 PM
آخر رد: abulayth

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


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