اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

استخدم هذا الكود ....

Option Compare Database
Dim dblStart As Double
Dim dblEnd As Double
Dim dblTime As Double
Private Sub txtTest_Change()
If Len(txtTest.Text) <= 1 Then
    dblStart = Timer
Else
    dblEnd = Timer
    dblTime = Round(dblEnd - dblStart, 2)
If dblTime > 0.2 Then
txtTest = ""
        MsgBox " عفوا ... لايمكن الإدخال إلا عن طريق قارئ الباركود"
    End If
End If

End Sub

 

  • Like 6
قام بنشر

شكر استاذ kanory على الاجابة واسف على تاخري في التجربة بسبب عدم تأخر حصولي على جهاز الباركود .

لقد تم تجربة الكود وهو المطلوب لكن هنالك مشكلة واحدة وهي انه يمكن كتابة  مرتبة واحدة في مربع الادخال المطلوب كيف يمكن منع كتابة حتى لو كانت مرتبة واحدة .

وشكرا

قام بنشر (معدل)
منذ ساعه, النهر العطشان said:

شكر استاذ kanory على الاجابة واسف على تاخري في التجربة بسبب عدم تأخر حصولي على جهاز الباركود .

لقد تم تجربة الكود وهو المطلوب لكن هنالك مشكلة واحدة وهي انه يمكن كتابة  مرتبة واحدة في مربع الادخال المطلوب كيف يمكن منع كتابة حتى لو كانت مرتبة واحدة .

وشكرا

كلام صحيح .. لان الكود يعتمد على الفترة الزمنية بين كتابة الرقم الاول والثاني... ولا اعتقد ان هناك باركود عبارة عن رقم واحد ..

.... لكن جاري البحث عن كود يلبي طلبك

تم تعديل بواسطه kanory
  • Like 4
قام بنشر
1 ساعه مضت, kanory said:

 ولا اعتقد ان هناك باركود عبارة عن رقم واحد ..

حسب علمي قارىء الباركود لا يقرأ اقل من 3 خانات

بمعنى انه لا يقرأ الباركود المكون من رقم او رقمين وينطبق هذا على الحروف

  • Like 1
  • Thanks 1
قام بنشر

السلام عليكم

شكرا استاذنا الفاضل ابوخليل على المداخلة 

يمكن تحويل اي رقم حتى لو بمرتبة واحدة الى باركود كان يكون ارقام (الترقيم التلقائي) لجدول معين والذي يبدأ من رقم (1) وتصاعديا.

الذي احتاجه هو ان امنع المدخل من ادخال اي رقم عن طريق الكيبورد ويكون الادخال عن طريق جهاز الباركود فقط .

قام بنشر
منذ ساعه, Hawiii said:

موضوع قديم قد يثري موضوعك

لا لا .. هذا يخالف ما ننتظره منك  ، الموضوع قديم  حتى ان بعض المشاركين لا يعرفون ما يتحدثون عنه .

لما رأيت مشاركتك دخلت ، وانا متأكد انني سوف اجد حلا للمشكلة 

انت خبير ومخضرم  .. حتى ان الاستاذ  جعفر حفظه الله في وقت سابق استشارني  بضمك الى مجموعة الخبراء  .. فاعترضت عليه بان هاوي اكبر من ذلك 

على كل حال انا اقترح على صاحب الموضوع ان يلغي تتفعيل لوحة المفاتيح من خصائص وندوز نفسه

لانه يمكنه من ادارة المهام في وندوز ان يوقف عمل لوحة المفاتيح

 

 

قام بنشر
40 دقائق مضت, ابوخليل said:

لا لا .. هذا يخالف ما ننتظره منك  ، الموضوع قديم  حتى ان بعض المشاركين لا يعرفون ما يتحدثون عنه .

حياك الله أخي @أبوخليل ، قرأت مشاركتك 3 أو 4 مرات ولم أفهم قصدك ، هل أنت عاتب وتلومني وإلا تمازحني بشكل عتاب؟، حتى أفهم قصدك بعدها أقدر أدردش معك 🙄

قام بنشر

ابدا .. لا عتاب .. ولا مزاح

جميع من في المنتدى من خبراء واعضاء هم اهلي واحبتي واخواني وانت منهم

غالبا لا ادخل لاي موضوع الا حينما يكون العنوان جاذبا ، وخاصة اذا اشترك في الموضوع اكثر من خبير

 انا اكتب بما اراه واعتقده .. بغض النظر عمن  اكتب له

نرجع الى نقاشنا في الموضوع :

فالموضوع يختلف عن  الرابط الذي وضعته

صاحب الموضوع يريد ان يحصر  الادخال  على قارىء الباركود ..  ويحجب لوحة المفاتيح

