منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود (/showthread.php?tid=39095)



ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - جيولوجي مبتدئ - 23-07-21

السلام عليكم ورحمة الله وبركاته   ..........أخواني شي غريب يحصل معي
أعمل برنامج لحضور وإنصراف الموظفين بإستخدام جهاز قارئ للباركود بحيث يمرر الموظف البطاقة  وتدخل القيمة المقروءة من البطاقة إلى تكست بوكس  في الحدث TextBox1_TextChanged والموضوع والحمد لله 100 / 100 
ويوجد تكست بوكس آخر لتسجيل الخروج وأتبعت في نفس الطريقة بحيث يمرر الموظف بطاقته  ووضعت فيه الكود الموجود في الأسفل لتسجيل وقت الخروج
المشكلة الغريبة تقع عند تسجيل الخروج بحيث أنه عندما تدخل قيمة الباركود ( الرقم الوطني ) في التكست بوكس فإنه لايستجيب أبداً  وتحدث الإستجابة في حالة واحدة فقط حين أقوم بعملية لصق  الرقم الوطني  يعني عملية Paste   وغير هذا لايمكن أن تحدث أي إستجابة   <<<<<<<  مع العلم أن حاولت أن أجعل قيمة الباركود في تكست بوكس آخر ثم أقوم يقوم التسكت الجديد بنسخ محتواه إلى تكست بوكس الخروج
آسف على الإطالة
 
  If TextBox86.TextLength = 10 Then
        Dim cmd2 As New SqlCommand("select * from Hodor_Table", Sqlcon)
        Dim Adaptr2 As New SqlDataAdapter(cmd2)
        Dim dt2 As New DataTable
        Adaptr2.Fill(dt2)
        If (TextBox86.TextLength).ToString = 10 Then
 
            Dim s As Integer
            For s = 0 To dt2.Rows.Count - 1
                If dt2.Rows(s)(1).ToString = TextBox96.Text And dt2.Rows(s)(4).ToString = DateTimePicker9.Value.Date And dt2.Rows(s)(8).ToString <> "غائب" Then
 
                    TextBox88.Text = dt2.Rows(s)(0).ToString
 
                    Dim cmdupdate3 As SqlCommand = New SqlCommand("update Hodor_Table set Time_Out=@Time_Out where ID2=@ID2", Sqlcon)
                    cmdupdate3.Parameters.Add("@ID2", SqlDbType.Int).Value = CInt(TextBox88.Text)
                    Label5.Text = Label5.Text.Remove(5, 3)
                    cmdupdate3.Parameters.Add("@Time_Out", SqlDbType.NVarChar).Value = Label5.Text
                    Sqlcon.Open
                    If cmdupdate3.ExecuteNonQuery = 1 Then
                        Sqlcon.Close 
                    End If
                    MsgBox("تم تسجيل الخروج")
                End If
            Next 
        End If

مع جزيل الشكر
دمتم بود



RE: ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - OMARSADE512 - 23-07-21

