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


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

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

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

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


الملفات المرفقة
.rar   diy.rar (الحجم : 11.96 ك ب / التحميلات : 137)
إذا ضاقت بك الأحوال يوماً     فَثِقْ بالواحِدِ الفَرْدِ العَلِيِّ
الرد
تم الشكر بواسطة:
#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] كيف اجعل المستخدم التعديل على الأرقام في text1 فقط ولا يمكن مسحها ؟ Microformt 4 233 15-05-21, 08:10 PM
آخر رد: Microformt
Question [vb6.0] كيف يمكن ان اشترط على المستخدم إذخال في Text "ذكر"او "انثى" ؟؟ Microformt 2 203 21-03-21, 10:39 PM
آخر رد: Microformt
  طلب كود استدعاء الصنف في شاشة المبيعات ahmed201 0 202 15-01-21, 08:15 AM
آخر رد: ahmed201
  [vb6.0] كيف اشترط على المستخدم 14 رقماً في text ؟ Microformt 1 284 23-10-20, 01:18 AM
آخر رد: AL_BRNS
Question [vb6.0] هل يمكن ان اجعل زر الامر شفاف ؟؟ Microformt 0 389 21-08-20, 03:54 PM
آخر رد: Microformt
  طلب تعديل كواد زر اختصار الصنف في شاشة المبيعات ahmed250 2 615 03-06-20, 03:14 PM
آخر رد: ahmed250
Question [vb6.0] كيف يمكن اجبار المستخدم ادخال صيغة الوقت في تكست بوكس بهذة الصيغة مثلا 08:06 ص؟ Microformt 2 569 04-05-20, 11:27 PM
آخر رد: Microformt
Question [vb6.0] هل في الامكان ان اجعل نص هذه الرسالة جهة اليمن؟؟ Microformt 1 521 19-04-20, 12:49 AM
آخر رد: AL_BRNS
Question [vb6.0] كيف اشترط على المستخدم إدخال في التكست إدخال قيمة تحتوي على علامة مئوية.؟؟ Microformt 5 717 12-04-20, 12:53 AM
آخر رد: AL_BRNS
  تعديل كواد اختصار الصنف في شاشة المبيعات ahmed20 0 506 08-03-20, 02:56 PM
آخر رد: ahmed20

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


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