بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9977 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
طريقة لحل مشكلة SQL injection في فورم دخول المستخدم
jjafferr replied to rey360's topic in قسم الأكسيس Access
وعليكم السلام 🙂 انا ما فهمت السؤال ، ولكن وجدت خطأ في الكود 🙂 وعلشان تعرف وين الخطأ ، دائما استعين بـ Debug.print ، وفي حالتك : Debug.Print "login='" & Me.Texte1 & "'" & "and passe='" & Me.Texte3 & "'" والنتيجة login='mmm'and passe='bb' . وتلاحظ انه ما في مسافة قبل and لهذا السبب ، الكود بعد التعديل يصير : Dim rs As dao.Recordset Set rs = CurrentDb.OpenRecordset("select * from test1", dbOpenDynaset) ' If Not rs.EOF Then rs.MoveFirst Debug.Print "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'" rs.FindFirst ("login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") If rs.NoMatch = True Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If rs.close Set rs = Nothing . وتستطيع ان تستعمل كود اخف : If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If . ولكن هذين الكودين يعتمدون على المعيار ، لذلك اعطيك طريقتي في عمل المعيار ، واللي يسهل عليك : . فيكون الكود في حالتك : Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe rs.FindFirst myWhere او If DCount("*", "test1", myWhere) > 0 Then جعفر -
كود حذف عند ظهور اي رسالة خطأ في نموذج ادخال بيانات
jjafferr replied to حسين العربى's topic in قسم الأكسيس Access
تفضل Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue me.undo msgbox "ادخل البطاقة مرة اخرى" me.ID.setfocus End If End Sub . ولكني لازلت اقول بأنه ممكن فيه طريقة افضل من هذه ، تلك التي يتسلسل فيها دخول البيانات من البطاقة !! لأنك بهذه الطريقة تضطر تصيد الاخطاء واحدة خلف الاخرى وووو ، بينما مثلا : لما تُدخل البطاقة في الجهاز ، يجب ان يكون التركيز على حقل رقم البطاقة ، وآخر حقل يتم ادخاله هو تاريخ الانتهاء ، ومنها ينتقل التركيز للحقل التالي ، هنا ، وعلى حدث "بعد التحديث" للحقل تاريخ الانتهاء ، يمكنك ان تظهر رسالة: هل تريد حفظ البيانات ، نعم ، لا : Dim Msg, Style, Title, Response Msg = "هل تريد حفظ البيانات ?" & vbcrlf & _ "نعم: احفظ البيانات" & vbcrlf & _ "لا : لا تحفظ البيانات" Style = vbYesNo + vbCritical + vbDefaultButton1 ' Define buttons. Title = "تم ادخال البيانات، ولكنها لم تُحفظ بعد" ' Define title. ' context. ' Display message. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. docmd.runcommand accmdsaverecord ' احفظ السجل me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة Else ' User chose No. me.undo ' Perform some action. me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة End If . الميزة في ظهور الرسالة هو ، انه لا يسمح لك عمل اي شيء آخر في السجل ، إلا بعد ان تستجيب للرسالة ، مما يسهل عليك ولا تحتاج الى بقية الكود ولا ولا 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim x As Integer x = DataErr If x > 0 Then ' Response = acDataErrContinue 'ÞÏ áÇ ÊÍÊÇÌ Çáì åÐÇ ÇáÓØÑ Me.Undo End If End Sub هو بمثابة هذا الكود لأن تقريبا جميع الاخطاء ارقامها موجبه Private Sub Form_Error(DataErr As Integer, Response As Integer) Response = acDataErrContinue Me.Undo End Sub جعفر -
كود حذف عند ظهور اي رسالة خطأ في نموذج ادخال بيانات
jjafferr replied to حسين العربى's topic in قسم الأكسيس Access
1. هل جربت الكود ، وتم عمل اللازم ؟ 2. تصطاد رقم الخطأ ، ثم تضيف الكود برقم الخطأ 🙂 بس اعتقد بأن موضوعك لا يتم التعامل معه بهذه الطريقة !! على حسب تجربتي مع سكانر MRZ : فطريقة قراءة البطاقة ، سطر بسطر ، ولذلك ، ولما يصل الى السطر الاخير ، تستطيع: 1. ان تحفظ السجل تلقائيا ، وتنقل التركيز للسطر الاول (انظر رقم2) ، 1و 2. تجعل التركيز يذهب للسطر الاول (وتكون القيمة فيه مظلله) ، بحيث اذا اراد ان يُدخل بطاقة ثانية ، فلا يحصل على خطأ 🙂 جعفر -
كود حذف عند ظهور اي رسالة خطأ في نموذج ادخال بيانات
jjafferr replied to حسين العربى's topic in قسم الأكسيس Access
في هذه الحالة ، السجل لم يتم حفظه بعد ، فلا يمكنك حذفه ، وانما يمكنك إلغاءه 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue 'قد لا تحتاج الى هذا السطر me.undo End If End Sub او تحذف بيانات النموذج : me.text1="" me.text2="" ومن الصورة الاخيرة اللي ارفقتها ، انت لم تنسخ الكود بالكامل ، نسيت اهم سطر : جعفر -
كود حذف عند ظهور اي رسالة خطأ في نموذج ادخال بيانات
jjafferr replied to حسين العربى's topic in قسم الأكسيس Access
طبعا قصدك مع رقم الخطأ ، وإلا ، وبحدوث اي رسالة خطأ ، سيتم حذف الاخضر واليابس 🙂 اخي حسين ، صدقني لما قلت لك ، هذه طريقة اصطياد الخطأ ، والنتيجة ، وحسب طلبك : جعفر -
كود حذف عند ظهور اي رسالة خطأ في نموذج ادخال بيانات
jjafferr replied to حسين العربى's topic in قسم الأكسيس Access
السلام عليكم 🙂 عندك رقم الخطأ ، صح ؟ اذا ما عندك : على حدث "on Error" للنموذج (وليس للحقل) ، اكتب Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox DataErr End Sub . وبعد ان تصطاد رقم الخطأ (مثلا 1111) ، استعمل كود اخوي احمد لحذف السجل : Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 1111 Then Response = acDataErrContinue 'قد لا تحتاج الى هذا السطر DoCmd.RunCommand acCmdDeleteRecord End If End Sub . جعفر -
وعليكم السلام 🙂 جرب ضغط واصلاح ، وهذا الرابط قد ينفعك : جعفر
-
السلام عليكم استاذ فايز 🙂 بدل ان تطلب البيانات من الجدول 6 مرات : . تقدر تطلبها مرة واحدة فقط : جعفر
-
تفضل 🙂 Private Sub B_Code_AfterUpdate() If DCount("*", "المستخدمين", "[المعرف]=" & [Forms]![الدخول]![B_Code]) > 0 Then Dim SplitUp() As String Dim StrMyLookup As String StrMyLookup = DLookup("[الصلاحية] & '|' & [اضافة] & '|' & [حذف] & '|' & [تعديل] & '|' & [كلمة السر] & '|' & [اسم المستخدم]", "المستخدمين", "[المعرف]=" & [Forms]![الدخول]![B_Code]) SplitUp = Split(StrMyLookup, "|") Me.الصلاحية = SplitUp(0) Me.اضافة = SplitUp(1) Me.حذف = SplitUp(2) Me.تعديل = SplitUp(3) Me.كلمة_السر = SplitUp(4) Me.اسم_المستخدم = SplitUp(5) Else Exit Sub End If End Sub جعفر 1198.مستخدم.accdb.zip
-
وعليكم السلام 🙂 عندك حقل بإسم المعرف ، فهل هذا حقل الباركود ؟ جعفر
-
استفسار عن إمكانية مطابقة البيانات مع الصورة
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
اذن مشاركتي الآولى لاتزال ، طريقة العمل 🙂 جعفر -
استفسار عن إمكانية مطابقة البيانات مع الصورة
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
يعني هذا البرنامج (إشراق) يقوم بعملية تحويل البيانات من صورة الجواز الى ملف txt/xls او اي ملف آخر ؟ -
استفسار عن إمكانية مطابقة البيانات مع الصورة
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
شو اسمه البرنامج ؟ -
على حدث "بعد التحديث" ، كالعادة 🙂 جعفر
-
استفسار عن إمكانية مطابقة البيانات مع الصورة
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
وعليكم السلام 🙂 اللي اشوفه من صورة ، واللي يمكن قراءته بجهاز قارئ الباركود : الهوية : فيها باركود اُحادي ، والباركود عبارة عن رقم ، ولا اعرف اذا هذا الرقم له علاقة بمعلومات الشخص ، او هو مجرد رقم تسلسل ، فلا ادري اذا ممكن الاستفادة منه ، الجواز : فيه باركود من نوع PDF417 ، وبحثت في الانترنت على جوازات سعودية ، وحاولت استعمل مجموعة من برامج قراءة الباركود في هاتفي ، لقراءة هذا الباركود ، واتضح انه لا يمكن قراءته (يمكن عند الجهات الرسمية Decoder خاص لقراءة هذا الباركود) ، لذا ، كذلك لا يمكن الاستفادة منه ، الجواز : فيه كود من نوع MRZ (في اسفل الجواز ، ذو السطرين) ، وهاي مافيه بيانات عربية ، وفيه : الاسم بالانجليزي ، الجنسية ، رقم الجواز ، تاريخ الميلاد ، تاريخ الاصدار ، وتاريخ الانتهاء ، فهنا ممكن تستفيد من هذه البيانات 🙂 طبعا علشان تقدر تقرأ هذه البيانات ، لازم يكون عندك برنامج يقرأ MRZ ، ويوجد منهم الكثير ، وحسب تجربتي في استعمال برامج تحويل الصورة الى نص (OCR) ، فارى ان برنامج Abbyy Fine Reader عنده القابلية ، وصحيح ممكن تستعمل نسخة Professional ولكن نسخة Corporate هي الاصلح في حالتك ، ويجب ان يكون البرنامج متنصب على الكمبيوتر ، والذي نطلب منه ان يصدر بيانات MRZ الى ملف TXT او xls ، وبإسم كل ملف حسب اسم ملف pdf الموجود عندك ، ومنه نعمل كود لقراءة هذه الملفات ، ونُدخل/نقارن البيانات بالموجوده عندك ، والطريقة الاخرى ، انك تستعمل برنامج آخر من شركة Abbyy واسمه ABBYY FlexiCapture ، وفيه امكانيات مهولة ، بحيث تخبره بكل حقل من الجواز ومافيه ، فيقوم بجمع جميع بيانات الجواز ، باللغة العربية والانجليزية ، ويحفظها في ملف xls ، ومنه نعمل كود لقراءة هذه الملفات ، ونُدخل/نقارن البيانات بالموجوده عندك 🙂 سهلة هاه 🙂 ولكن وقبل ان تشمّر عن ساعديك وتشتري برنامج ABBYY FlexiCapture ، رجاء انظر الى مواصفات الصورة التي قمت بعمل سكان لها ، فإذا كان نقاوة الصورة اقل من 300dpi ، فلا تتعب نفسك ، فلن يستطيع برنامج OCR من قراءة بيانات الصورة ، وخصوصا بالعربية !! جعفر -
وعليكم السلام 🙂 1_اذا كانت قيمة الحقل رقم if a= 123 then 2_اذا كانت قيمة الحقل نص if a="abc123" then او if a='zxc23' then 3_اذا كانت قيمة الحقل تاريخ if a=#22-2-2020# then 4-اذا كان الحقل فارغ if len(a & "")=0 then جعفر
-
1. انا نصحتك انك ما تستعمل حدث "عند التغيير" في البحث ، وخصوصا في شبكة ، لأن برنامجك بيصير جدا بطيء ، بحيث بعد ان تضغط على زر الرقم يحتاج البرنامج الى عدة ثواني حتى يُدخل الرقم التالي .. ، واخبرك مسبقا ، بأن المستخدم لن يقبل بهذه السرعة ، ولن يقبل بطريقة اخرى للبحث ، ولا توجد طريقة لحل هذه المشكلة ، وستكون متورط !! 2. تفضل : . جعفر
-
لما تكون في صفحة الكود VBE ، اضغط على الزر F1 ستأتيك هذه النافذة ، اكتب في مكان البحث كلمة: mask ، وستحصل على جميع التعليمات : . جعفر
-
-
وعليكم السلام اخوي وضاح 🙂 الكود اللي وضعته مافيه شيء غلط ، ويمكن انك تخليه على اي حدث تريد ، ولكن الحدث "عند التغيير" نستعمله في حالات جدا خاصة ، ومن الخطأ الفادح ان نستعمله في البحث ، وخصوصا اذا كان البرنامج على الشبكة ، لأنه على كل كبسة زر ، يضطر الكود انه يجلب البيانات من الجداول مرة بعد اخرى ، وفي معظم الاوقات يجعل البرنامج جدا بطئ . جعفر
-
مساعدة في برنامج تدريس عن بعد وارسال صور وفيديو وملفات pdf
jjafferr replied to Tarekfathallah's topic in قسم الأكسيس Access
- اين مكان هذا المجلد ، في الشبكة ؟ - كيف ترتيبه ، نريد صورة منه علشان نعرف المجلد والمجلدات اللي داخلة وطريقة ترتيبهم ، - اي نموذج نستعمل علشان نوصل للمطلوب ؟ رجاء ، اعمل مثال كامل (سواء بالوورد او الاكسل او بصور) على العمل اللي تريد ، وهذا المثال يجب ان يكون من بيانات برنامجك ، حتى نعرف كيف نعمل مثله 🙂 رجاء اعطنا معلومات اكثر وبالتفصيل الممل ، وإلا ، فانا ممكن اعمل لك مثال من عندي ، وعليك تطبيقه على برنامجك ، ولن اساعدك في تطبيقه 🙂 جعفر -
قاعدة بيانات 2003 لا تعمل بعد تنصيب أوفيس 365
jjafferr replied to ashraf333's topic in قسم الأكسيس Access
وعليكم السلام 🙂 الظاهر المشكلة في المكتبات !! افتح VBE > Tools > References واعمل صورة لشاشة المكتبات وارفقها هنا . الموقعين يخبرانا المكتبات الصحيحة لكل نسخة من الاكسس ، ولكن الظاهر ان نسخة الاوفيس 365 عملت تغيير في الريجستري ، فلهذا السبب يجب عليك تعديل المكتبات يدويا لبرنامجك 🙂 https://www.access-diva.com/d5.html و http://allenbrowne.com/ser-38.html جعفر -
مساعد في دمج عدة حقول خاصة بالتاريخ بحقل واحد فقط
jjafferr replied to hamndy's topic in قسم الأكسيس Access
السلام عليكم 🙂 مع ان الاكسس ممكن يتساهل مع عرض التاريخ بعدة اشكال ، ولكن يجب ان نضع في بالنا ، ان الاكسس ، وبغض النظر عن طريقة التنسيق التي نستعملها في الجدول/الاستعلام/النموذج/التقرير/الوحدة النمطية/الماكرو لعرض التاريخ ، فإن الاكسس يحتفظ بالتاريخ بالطريقة الامريكية : الشهر / اليوم / السنة . ولتأكيد هذا ، اليك هذه التواريخ في الاستعلام (مع ان الاستعلام يعرض عليك التنسيق الذي طبعته انت ، ولكن الاكسس في عمله يستعمل التاريخ الامريكي) : . ثم قم بتحويل واجهة الاستعلام الى SQL : . والنتيجة : . لهذا السبب ، نجد في بعض البرامج ان الاكسس يعطي نتائج صحيحة لبعض التواريخ (اليوم بين 13-31) لأنه لا توجد شهور بهذه الارقام ، ونتائج غير صحيحة لتواريخ اخرى (اليوم بين 1-12) لأنه توجد شهور بهذه الارقام ، خلينا نشوف جدولك وهو بهذا التنسيق : . وبعد استعمالك استعلام التحديث: . هذه نتائج الجدول : نلاحظ ان التواريخ جميعها صحيحه ، ولكن المستخدم اخطأ في ادخال التاريخ 29/2/01 ، لأن سنة 2001 ليست سنة كبيسة ، فقام الاكسس بتصحيح التاريخ لهذا اليوم ظنا منه انك اخطأت في المعادلة : [d] & "/" & [m] & "/" & [y] لماذا قام الاكسس بهذا التغيير ، لأن البيانات لم تكن صحيحة ، ولأن استعلام التحديث لم يُلزم الاكسس بالتأكد من التاريخ !! وللتغلب على هذه الاشكالية ، يجب علينا ان نخبر الاكسس اسم حقل اليوم والشهر والسنة ، عن طريق الاوامر الخاصة بالتاريخ ، مثل : DateAdd او DateDiiff او DatePart او DateSerial لذا ، فإذا استعملنا : . نرى ان النتيجة صحيحة ، بحيث اضاف يوم ليعطي النتيجة الصحيحة : . الاختيار الآخر هو ، ان تكتب السنة بأربع ارقام (2001) ، فعليه ، سيعطي الاكسس خطأ لحقل التاريخ ، بإستعمال طريقتك 🙂 جعفر -
اهلا وسهلا بك اخي امين في المنتدى 🙂 رجاء قراءة شروط المنتدى قبل تشارك فيه : قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف رجاء طرح موضوع جديد بعنوان مناسب. شكرا يُغلق. جعفر
- 1 reply
-
- 1
-