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

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

قام بنشر

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

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) وتصاعديا.

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

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

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

يوجد في الشفرة رقم 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

 

قام بنشر

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

قام بنشر

السلام عليكم

الشكر والتقدير لكل من ساهم بفكرة او موضوع وان لم تصيب 100%

استاذي الفاضل ابوخليل المحترم 

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

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

وشكرا

قام بنشر
14 ساعات مضت, Eng.Qassim said:

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

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

 

لا يقرأ

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

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

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

السلام عليكم استاذنا ابو خليل المحترم

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

قام بنشر
16 minutes ago, النهر العطشان said:

السلام عليكم استاذنا ابو خليل المحترم

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

 

جرب مع الكود ان تكون في بيانات مربع النص 

Locked = Yes

Enable = Yes

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

قام بنشر
في ٥‏/٨‏/٢٠٢١ at 09:43, Hawiii said:

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

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

السلام عليكم 

استاذي الفاضل Hawiii تم تجربة الكود مشكورا 

تيقى المشكلة انه يمكن ادخال رقم مرتبة واحدة ثم بعد كتابة الرقم الثاني تظهر الرسالة انه لايمكن الادخال عن طريق الكيبورد وشكرا

 

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