بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12 ماي, 2017 in all areas
-
صيغة الشفرة السابقة فيها بعض الطول! وهذا اختصارها Public Function ULast(Expr As String, Domain As String, Optional Criteria) Dim RS As Recordset If IsMissing(Criteria) Then Criteria = "1=1" End If Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Where " & Criteria & " Order By " & Expr & " Desc") ULast = RS(0) End Function Public Function UFirst(Expr As String, Domain As String, Optional Criteria) Dim RS As Recordset If IsMissing(Criteria) Then Criteria = "1=1" End If Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Where " & Criteria & " Order By " & Expr & " Acs") UFirst = RS(0) End Function4 points
-
السلام عليكم لما رأيت هذه المشاركة خشيت أن تتوه فى الزحام من إبداعات الأستاذ جعفر الكود مع تعليقى عليه فى رأس التقرير ترى الناتج فى عرض الطباعة Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer) 'الإعلان عن مصفوفة نصية Dim x() As String 'جلب آخر قيمة مضافة بدلالة حقل الترقيم التلقائى 'بشرط [qty_in]<>0 MX = DMax("[ID]", "Transactions", "[Qty in]<>0") 'البحث فى حقل مكون من حقلين بينهما فاصل 'الحقلان هما أنفسهما المطلوبان فى مربعى نص فى التقرير 'استخدام نتيجة mx كشرط ' DL = DLookup("[add_doc] & '|' & [zdate]", "Transactions", "[ID]=" & MX) 'التقسيم لفصل العمودين x = Split(DL, "|") Me.Text53 = x(0) Me.Text48 = x(1) End Sub رابط المشاركة3 points
-
يمكن أن نصور ما قرره الاستاذين @جعفر و @رمهان بالدالتين التاليتين Public Function ULast(Expr As String, Domain As String, Optional Criteria) Dim RS As Recordset If IsMissing(Criteria) Then Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Order By " & Expr & " Desc") ULast = RS(0) Else Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Where " & Criteria & " Order By " & Expr & " Desc") ULast = RS(0) End If End Function Public Function UFirst(Expr As String, Domain As String, Optional Criteria) Dim RS As Recordset If IsMissing(Criteria) Then Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Order By " & Expr & " Asc") UFirst = RS(0) Else Set RS = CurrentDb.OpenRecordset("Select Top 1 " & Expr & " From " & _ Domain & " Where " & Criteria & " Order By " & Expr & " Acs") UFirst = RS(0) End If End Function3 points
-
السلام عليكم شباب اشكركم على تأكيد ان البرنامج اشتغل ، وان شاء الله في النسخة النهائية نعمل احد اثنين ، حتى لا يدخل المستخدم في الكود اصلا: 1. نحاول نقرأ مقدرة الكاميرا في حجم الصور ، ونضع القائمة تلقائيا في مربع تحرير وسرد ، ويختار المستخدم الحجم المناسب ، 2. او نضع القائمة يدويا في مربع تحرير وسرد ولقد اجريت بعض التعديلات على اصل الموضوع ، مثل وضع رابط لصفحة البرنامج الخارجي الذي نستخدمه هنا هلا والله أخوي رمهان 1. كلنا يعرف ان الاكسس برنامج قاعدة بيانات ، ونحن في الكثير من الاحيان نلوي ذراعه ليعمل اللي نريد ، لذا انا دائما اقول: ونستخدم بشكل يومي كائنات ActiveX و OCX ومكتبات تأتي مع اجهزة ، داخل الاكسس (والتي هي برامج خارجية) ، سواء من صنع مايكروسوفت ، او من غيرها ، 2. هممم ، هنا سنواجه مشكلة في جميع البرامج تقريبا!! SQL Server ليس ببرنامج بحد ذاته ، حيث انه جداول فقط ، وتحتاج الى برنامج واجهة لجعله يشتغل ، فهل هذا معناه عدم استعماله لأنه يستعمل برنامج خارجي معه!! وفي احد المشاريع التي عملت فيها ، المبرمج كان يستعمل ASP.net ، واضطررنا الى شراء كائن ActiveX لإستعماله في البرنامج ، فهذا كذلك برنامج خارجي!! في هذه الحالة ، احنا تمام مع الاكسس على العموم ، طريقتك استاذ رمهان تعتمد على المعرفة والتدقيق والتمحيص في جميع دقائق البرنامج ، لهذا السبب ماشاءالله ، اجاباتك تكون غير مألوفة ، وبالخصوص المختصرة/المختزلة منها والسبب اني كتبت ما قلته اعلاه ، حتى يعرف الجميع الاختيارات التي لديه ، سواء بالاكسس 100% ، او بمساعدة البرامج الخارجية جعفر3 points
-
السلام عليكم ورحمة الله وبركاته في المثال غنية عن المقال فتح الصورة بالمستعرض.rar3 points
-
الله ينور دربك بالايمان ، ويديم عليك نعمه ، واعتذر لتغيير الصورة3 points
-
جرب عزيزي subform1.SetFocus For i = 0 To subform1.Form.RecordsetClone.RecordCount subform1!ImagePath = Replace(subform1!ImagePath, Left(subform1!ImagePath, InStrRev(subform1!ImagePath, "\") - 1), DLookup("pate", "IETEM_NEM", "ITEM_NO=" & subform1!emp_id)) DoCmd.GoToRecord , , acGoTo, i + Abs(i <> subform1.Form.RecordsetClone.RecordCount) Next بالتوفيق3 points
-
السلام عليكم ورحمة الله وبركاته الجزء الاول تم مناقشته هنا هذا الجزء رقم 2 من مشروع متكامل لتصوير الاشخاص والمستندات بإستخدام الكاميرات والماسح الضوئي (Scanner) ، والمشروع يتكون من: يعني مو بس البرامج الكبيرة تستخدم هذه التقنيات ، وإحنا بعد وهذه الاجهزة ستكون لتصوير الاشخاص والمستندات ، ان شاء الله التصوير عن طريق كاميرا هاتف اندرويد ، وتمت التجربة على هاتف اندرويد Galaxy S3 بنظام 4.4 و Huawei Mate 7 بنظام اندرويد 6 ، التصوير عن طريق WebCam ، وتمت التجربة على Logitec HD c615 ، و Creative Live (VF0610)e ، التصوير عن طريق الكامرات الكبيرة من نوع DSLR ، وتمت التجربة على Nikon D5100 او Canon Mark iii ، تطويع الماسح الضوئي لتصوير المستند/المستندات ، وحفظ المستندات الى اي مجلد ، بصيغة pdf او jpg والعمل غير مكتمل 100% ، هذا البرنامج يشتمل على الرقم 1 كذلك (وهو نفس نسخة الرابط اعلاه وبدون تغيير) ، هذا البرنامج يعتمد على البرنامج الخارجي (RobotEyez.exe) ، وهذا رابطه: https://batchloaf.wordpress.com/2011/11/27/ultra-simple-machine-vision-in-c-with-roboteyes/ وهذا كود برنامج التصوير عن طريق كاميرا Webcam: Dim cmmd As String 'how long does it take to take the picture istart = Timer 'set BE_Path Call BE_or_FE 'RobotEyez location App_Location = BE_Path & "Camera_App\WebCam\RobotEyez.exe" Save_images_to = BE_Path & "images\" 'Debug.Print App_Location iview_Folder = BE_Path & "image_App\i_view32.exe" File_Path = Save_images_to & Me.Employee_ID & ".jpg" SetCurrentDirectory Save_images_to 'cmmd = App_Location & " /devnum 1 /delay 1000 /width 1920 /height 1080 /bmp" cmmd = App_Location & " /devnum 1 /delay 1000 /width 1280 /height 720 /bmp" 'Debug.Print cmmd Call ShellWait(cmmd, vbHidden) 'convert bmp to jpg Call ShellWait(iview_Folder & " " & Save_images_to & "frame.bmp" & " /convert=" & File_Path, vbNormalFocus) 'Delete the bmp image Kill Save_images_to & "\frame.bmp" 'show the picture in the Form Me.Pic.Picture = Save_images_to & Me.Employee_ID & ".jpg" MsgBox Timer - istart . المرفق فيه جميع البرامج المطلوبة لجعل هذا البرنامج يعمل ، ولكن ، 1. المطلوب اولا معرفة حجم الصورة التي تستطيع Webcam التقاطها ، فاذا ادخلت رقم خطأ ، فستظهر لك رسالة بعدم الحصول على الصورة frame.bmp ، فرجاء تغيير هذه الارقام: width 1280 /height 720 فتجربتي على الكاميرتين كانا: Logitec HD c615 : 1920 x 1080 Creative Live (VF0610)e : 1280 x 720 وهذه قائمة بالاحجام العامة للكاميرات ، وانا انصح بالبدء بالحجم 640x480 ، وعند ظهور الصورة ، تستطيع ان تزيد الحجم بالتجربة: . 2. اذا عندك اكثر من Webcam ، مثلا تستخدم كاميرا اللابتوب واخرى خارجية ، فيجب تغيير الرقم الى 2: devnum 1 وهذا هو سطر الكود الذي يحتاج الى تغيير: cmmd = App_Location & " /devnum 1 /delay 1000 /width 1280 /height 720 /bmp" . وبما ان هذا البرنامج للتجربة ، فالرجاء ابداء ملاحظاتكم جعفر Camera_Scanner.zip2 points
-
يا جماعة يا استاذنا @jjafferr @ابو خليل @رمهان @صالح حمادي @أبو عبدالله الحلوانى @محمد ايمن @محمد سلامة @sandanet @ابا جودى @Elsayed Bn Gemy @عبد الفتاح كيرة @أبو إبراهيم الغامدي @أمير2008 وأي شخص اللي ما ذكرت اسمه ونسيته اطلب منكم جميعا لا تطمعوا علينا اعطينا ما عندكم الله يجزيكم خيرا اخوكم الصغير شفان ريكاني2 points
-
2 points
-
100% ويمكن استخدام أي فاصلة/فارزة ، بشرط عدم وجودها في القيم جعفر2 points
-
جزاك الله خير استاذى الفاضل على المعلومة2 points
-
اسمح لى البحث بدالة dlookup فى عشرة حقول فى جدول أو استعلام "code" بشرط [pn]=forms!frm_dataentry!Combopn الفاصل "|" لاستخدامه فى تقسيم الحقول بعد ذلك بدالة split و هى تطلب 1 - النص المراد تقسيمه 2 - علامة معينة تفصل عندها والعلامة هنا هى "|" بعد التقسيم ترجع عشرة قيم تخزن فى عشرة متغيرات فى المصفوفة نعيد إسنادها للحقول المطلوبة مرة أخرى2 points
-
أستاذ جعفر @jjafferr محتاج شرح الكود التالى بالتفصيل وخاصة حتة الفصل دى لأنى مش فاهمها نهائياً والعلامة '|' غير مألوفة Dim x() As String A = DLookup("[pn] & '|' & [Size] & '|' & [Vendor] & '|' & [Description] & '|' & [Maxrl] & '|' & [Maxrlegyptair] & '|' & [actype] & '|' & [pos] & '|' & [biasradial] & '|' & [code]", "code", "[pn]=forms!frm_dataentry!Combopn") x = Split(A, "|") ' For i = LBound(x) To UBound(x) ' Debug.Print x(i) ' Next i Me.pn = x(0) Me.size = x(1) Me.vendor = x(2) Me.Description = x(3) Me.Maxrl = x(4) Me.Maxrlegyptair = x(5) Me.ACType = x(6) Me.Pos = x(7) Me.BiasRadial = x(8) Me.code = x(9)2 points
-
2 points
-
انا لا أومن بالصدفة وانما هو تخطيط ربّاني والسبب قد يكون مثل ما قال أخي أوس بالفعل محترفين برمجيا وخُلقيا ، ومحترمين جداً وانا أشهد بأن الادارة ايضا هكذا ، وفي مقدمتهم الأستاذ المهندس @محمد طاهر صاحب الموقع ، والقلب النابض له ، وأوسعنا علماً ، وأبسطنا خُلقاً وكلما جار عليّ الدهر ، ألجأ الى الجدار المنيع وأخو الجميع ، أخونا العود @ابوخليل ، وبحكمته ترجع المياه الى مجاريها ، وبعلمه وإصراره يفتح لنا آفاق جديدة ، نتوسع فيها جعفر2 points
-
بالفعل طريقة مبتكرة لم اراها من قبل ولكن نحن نتكلم عن استاذ جعفر مش غريب عليه الابداع2 points
-
ان شاء الله تمام 100% تسلم ايدك يا استاذ رمهان الله يبارك فيك ماقصرت ..بالمناسبة انا حاولت تطبيق الدالة Replace من قبل بس ماوصلت لنتيجة لكن ما اتوقعتها اتكون بهذا الشكل المرعب ههههههه2 points
-
السلام عليكم احد اهم الحقول اللي عندك هو حقل الترقيم التلقائي ، والذي دائما سيعطي الرقم المسلسل لإدخالك ، فإستعماله سيحل لك المشكلة: Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer) Dim x() As String MX = DMax("[ID]", "Transactions", "[Qty in]<>0") DL = DLookup("[add_doc] & '|' & [zdate]", "Transactions", "[ID]=" & MX) x = Split(DL, "|") Me.Text53 = x(0) Me.Text48 = x(1) End Sub جعفر2 points
-
السلام عليكم ورحمة الله وبركاته اخوتي الاكارم تحية طيبة وبعد المثال المرفق يبين كيف نتمكن من جلب اكثر من صورة دفعة واحدة تأخذ كل صورة منها رقما متسلسلا في الجدول الفرعي ضمن رقم المعرف الرئيسي . يوجد في المثال : جدول tbl1 باعتباره جدولا فرعيا منبثقا من الجدول الرئيسي نموذج photo يمكن جعله نموذجا فرعيا لمن يجيد تحوير الكود المصاحب علما ان الافضل استخدامه كما هو ويتم جلب المعرف الرئيسي اليه في حقل خاص غير منضم مع الاخذ بالاعتبار فيما لو وجد صور سابقة بمعنى ان المثال يضيف صورا جديدة الى الصور القديمة ان وجدت وفي المثال تطبيق للمقال اكثر من صورة.rar1 point
-
هل ترغب بوضع ساعة في ورقة العمل الخاصة بك؟؟ يتم تحديثها كل ثانية مثل ساعة النظام تماما الحل تجده في المرفق لا تنسوا أخاكم محمد صالح من صالح دعائكم clock.rar الإصدار الأحدث ويوجد في المشاركة 14 من الموضوع clock3.rar والآن تم تطوير الملف بصورة أكثر احترافية ليعرض ساعة رقمية وساعة عقارب وإذا رغب أحبابي في الله يتم شرح فيديو للطريقة وخصوصا الساعة العقارب لا تحكم في رغبتك لعمل شرح إلا بعد مشاهدة هذا المرفق mas digital and analog clock.rar1 point
-
السلام عليكم اساتذتى الافاضل سنبدأ باذن الله موضوع الادوات المساعدة فى التصميم والموضوع مفتوح للجميع لأن الهدف من الموضوع اثراء المنتدى والفائدة تعم على الجميع نبدأ باسم الله بالاداة الأكثر من رائعة Find And Replace طبعا من المعروف ان خاصية البحث والاستبدال موجودة داخل الفاجوال بيسك والأكسس ولكن مزاياها ضعيفة جدا ولذلك تم تصميم هذه الاداة للبحث العميق داخل كل الكائنات الموجودة بقاعدة البيانات سواء نماذج او تقارير او استعلامات الخ... الشرح بالصور مضغوط فى المرفقات وذلك حتى لا تطول المشاركة بدون داعى بالنسبة للأداة مرفوعة على موقع دروب بوكس وذلك لكبر الحجم بالنسبة للمرفقات الرابط Replace.rar عتذر ان كان هناك سوء تنسيق ويرجع السبب لأن الموضوع تم تجهيزه فى عجالة بالنسبة للأداوت القادمة الشرح هيكون افضل ان شاء الله .. يتبع بأداة أخرى فى القريب ان شاء الله .... دمتم فى أمان الله لشرح.rar1 point
-
هو لخبيرنا استاذ @أبو إبراهيم الغامدي اللي اعتذر ان يشارك في هذا الموضوع وانت قد قمت بمشاركة بدل منه شكرا لكما1 point
-
اخواني الأعزاء انا من اشد المعارضين لأستخدام برامج خارجية مع الأكسس لأني مقتنع بأنه لايوجد شيء لايمكن عمله بالأكسس خصوصا اذا كان الموضوع تحت ايداي محترفه فسترى العجب العجاب هههههههه لكن لامشكلة من استخدام اي اداة بشكل مؤقت الى ان يتم ايجاد البديل لها في الاكسس على العموم كان هنالك مشاركة سابقة بخصوص موضوع تصغير الاكسس بجوار الساعة وقمت بتجربتها بنجاح وها انا اضعها مجدداً بين ايديكم .. في الحقيقة لا اذكر من قام بوضعها لكني ادعو الله ان يجزيه عنا خير الجزاء ولازلت متابع الموضوع اخونا Amr بصمت فسر على بركة الله .. نطمع في المزيد من الادوات السحرية لتصغير البرنامج بجوار الساعة.zip1 point
-
شاهد اخي الكريم المرفق التالي لا يمكنك الاضافة او التحديث الا عن طريق الفورم .. وبدون الفورم فالشيت المستخدم محمي لا يمكنك الاضافة به مباشرة او التعديل ارجو ان يفي بطلبك تقبل خالص تحياتي المصنف---.rar1 point
-
1 point
-
والف تحية لك سيدي انا اتفضل هذا على النقطة الثانية كما عملت لي في موضوع هدية سكرين ريليشن1 point
-
1 point
-
أضفت لك نموذج بحث يمكنه أن يتجاهل الاختلاف في الهمزة والياء والواو و ؤ لكن محتاج تجربة منك 11112.rar1 point
-
1 point
-
السلام عليكم عندى قاعدة بيانات استخدمت فيها الدالة Dlast لتخبرنى اخر تاريخ تم تسجيل المستندات فيه فى جداول معينة بالاضافة الى اخر رقم مستند تم تسجيله وكانت النتيجة جيدة فى الاول لكن تجمد التاريخ على يوم معين وحتى بعد التسجيل فى تواريخ لاحقة لا تتغير نتيجة الدالة ونفس المشكلة تظهر فى اخر رقم مستند تم تسجيله وليس فى التواريخ فقط مثال تم تسجيل مستندات بتاريخ 1 / 5 / 2017 ولكن الكود يظهر ان اخر تاريخ فى الجدول هو 19 / 3 / 2017 وتم تسجيل المستند رقم 005252 والبرنامج يعطى نتيجة ان اخر اذن هو 005000 والاكواد المستخدمة كالتالى : DLast("[Zdate]","Production","") =DLast("[zdate]","Transactions","[Qty in]<>0") =Nz(DLast("[Zdate]","Production","[client]='" & [client] & "'"),"لا يوجد") =DLast("[DocumentNumber]","Transactions","[Qty in]<>0") مش عارف سبب المشكلة دى ايه بس ممكن اتغلب عليها فى موضوع التاريخ باستبدال الدالة بدالة Dmax لكن بالنسبة لرقم المستند بيكون Short Text وبالتالى محتاج دالة Dlast لمعرفة اخر مستند تم تسجيله أية أفكار ؟؟1 point
-
اليوم موعدنا مع أداة صغيرة الحجم كبيرة المفعول ليست مساعدة فى التصميم ولكنها تساعد على سهولة استخدام الأكسس بصفة عامة أنا واحد من الناس تبعت جدا فى موضوع تصغير الاكسس بجوار الساعة وظهرت العديد من المشاكل فى الموضوع ولذلك بحثت فى المنتديات الأجنبية عن حل ووجدت هذه الأداة وهى RBTray ووظيفتها تصغير أى برنامج بجوار الساعة مع الايقونة المخصصة له وعند الضغط عليه يعود على الحال الذى تم تصغيره عليه بكل سرعة وبدون أدنى مشاكل تابعوا الصور ... الأداة فى المرفقات باصدارها 32 و 64 احتسب الأجر على الله .... دمتم فى أمان الله RBTray-4_3.zip1 point
-
برنامجك جميل وأستأنك في الاحتفاظ به واستخدام أجزاء منه وقت الحاجة وسأتابع تعديلاتك أكيد طبعا يمكن الترحيل لجدول مستقل لكن الأفضل يتواجد بالجدول مع اضافة حقل : انهاء (نعم/لا ) وفي الاستعلام تشترك أن يكون الموظف : حقل الانهاء : لا وفي حالة اعادته تقوم بازالة علامة الصح من الشيك بوكس لتتحول إلى لا1 point
-
استاذ امير تم التغير وتم التجريب والحمد الله تم حل المشكلة ولك من كل الشكر والاحترام والتقدير لشخصك الراقى الكريم1 point
-
1 point
-
1 point
-
اخي شيفان تحية لك وللاستاذ جعفر وبعد انا من يوم اشوف الاستعانة ببرنامج خارجي او مكتبات خارج الاكسس لا احب التجربة لانك لا تعلم ماذا بداخل هذه البرامج واحب ان اعمل برامجي دائما بواسطة اكسس 100% واذا خرج الموضوع عن الاكسس فاني اترك الاكسس نهائيا وانتقل لتقنية اخرى كما ان كمبيوتري هو للعمل وليس لدي صلاحية في التحميل والاعدادات وووو فاني استسمحكم العذر هذا وتقبلو تحياتي1 point
-
الحمدلله ، التجربة كانت ناجحة ، شكرا لكم هذا الرقم هو المدة بالثواني من وقت ضغطك على زر التقاط الصورة ، إلى وقت الانتهاء من كل شيء وعرض الصورة في النموذج جعفر الحجم 640x480 هو حجم افتراضي وتستطيع ان تجرب الرقم الاكبر فالاكبر ، حسب القائمة اللي ارفقتها في المشاركة. جعفر1 point
-
1 point
-
و عليكم السلام و رحمة الله وبركاته اكتب اسم العميل تظهر البيانات عمل وصل بمشتريات العميل - كود.rar1 point
-
في الواقع ، في الكثير من البرامج المجانية التي استعملها ، ولما اجد انها تعمل بالطريقة التي تخدمني ، فانا اذهب الى صفحة الشركة واضغط على زر Donate واتبرع بمبلغ ويكون هذا البرنامج خدمني أكثر من قيمته اضعافا جعفر1 point
-
هههههه اعتذر منك اصل الانترنت ملوث ولذلك احنا ماشيين على مبدأ ليه نشترى لما ممكن نجيبه ببلاش1 point
-
1 point
-
واذا ذكرت الافكار الجميلة ذكرت يا استاذى الفاضل نتيجة رائعة وده المتوقع جزاك الله خير وزادك من علمه :)1 point
-
منور استاذنا جعفر ولكن المشكلة انى عملت مرفقات كتير وكانت النتيجة مظبوطة ومفيهاش مشكلة وبالنسبة لقاعدتى كمان مكانش فيها مشكلة حتى وقت قريب وبدون تعديلات عليها من الأساس فلذلك انا بسأل عن سبب حدوث المشكلة ومع ذلك هحاول اعمل مرفق مصغر من قاعدتى فيها التقارير والجداول المرتبطة وبها المشكلة تقبل تحياتى1 point
-
فترة السماح بالتعديل تختلف بحسب المجموعة فى حالتك هي 180 دفيفة يمكن التعديل خلالها و بالنسبة لخيار اظهار تم التعديل ، فهو لا يمكن ربطه بوقت اما يتم تفعيله او لا اما بالنسبة للمعاينة فهذا الخيار غير متاح فى الوقت الحالي1 point
-
وعليكم السلام اعمل في جدولك حقلين ، حقل به الكلمات بالتشكيلة ، وحقل آخر للكلمات بدون تشكيلة ، في النموذج ، اعمل الحقل بدون تشكيله مخفي ، وفي الحدث بعد التحديث لحقل التشكيلة ، استخدم هذه الوحدة النمطية لإزالة التشكيلة ، وحفظ النتيجة في الحقل الآخر. الآن وقد اصبح لديك حقل بدون تشكيلة ، فإعمل البحث فيه (لا تنسى انه سيكون مخفي) ، ونتيجة البحث اجعلها تُعرض في حقل التشكيلة وهذه هي الوحدة النمطية ، وغيّر فيها كيف شئت (وللأسف ، لأن الكلمات بالعربية ، فدالة Replace عكست اماكن الخانات كما ترى ، ولكن الكود يعمل بطريقة صحيحة): Function Simplify(CW) On Error GoTo err_Simplify 'CW = Correct Word ' when we want to search, we write in simple words, ' simple words = words without hamza for example, ' so we want to avoid these letters ' If Left(CW, 2) = "وَ" Then CW = Replace(CW, "وَ", "") ' If Left(CW, 2) = "فَ" Then CW = Replace(CW, "فَ", "") ' CW = Replace(CW, "وَ", "") ' CW = Replace(CW, "وَ", "") CW = Replace(CW, "آ", "ا") CW = Replace(CW, "أ", "ا") ' CW = Replace(CW, "ؤ", "ا") ' CW = Replace(CW, "ؤ", "ء") CW = Replace(CW, "إ", "ا") ' CW = Replace(CW, "ئ", "ا") ' CW = Replace(CW, "ئ", "ء") ' CW = Replace(CW, "ى", "ا") 'CW = Replace(CW, "ة", "ه") CW = Replace(CW, "ّ", "") CW = Replace(CW, "ـ", "") CW = Replace(CW, "ً", "") CW = Replace(CW, "ٌ", "") CW = Replace(CW, "ٍ", "") CW = Replace(CW, "ُ", "") CW = Replace(CW, "ِ", "") CW = Replace(CW, "ْ", "") CW = Replace(CW, "َ", "") CW = Replace(CW, " ", "") CW = Replace(CW, "!", "") CW = Replace(CW, " ", "") CW = Replace(CW, "ٌ", "") CW = Replace(CW, " ", "") CW = Replace(CW, ".", " ") CW = Replace(CW, "-", " ") CW = Replace(CW, "[", " ") CW = Replace(CW, "]", " ") CW = Replace(CW, "(", " ") CW = Replace(CW, ")", " ") CW = Replace(CW, ",", " ") CW = Replace(CW, "_", " ") CW = Replace(CW, "¬", " ") CW = Replace(CW, ":", " ") CW = Replace(CW, "؛", " ") CW = Replace(CW, ".", " ") CW = Replace(CW, "،", " ") CW = Replace(CW, "«", " ") CW = Replace(CW, "»", " ") CW = Replace(CW, "{", " ") CW = Replace(CW, "}", " ") CW = Replace(CW, "§", " ") CW = Replace(CW, "ـ", " ") CW = Replace(CW, "1", " ") CW = Replace(CW, "2", " ") CW = Replace(CW, "3", " ") CW = Replace(CW, "4", " ") CW = Replace(CW, "5", " ") CW = Replace(CW, "6", " ") CW = Replace(CW, "7", " ") CW = Replace(CW, "8", " ") CW = Replace(CW, "9", " ") CW = Replace(CW, "0", " ") CW = Replace(CW, "~", " ") CW = Replace(CW, CrLf, " ") CW = Replace(CW, Lf, " ") CW = Replace(CW, Cr, " ") CW = Replace(CW, "*", " ") CW = Replace(CW, "؟", " ") CW = Replace(CW, "؛", " ") CW = Replace(CW, Chr(34), " ") CW = Replace(CW, "*", " ") CW = Replace(CW, "؟", " ") ' CW = Replace(CW, "؛", " ") ' CW = Replace(CW, "؛", " ") Simplify = CW Exit Function err_Simplify: If Err.Number = 94 Then 'null Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function جعفر1 point
-
السلام عليكم أخي محمد انا لن اتطرق لطريقة عمل النموذج الجديد ، "لأننا" لم نلحظ المشكلة في النموذج الاصل ولكني دخلت في كود Combopn_AfterUpdate : pn = DLookup("pn", "code", "[pn]=forms!frm_dataentry!Combopn") size = DLookup("Size", "code", "[pn]=forms!frm_dataentry!Combopn") vendor = DLookup("Vendor", "code", "[pn]=forms!frm_dataentry!Combopn") Description = DLookup("Description", "code", "[pn]=forms!frm_dataentry!Combopn") Maxrl = DLookup("Maxrl", "code", "[pn]=forms!frm_dataentry!Combopn") Maxrlegyptair = DLookup("Maxrlegyptair", "code", "[pn]=forms!frm_dataentry!Combopn") ACType = DLookup("actype", "code", "[pn]=forms!frm_dataentry!Combopn") Pos = DLookup("pos", "code", "[pn]=forms!frm_dataentry!Combopn") BiasRadial = DLookup("biasradial", "code", "[pn]=forms!frm_dataentry!Combopn") code = DLookup("code", "code", "[pn]=forms!frm_dataentry!Combopn") لاحظت انك تنادي الجدول (اي تعمل استعلام للجدول) 10 مرات !! انا دائما لما اعمل برامجي ، اعمل البرنامج على اساس انه سيكون عبارة عن جزئين ، الواجهة FE ، والجداول BE ، وان الجداول BE ، ستكون في شبكة ، وان الواجهة FE ستكون لأكثر من مستخدم. لهذا السبب ، فيجب ان نقلل الزحمة في الشبكة ، وذلك بتقليل زيارة/استعلام الجداول قدر الإمكان ، وعند كل زيارة ، يجب ان نأخذ اكبر كمية من البيانات المطلوبة ، ثم نتعامل معها محليا في FE. لذلك ، فانا هنا اعطيك احد البدائل (والتي لا يعرفها الكثير ، لأنها تعمل على الاكسس 2003 فما فوق) ، فالكود التالي ، يقوم بزيارة/استعلام الجدول عن طريق DLookup مرة واحدة ، ويأخذ 10 بيانات مرة واحدة ، فلذا يمكن ان يستبدل كودك اعلاه: Dim x() As String A = Nz(DLookup("[pn] & '|' & [Size] & '|' & [Vendor] & '|' & [Description] & '|' & [Maxrl] & '|' & [Maxrlegyptair] & '|' & [actype] & '|' & [pos] & '|' & [biasradial] & '|' & [code]", "code", "[pn]=forms!frm_dataentry!Combopn"),"|||||||||") 'ويمكن استعمال اي شيء بدل عن | فمثلا الفاصلة 'A حتى اذا لم هناك قيمة للمتغير Nz نستعمل الدالة 'عدد مرات وضع العلامة | في نهاية السطر ، يكون نفس عددها في المعادلة 'لهذا السبب نرى اننا وضعنا 9 منها في نهاية السطر x = Split(A, "|") ' For i = LBound(x) To UBound(x) ' Debug.Print x(i) ' Next i Me.pn = x(0) Me.size = x(1) Me.vendor = x(2) Me.Description = x(3) Me.Maxrl = x(4) Me.Maxrlegyptair = x(5) Me.ACType = x(6) Me.Pos = x(7) Me.BiasRadial = x(8) Me.code = x(9) جعفر1 point
-
أخى الحبيب / محمد أبو البراء بارك الله فيكم وعلي الأفكار الجميلة والجيدة والهادفة1 point
-
السلام عليكم ورحمة الله أخي الكريم، إضافة إلى ما تقدم به إخوتي الكرام إليك الحل التالي: - قم بتحديد الخلايا المطلوبة - من تنسيق الخلايا قم باختيار "أرقام" Numbers - اختر نوع الأرقام عادي "Standart" ثم بالتخصيص نختار "عام" General - وفي التخصيص نكتب أمام كلمة General الكتابة "0" فتصبح "0"General أنظر الملف المرفق (تطبيق هذه المراحل في نسخة 2003 بالفرنسية) أخوك بن علية 123.rar1 point