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

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

قام بنشر

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

عندي مشروع و حبيت ان اسهل على المستخدم  عند الدخول الى نموذج الفاتورة ان يعمل على ضغط مفتاح معين
و قمت بالبحث في المنتدى و وجدت الطريقة و شغالة 100% عى اي قاعدة بيانات اخرى
اما على مشروعي فلم يعمل الكود مطلقا و جربت على اكثر من نموذج ولكن للاسف

فهل من مشكلة في نماذج

 

If KeyCode = 100 And Shift = 0 Then 'الرقم100 يمثل رقم الزر 4 والرقم 0 يمثل رقم شفت
'DoCmd.Close
'عند الضغط على الرقم4من لوحة المفاتيح سوف يغلق النموذج

DoCmd.OpenForm "جدول البيع"

  
End If

 

مبيعات نسخة 2003 (2).zip

قام بنشر

مشاركة مع استاذي الحبيب @ابوخليل

والسبب الثاني ما يشتغل عندك مفاتيح مختصرة وهو

ان الخاصية كي بريفيو للنموذج هو لا "نو" غيرها الى نعم "يس" 

او عند فتح النموذج اكتب
me.keypreview = yes
لكي يشتغل المفاتيح المختصرة

notoyes.PNG.9db2cb21f69252d88d5535100c369e99.PNG

 

  • Like 1
قام بنشر
  في 29‏/5‏/2017 at 03:05, ابوخليل said:

المشكلة ان الزر رقم 4 يقابله الرقم 52 وليس 100

استبدل الرقم  100  الموجود بالكود بالرقم 52

وإليك هدية ارقام  لوحة المفاتيح

ارقام لوحة المفاتيحKey ASCII Values.rarFetching info...

Expand  

 

  في 29‏/5‏/2017 at 07:08, Shivan Rekany said:

مشاركة مع استاذي الحبيب @ابوخليل

والسبب الثاني ما يشتغل عندك مفاتيح مختصرة وهو

ان الخاصية كي بريفيو للنموذج هو لا "نو" غيرها الى نعم "يس" 

او عند فتح النموذج اكتب
me.keypreview = yes
لكي يشتغل المفاتيح المختصرة

Expand  

اضافة الى ما قاله اساتذتى @ابوخليل و @Shivan Rekany  

ضع الكود فى حدث فى النموذج On Keydown حتى يشتغل الكود عند الضغط على الزر المطلوب ليصبح الكود بالشكل التالى 

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 52 And Shift = 0 Then 'الرقم 52 يمثل رقم الزر 4 والرقم 0 يمثل رقم شفت
'DoCmd.Close
'عند الضغط على الرقم  4   من لوحة المفاتيح سوف يغلق النموذج

DoCmd.Close

 

ولا تنسى ما قاله الاستاذ شيفان من تفعيل الكى بريفيو بالتوفيق


 

  • Like 1
قام بنشر

 

  في 29‏/5‏/2017 at 03:05, ابوخليل said:

المشكلة ان الزر رقم 4 يقابله الرقم 52 وليس 100

استبدل الرقم  100  الموجود بالكود بالرقم 52

وإليك هدية ارقام  لوحة المفاتيح

ارقام لوحة المفاتيحKey ASCII Values.rarFetching info...

Expand  

سلمت اياديكم اخواني و اساتذتي 

جاري التجريب 

و ساوافيكم بالنتيجة 

 

اخي ابو خليل قمت بتجربة الكود على  نماذج في قاعدة اخرى و اشتغل الكود 100% و على أساس  انة 100 هو رقم 4 

و كان معي برنامج بالاكسس نزلتة من المنتدى و كان يعطيني رقم ASCII 

و كنت في كل تجربة اجرب زر و كان شغال تماااام 

ولكن عندما اردت ان اطبقة على نظامي رفض التطبيق 

 

ساطبق ما قلتم لي و سأوافيكم بالنتيجة ان شاء الله 

قام بنشر

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

بارك الله لكم جميعا

ربما يفيدك هذا المثال المصنوع على عجالة

للتعرف على أكواد المفاتيح ascii & ceycode

وفتح نموذج عند الضغط على مفتاح معين