قام بنشر
2 ساعات مضت, ابوخليل said:

 

فالموضوع يختلف عن  الرابط الذي وضعته

صاحب الموضوع يريد ان يحصر  الادخال  على قارىء الباركود ..  ويحجب لوحة المفاتيح

كتبت رد طويل عريض على مشاركتك ولكن للأسف بعد أن ضغطت "أضف رد" لم أرى الرد .. اختفى!!

عموما أقتصر ردي على هذه النقطة فقط وأقول أنت غلطان وتحتاج إلى تثبت حبيبي ، هناك شفرة في صميم الموضوع.
الحقيقة بعد أن ضاع ردي كرهت أن أواصل الكتابة ، سلام.

قام بنشر
4 ساعات مضت, ابوخليل said:

 

على كل حال انا اقترح على صاحب الموضوع ان يلغي تتفعيل لوحة المفاتيح من خصائص وندوز نفسه

لانه يمكنه من ادارة المهام في وندوز ان يوقف عمل لوحة المفاتيح

وافتراحك هذا غير موفق ولن أشرح لك .. بعدني معصب من ضياع ردي الأول.

قام بنشر (معدل)

هذه الشفرة من أبي هادي مع تصرف:

يوجد في الشفرة رقم 4 ولم أفهمه ، تفسيري هو طول رقم الموظف 3 + حرف "-" أو "+" .. ربما.
في حالة تجاربكم إذا كان طول رقم الموظف 3 فاجعلوا الرقم 3 وإذا أخفق الحل اجعلوا الرقم طوله الحقيقي +1 ، (غير متأكد).
 

Option Compare Database

Dim InTime As Single
Const Gap As Double = 0.02
Const BadgeNoLen = 3        'Hawiii

Private Sub txtBadgeNo_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 13 Then
    If Timer - InTime > Gap Then Me.txtBadgeNo.Tag = ""
   'Me.txtBadgeNo.Tag = Right(Me.txtBadgeNo.Tag, 4)
    Me.txtBadgeNo.Tag = Right(Me.txtBadgeNo.Tag, BadgeNoLen)    'Hawiii
    Me.txtBadgeNo.Text = Me.txtBadgeNo.Tag
    Me.txtBadgeNo.Tag = ""
  End If
End Sub

Private Sub txtBadgeNo_KeyPress(KeyAscii As Integer)
  Select Case Chr(KeyAscii)
    Case "0" To "9"
      If Me.txtBadgeNo.Tag = "" Then InTime = Timer
      If Timer - InTime <= Gap Then
        Me.txtBadgeNo.Tag = Me.txtBadgeNo.Tag & Chr(KeyAscii)
        InTime = Timer
      Else
       'Me.txtBadgeNo.Tag = Chr(KeyAscii)
        Me.txtBadgeNo.Tag = ""              'Hawiii
        InTime = Timer
        
        'MsgBox "لا يقبل الإدخال عن طريق لوحة المفاتيح!!"     'Hawiii
      End If
    Case Else
      Me.txtBadgeNo.Tag = ""
  End Select
End Sub

ما عندي قارئ لأجرب.

تم تعديل بواسطه Hawiii
تعديل في الكود
قام بنشر
في ٣١‏/٧‏/٢٠٢١ at 05:22, النهر العطشان said:

السلام عليكم 

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

 

نعم يمكن ذلك

في حدث عند الفتح ضع التالي

Private Sub Form_Open(Cancel As Integer)
Me.KeyPreview = True
End Sub

و في حدث عند المفتاح للأسفل ضع التالي

Private Sub form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
Dim ctl As Control
    Select Case KeyCode
    Case vbKeyA To vbKeyZ
        DoCmd.RunCommand acCmdUndo
    Case vbKey0 To vbKey9
        DoCmd.RunCommand acCmdUndo
   End Select   
End Sub

 

 

قام بنشر
10 دقائق مضت, د.كاف يار said:
Private Sub form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
Dim ctl As Control
    Select Case KeyCode
    Case vbKeyA To vbKeyZ
        DoCmd.RunCommand acCmdUndo
    Case vbKey0 To vbKey9
        DoCmd.RunCommand acCmdUndo
   End Select   
End Sub

الكمبيوتر لا يفرق بين لوحة المفاتيح والقارئ .. لذا كل الإدخالات لن تتم حتى التي عن طريق القارئ.

  • Like 1
قام بنشر (معدل)

معلومة لمن يريد أن يساهم في التجارب والحل:
الإدخال عن القارئ سيتم الإدخال خانة/خانة ثم ينتهي بمفتاح الإدخال/Enter  ، وكأنما أدخلت يدويا ولكن بسرعة عالية جدا.