(23-07-21, 08:17 AM)جيولوجي مبتدئ كتب : السلام عليكم ورحمة الله وبركاته   ..........أخواني شي غريب يحصل معي
أعمل برنامج لحضور وإنصراف الموظفين بإستخدام جهاز قارئ للباركود بحيث يمرر الموظف البطاقة  وتدخل القيمة المقروءة من البطاقة إلى تكست بوكس  في الحدث TextBox1_TextChanged والموضوع والحمد لله 100 / 100 
ويوجد تكست بوكس آخر لتسجيل الخروج وأتبعت في نفس الطريقة بحيث يمرر الموظف بطاقته  ووضعت فيه الكود الموجود في الأسفل لتسجيل وقت الخروج
المشكلة الغريبة تقع عند تسجيل الخروج بحيث أنه عندما تدخل قيمة الباركود ( الرقم الوطني ) في التكست بوكس فإنه لايستجيب أبداً  وتحدث الإستجابة في حالة واحدة فقط حين أقوم بعملية لصق  الرقم الوطني  يعني عملية Paste   وغير هذا لايمكن أن تحدث أي إستجابة   <<<<<<<  مع العلم أن حاولت أن أجعل قيمة الباركود في تكست بوكس آخر ثم أقوم يقوم التسكت الجديد بنسخ محتواه إلى تكست بوكس الخروج
آسف على الإطالة
 
  If TextBox86.TextLength = 10 Then
        Dim cmd2 As New SqlCommand("select * from Hodor_Table", Sqlcon)
        Dim Adaptr2 As New SqlDataAdapter(cmd2)
        Dim dt2 As New DataTable
        Adaptr2.Fill(dt2)
        If (TextBox86.TextLength).ToString = 10 Then
 
            Dim s As Integer
            For s = 0 To dt2.Rows.Count - 1
                If dt2.Rows(s)(1).ToString = TextBox96.Text And dt2.Rows(s)(4).ToString = DateTimePicker9.Value.Date And dt2.Rows(s)(8).ToString <> "غائب" Then
 
                    TextBox88.Text = dt2.Rows(s)(0).ToString
 
                    Dim cmdupdate3 As SqlCommand = New SqlCommand("update Hodor_Table set Time_Out=@Time_Out where ID2=@ID2", Sqlcon)
                    cmdupdate3.Parameters.Add("@ID2", SqlDbType.Int).Value = CInt(TextBox88.Text)
                    Label5.Text = Label5.Text.Remove(5, 3)
                    cmdupdate3.Parameters.Add("@Time_Out", SqlDbType.NVarChar).Value = Label5.Text
                    Sqlcon.Open
                    If cmdupdate3.ExecuteNonQuery = 1 Then
                        Sqlcon.Close 
                    End If
                    MsgBox("تم تسجيل الخروج")
                End If
            Next 
        End If

مع جزيل الشكر
دمتم بود
اخي العزيز ضع الكود في حدث كي داون
لئنو حدث التيكست جينجت يعمل عند الكتابة اما حدث كي داون عند الضغط
ضع في بداية الكود if e.Keycode=keys.enter
لئنو قارى الباركود لمن يقرأ يضغط انتر


RE: ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - جيولوجي مبتدئ - 23-07-21

السلام عليكم ورحمة الله وبركاته 

أشكرك أخي على ردك 
 ولكني وضعت الشرط التالي وهو if textbox86.text.lengh = 10  أي لايعمب إلا عندما يكون طول التكست 10 خانات معل العلم أن أستخدم نفس الطريقة في تسجيل الدخول وهي تعمل 100 \100 




لك جزيل الشكر 

دمت بود


RE: ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - جيولوجي مبتدئ - 24-07-21

السلام عليكم ورحمة الله وبركاته
آسف على تكرار الموضوع ولكن الموضوع أرهقني جداً 
عندما أقوم بعملية لصق( paste ) الرقم الوطني يعمل معي الكود وايضا عندما أقوم بكتابة الكود يدوياً يعمل عندما أصل للخانة رقم عشرة يعمل معي الكود  ولكن عند استخدام جهاز الباركود لايعمل الكود ؟؟؟؟؟؟

لكم جزيل الشكر
دمتم بود 


RE: ماسبب عدم تنفيذ الكود عند استخدام قارئ الباركود - جيولوجي مبتدئ - 24-07-21

شكرا لك أخي الكريم تم المطلوب بحيث وضعت الكود في key_down  كما اقترحت أنت وأضفت التالي

 

   If TextBox86.Text.Length = 10 Then
            GoTo x
        ElseIf 2 <= TextBox86.Text.Length < 10 Then
            '' ''Dim sp As New SoundPlayer("Wrong.wav")
            '' ''sp.Play()
            Timer10.Enabled = True
            Exit Sub

        End If
:x

 وقد وضعت هذا الكود في البداية لكي يقوم بالإنتقال التلقائي بدون ضغط زر انتر 
لك جزيل الشكر 
دمت بود