592d3ba6b2d26_openformbykeys.png.c35d7616255fedfbf4bee1755a22a1d2.png

open form by keys.rar

  • Like 2
  • Thanks 1
  • 2 weeks later...
قام بنشر

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

تم تطبيق ما تفضلتم بة و الحمد لله اشتغل 

لكن هناك سوال و ارجوا الا اكون قد ازعجتكم 


هل من الممكن عمل الكود على مستوى قاعدة البيانات بالكامل 

اي ان الكود يعمل في اي فورم دون الحاجة الى تكرار الكود في كل فورم

قام بنشر

لا أعتقد أن هذا ممكن

فهذا الحدث موجود في النموذج فقط

ويجب تكراره في كل نموذج تريد فيه تنفيذ الكود

والله تعالى أعلى وأعلم

قام بنشر (معدل)
  في 29‏/5‏/2017 at 03:05, ابوخليل said:

ان الزر رقم 4 يقابله الرقم 52 وليس 100

Expand  

حسب معلوماتي ان رقم 100 هو كو لرقم 4 في لوحة المفاتية الحسابية اي اللي في يمين الكيبورد

و رقم 52 هو كود لرقم 4 اللي فوق الحروف في لوحة المفاتيح 

هذا والله يعلم

  في 7‏/6‏/2017 at 21:35, أ / محمد صالح said:

لا أعتقد أن هذا ممكن

Expand  

بلى استاذي الحبيب ممكن

  في 7‏/6‏/2017 at 20:57, رياض البرعي said:

هل من الممكن عمل الكود على مستوى قاعدة البيانات بالكامل

Expand  

اتفضل اليك هذا فانكشن

اعمل كوبي باست في وحدة نمطية

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
       Case 52
			' هنا اكتب اي امر تريد
      		DoCmd.OpenForm "ck", acNormal
       Case Else
			' وهنا اكتب اي امر تريد وتقدر تستمر اي تطول الكود حسب حاجتك
        	DoCmd.Close acForm, "فواتير"
    End Select
End Function

واكتب هذا في فورم عند كي داون اي ضغط على الازار

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = AllowKeyCode(52, Shift)
End Sub

لكن لا تنسى يجب ان يكون كي بريفيو لكل النموذج المستخدمة عليه الكود ان يكون = نعم

  في 29‏/5‏/2017 at 07:08, Shivan Rekany said:

او عند فتح النموذج اكتب
me.keypreview = yes

Expand  

تقبل تحياتي

م.2000.شفان ريكاني

تم تعديل بواسطه Shivan Rekany
قام بنشر
  في 7‏/6‏/2017 at 22:06, Shivan Rekany said:

 

بلى استاذي الحبيب ممكن

اتفضل اليك هذا فانكشن

اعمل كوبي باست في وحدة نمطية

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
       Case 52
			' هنا اكتب اي امر تريد
      		DoCmd.OpenForm "ck", acNormal
       Case Else
			' وهنا اكتب اي امر تريد وتقدر تستمر اي تطول الكود حسب حاجتك
        	DoCmd.Close acForm, "فواتير"
    End Select
End Function

واكتب هذا في فورم عند كي داون اي ضغط على الازار

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = AllowKeyCode(52, Shift)
End Sub

لكن لا تنسى يجب ان يكون كي بريفيو لكل النموذج المستخدمة عليه الكود ان يكون = نعم

تقبل تحياتي

Expand  

هذا الكود يؤكد كلامي أخي شيفان

حيث ان حدث عند الضغط يخص النموذج

ولا يخص قاعدة البيانات ككل

متى يكون هذا ممكنا؟!

بدون وضع الكود الثاني في حدث عند الضغط

Form_keydown

والله تعالى اعلى واعلم

 

  في 7‏/6‏/2017 at 21:35, أ / محمد صالح said:

ويجب تكراره في كل نموذج تريد فيه تنفيذ الكود

Expand  

 

  • Like 1
قام بنشر (معدل)
  في 7‏/6‏/2017 at 22:16, أ / محمد صالح said:

هذا الكود يؤكد كلامي أخي شيفان

حيث ان حدث عند الضغط يخص النموذج

ولا يخص قاعدة البيانات ككل

متى يكون هذا ممكنا؟!