والسبيل الوحيد "لقفش" الإدخال اليدوي أي لوحة المفاتيح هو قياس سرعة الإدخال.

عادة القارئ يحتاج إلى بعض الضبط فهو يأتي بخيار استخدام الإنتر أو بدون وهناك خيارات أخرى كذلك لابد من فهمها بقراءة الكتيب.

تم تعديل بواسطه Hawiii
قام بنشر
2 ساعات مضت, Hawiii said:

الكمبيوتر لا يفرق بين لوحة المفاتيح والقارئ .. لذا كل الإدخالات لن تتم حتى التي عن طريق القارئ.

تمام بارك الله فيك

تعني من  ردك هذا : 

5 ساعات مضت, Hawiii said:

وافتراحك هذا غير موفق ولن أشرح لك .. بعدني معصب من ضياع ردي الأول.

انه عند حجب لوحة المفاتيح من ادارة المهام  سيتم حجب قارىء الباركود تبعا ؟

قام بنشر
3 ساعات مضت, Hawiii said:

الكمبيوتر لا يفرق بين لوحة المفاتيح والقارئ .. لذا كل الإدخالات لن تتم حتى التي عن طريق القارئ.

غير صحيح

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

قام بنشر

نقاش وحوارات بين اساتذة كبار .. استفدنا منها ... وهذا ما نحتاجه في مثل هذه المنتديات .... بارك الله في جهودكم جميعا ...

  • Like 4
قام بنشر
منذ ساعه, د.كاف يار said:

غير صحيح

 

4 ساعات مضت, Hawiii said:

الكمبيوتر لا يفرق بين لوحة المفاتيح والقارئ .. لذا كل الإدخالات لن تتم حتى التي عن طريق القارئ.

بعد التجربة للاكواد التي اشار اليها الدكتور.كاف

اتفق مع رد الاستاذ هاوي حيث قمت بالتجربة بجهاز الباركود ولوحة المفاتيح

وكانت النتيجة

  • قبول رقم واحد من لوحة المفاتيح
  • رقم واحد ايضا من قارئ الباركود
  • يمكن تجاوزة والادخال بلوحة المفاتيح عند استخدام لوحة الارقام الجانبية
  • يمكن تجاوزة من خلال كتابة اي ارقام او حروف في المفكرة ثم لصقها في الحقل

------------------------------

كود الاستاذ kanory

  • يقبل ادخال رقم واحد فقط من لوحة المفاتيح ثم يقوم بحذفه
  • يعمل بشكل ممتاز مع الباركود
  • يتعامل مع الارقام الجانبية كتعامله مع اي حرف بلوحة المفاتيح
  • عند اللصق لايقبل الادخال

وحيث ان ارقام الموظفين اكثر من حرف فاعتقد ممكن يؤدي الغرض

-----------------------------

كود الاستاذ ابو هادي لم اجربه ومن قراءة سريعة اعتقد انه مقارب لفكرة kanory

هذه تجربتي البسيطة وليس الهدف تفضيل عمل على اخر

وفي جميع الاحوال حتى لو منعنا الادخال عن طريق الكيبورد يمكن التلاعب بطرق اخرى اذا لم نحمي القاعدة بشكل صحيح

واعتذر عن اي اضافة اخرى في الموضوع

تحياتي

 

  • Like 2
  • Thanks 2
قام بنشر
9 ساعات مضت, ابوخليل said:

انه عند حجب لوحة المفاتيح من ادارة المهام  سيتم حجب قارىء الباركود تبعا ؟

ربما ، ولكني فكرت فيها من ناحية أخرى ، ملاحظتي عبارة عن تساؤل : ماذا لو دعت الحاجة لإعادة تشغيل الكمبيوتر وإعادة تشغيل البرنامج مع عدم وجود/حضور تقنية المعلومات؟.
 

قام بنشر
8 ساعات مضت, kha9009lid said:

 

كود الاستاذ ابو هادي لم اجربه ومن قراءة سريعة اعتقد انه مقارب لفكرة kanory

شكرا لجهودكم ، أنا مع التداخلات المحايدة والمفيدة والبعيدة عن المجاملات ، وأتمنى منكم فضلا وتكرما وليس أمرا مواصلة اختباراتكم على شفرة أبي هادي لنحصل على نتائج وافية ومقنعة للجميع ، وقد تجعل من هذا الموضوع مرجعا مميزا لكل من يهتم باستخدام الباركود.

قام بنشر

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

Private Sub Barcode_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = 0
End Sub

 

قام بنشر

لقد طلب قارئ باركود عن الطريق النت لعمل الإختبارات بشكل كاف وواف ، وسأعود لكم بالنتائج إن شاء الله تعالى.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information