بدون وضع الكود الثاني في حدث عند الضغط

Expand  

استاذي الحبيب

نحن نتعلم منكم ونفتخر بكم

ما علمته انا في حياتي البرمجية هو

ان اي وحدات نمطية مثلهم كمثل هيكل ليس لديه روح 

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

  في 7‏/6‏/2017 at 22:16, أ / محمد صالح said:

بدون وضع الكود الثاني في حدث عند الضغط

Expand  

وهناك انا معك لكن هذا حال لكل كثير من وحدات النمطية

والوحدة النمطية الاعلاه مثل كل الوحدات النمطية بيعمل عمله 

اي سيختصر لك الكود راح تكتبة مرة وتستخدمه الف مرة و مرة خاصتا اذا الكود يكون طويلا

هناك مثلا عملت زر واذا لا تعطي اي امر في حدث عند الضغط ما يعمل لك اي شيء في ذلك الحدث

لا اعرف هل فهمت قصدي ام لا

هذا والله يعلم

م.2001.شفان ريكاني

تم تعديل بواسطه Shivan Rekany
قام بنشر

اخي @Shivan Rekany عملت ما قلت علية كما في الكود

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
       Case 52

DoCmd.OpenForm "جدول البيع"

  
            

       Case Else
           
            DoCmd.Close acForm, "فواتير"
    End Select
End Function

ولكن صارت كل الازرار تستجيب و عملت كذالك if كما في الكود و لكن لم تعمل ابدا فاين خطأي

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
       Case 52
           
            
            If KeyCode = 100 And Shift = 0 Then 'ÇáÑÞã100 íãËá ÑÞã ÇáÒÑ 4 æÇáÑÞã 0 íãËá ÑÞã ÔÝÊ

DoCmd.OpenForm "جدول البيع"


  

          
           End If
'       Case Else
          

'            DoCmd.Close acForm, "فواتير"
    End Select
  
End Function


فانا اريد ان يكون الفورم الواحد فية اكثر من عملية مثل فتح السندات عند الضغط على زر 1
و فتح المشتريات بزر 2
و فتح التقارير كذلك بزر 3
و المعذرة الشديدة منكم

 

  • تمت الإجابة
قام بنشر
  في 11‏/6‏/2017 at 21:38, رياض البرعي said:

فانا اريد ان يكون الفورم الواحد فية اكثر من عملية مثل فتح السندات عند الضغط على زر 1
و فتح المشتريات بزر 2
و فتح التقارير كذلك بزر 3
و المعذرة الشديدة منكم

 

Expand  

اتفضل

فقط غير في اسماء النماذج في الكود

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 49 Then
            DoCmd.OpenForm "جدول البيع", acNormal
        ElseIf KeyCode = 50 Then
            DoCmd.OpenForm "ركود", acNormal
        ElseIf KeyCode = 51 Then
            DoCmd.OpenReport "جدول الزبائن", acViewPreview
    End If
End Sub

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

 

مبيعات نسخة 2003 (2) (1).zip

  • Thanks 1
قام بنشر
  في 11‏/6‏/2017 at 22:10, رياض البرعي said:

تسلم اخي @Shivan Rekany
قد عملت هذا من قبل كان ناجح لكن الذي
اريدة ان يكون على مستوى القاعدة ككل
اقصد هل استطيع عملة كوحدة نمطية
واستدعيها في كل نموذج
 

Expand  

اتفضل

اليك

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    If KeyCode = 49 Then
            DoCmd.OpenForm "جدول البيع", acNormal
        ElseIf KeyCode = 50 Then
            DoCmd.OpenForm "ركود", acNormal
        ElseIf KeyCode = 51 Then
            DoCmd.OpenReport "جدول الزبائن", acViewPreview
    End If
End Function

وفي نموذج عند الضغط على الازرار في كل نماذج اللي تريد ان يعمل لك العملية فتح نماذج والتقارير  اكتب

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    KeyCode = AllowKeyCode(KeyCode, Shift)
End Sub

وعند فتح كل نموذج اللي تريد ان يعمل لك العملية

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

واليك قاعدة بيانات بعد تعديل

 

مبيعات نسخة 2003 (2) (1).zip

  • Thanks 1

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