نجوم المشاركات
Popular Content
Showing content with the highest reputation on 05/12/17 in مشاركات
-
صيغة الشفرة السابقة فيها بعض الطول! وهذا اختصارها 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
-
هو لخبيرنا استاذ @أبو إبراهيم الغامدي اللي اعتذر ان يشارك في هذا الموضوع وانت قد قمت بمشاركة بدل منه شكرا لكما1 point
-
اخواني الأعزاء انا من اشد المعارضين لأستخدام برامج خارجية مع الأكسس لأني مقتنع بأنه لايوجد شيء لايمكن عمله بالأكسس خصوصا اذا كان الموضوع تحت ايداي محترفه فسترى العجب العجاب هههههههه لكن لامشكلة من استخدام اي اداة بشكل مؤقت الى ان يتم ايجاد البديل لها في الاكسس على العموم كان هنالك مشاركة سابقة بخصوص موضوع تصغير الاكسس بجوار الساعة وقمت بتجربتها بنجاح وها انا اضعها مجدداً بين ايديكم .. في الحقيقة لا اذكر من قام بوضعها لكني ادعو الله ان يجزيه عنا خير الجزاء ولازلت متابع الموضوع اخونا Amr بصمت فسر على بركة الله .. نطمع في المزيد من الادوات السحرية لتصغير البرنامج بجوار الساعة.zip1 point
-
شاهد اخي الكريم المرفق التالي لا يمكنك الاضافة او التحديث الا عن طريق الفورم .. وبدون الفورم فالشيت المستخدم محمي لا يمكنك الاضافة به مباشرة او التعديل ارجو ان يفي بطلبك تقبل خالص تحياتي المصنف---.rar1 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
-
شكرا جزيلا لك أخي عبدالفتاح هذا الرابط في شرح عن هذه الطريقة وأحب ان اضيف هذا الرابط ، وهو إضافة أكثر من معيار لدالة Dlookup واخواتها جعفر1 point
-
برنامجك جميل وأستأنك في الاحتفاظ به واستخدام أجزاء منه وقت الحاجة وسأتابع تعديلاتك أكيد طبعا يمكن الترحيل لجدول مستقل لكن الأفضل يتواجد بالجدول مع اضافة حقل : انهاء (نعم/لا ) وفي الاستعلام تشترك أن يكون الموظف : حقل الانهاء : لا وفي حالة اعادته تقوم بازالة علامة الصح من الشيك بوكس لتتحول إلى لا1 point
-
احذف الوحدة النمطية openfile افتح الوحدة النمطية fileOpen وغير الأسطر : Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (ofn As OpenFileName) As Boolean Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _ "GetSaveFileNameA" (ofn As OpenFileName) As Boolean إلى : Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (ofn As OpenFileName) As Boolean Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _ "GetSaveFileNameA" (ofn As OpenFileName) As Boolean وجرب1 point
-
الله يكرمك أستاذنا جعفر. ده شرف لي. طالما عندي متسع من الوقت فإن شاء الله أكن معك . فعلا حاجة غريبة تواجد قدر كبير من خبراء حقيقيين بالأكسس بمنتدى واحد !! بس أكيد صدفة.1 point
-
1 point
-
1 point
-
اخي شيفان تحية لك وللاستاذ جعفر وبعد انا من يوم اشوف الاستعانة ببرنامج خارجي او مكتبات خارج الاكسس لا احب التجربة لانك لا تعلم ماذا بداخل هذه البرامج واحب ان اعمل برامجي دائما بواسطة اكسس 100% واذا خرج الموضوع عن الاكسس فاني اترك الاكسس نهائيا وانتقل لتقنية اخرى كما ان كمبيوتري هو للعمل وليس لدي صلاحية في التحميل والاعدادات وووو فاني استسمحكم العذر هذا وتقبلو تحياتي1 point
-
1 point
-
و عليكم السلام و رحمة الله وبركاته اكتب اسم العميل تظهر البيانات عمل وصل بمشتريات العميل - كود.rar1 point
-
1 point
-
سلمت يداك وفى غاية الامتنان لطول صبرك معى ومساعدتى سوف أقوم بتجربة القاعدة وإسمح لى أن اعود لحضرتك فى حال ان اردت الاستفسار عن ما يتعلق بها وتقبل خالص تحياتى1 point
-
1 point
-
بصراحة يا استاذ أمير ويشهد الله علي اني لازلت اتذكرك جيداً ودائماً ما اتفرج على اكوادك البرمجية التي كانت لدي واتعلم منها .. اتمنى وجودك المستمر معنا وعدم الانقطاع عن هذا المنتدى الرائع الذي فيه اساتذة محترفين ومحترمين جداً لم اكن اتخيل وجودهم مجتمعين هنا في مكان واحد .. حفظك الله واياهم اجمعين وبارك الله بكم على مجهوداتكم الرائعة . تحياتي1 point
-
منور استاذنا جعفر ولكن المشكلة انى عملت مرفقات كتير وكانت النتيجة مظبوطة ومفيهاش مشكلة وبالنسبة لقاعدتى كمان مكانش فيها مشكلة حتى وقت قريب وبدون تعديلات عليها من الأساس فلذلك انا بسأل عن سبب حدوث المشكلة ومع ذلك هحاول اعمل مرفق مصغر من قاعدتى فيها التقارير والجداول المرتبطة وبها المشكلة تقبل تحياتى1 point
-
'متغير لفتح سجلات الجدول الاول Dim rs1 As DAO.Recordset 'متغير لفتح سجلات الجدول الثاني Dim rs2 As DAO.Recordset 'متغير نصي لتخزين اسم الصورة Dim s1 As String 'شرط اذا كان حقل الموظف فارغا يعطي رسالة تنبيه و يخرج من الكود If IsNull(Me.Text11) Then MsgBox "يجب اختيار رقم الموظف اولا", vbCritical Exit Sub ' في حال تم اختيار رقم الموظف Else 'نفتح سجلات الجدول الاول table2 و تتم تصفية السجلات حسب رقم الموظف الذي تم اختياره من النموذج Set rs1 = CurrentDb.OpenRecordset("select * from table2 where table2.emp_id =" & Me.Text11) 'نفتح سجلات الجدول الثاني IETEM_NEM و تتم تصفية السجلات حسب رقم الموظف الذي تم اختياره Set rs2 = CurrentDb.OpenRecordset("select * from IETEM_NEM where IETEM_NEM.ITEM_NO =" & Me.Text11) 'حلقة دورانية للدوران على كافة سجلات جدول Table2 التي تم تحديديها برقم الموظف Do While rs1.EOF = False 'يستخرج اسم الصورة من الجدول table2 s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) 'Debug.Print s1 'السماح بالتعديل على الحقل ' الرقم 5 يرمز الى حقل اسم الصورة لان الترقيم يبدا من 0 و الحقل مسار الصورة رقمه 5 - اذا بدأنا عد الحقول من 0 rs1.Edit ' تعديل مسار الصورة ' اسم الصورة + ننسخ القيمة من الجدول الاول و نضيف اليها مسار الصورة rs1.Fields(5) = rs2.Fields(5) & "\" & s1 'تحديث الحقل rs1.Update 'الذهاب الى السجل التالي rs1.MoveNext 'تكرار دوران الحلقة Loop 'اعادة تحديث النموذج الفرعي بعد الانتهاء من تحديث مسار الصورة Form_form1.subform1.Requery End If s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) هذا السطر يحتوي على ثلاث دوال ساقوم بتقسيمها لسهولة الشرح InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare) هذا السطر يبحث في سلسلة نصية عن قيمة معينة ويعيد الينا مكان تواجد هذه القيمة هنا بحثت عن السطر المائل \ في الجدول table2 لاستخرج اسم الصورة وطبعا هذه الدالة تبدا البحث من نهاية القيمة مثلا C:\Users\pcHome\Desktop\All_Files\123\2017-05-11_02.55.07_11.jpg الدالة تبدا من الحرف g وتبحث عن السطر المائل \ وعندا ايجاده تعيد الينا مكان تواجده Len(rs1.Fields(5)) هذا السطر يعيد الينا طول احرف السلسة اي اننا هنا نعرف عدد الاحرف الموجودة في حقل اسم الصورة Right(rs1.Fields(5), عدد الاحرف ) هذا السطر يعيد الينا قيمة نصية من قيمة معينة مع تحديد عدد الاحرف المطلوب اعادتها حيث تبدا الدالة من يمين القيمة النصية المحددة مثلا right("ayman",3) ستعيد الدالة man وبدمج هذه الدوال الثلاثة يصبح ليدنا هذا الكود s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) تعيد الدالة من يمين الحقل مسار الصورة نص طول حروفه هو عدد طول حروف النص في حقل مسار الصورة - مكان السطر المائل في حقل مسار الصورة ارجو ان اكون قد وفقت في الشرح1 point
-
جزاك الله خيرا أستاذ ياسر بدون مجاملات ولا قصد لأي إنسان مشكلة بعض الأصدقاء هنا في المنتدى أن بعضهم لا يريد أن يتعلم ليفعلها بنفسه وإنما يريد أن يحصل على ما يريده جاهزا ولا يعلم أنه بهذه الطريقة يجعل نفسه أسيرا لمن يجيبه أو لا يجيب حسب ظروف كل مشارك وإذا بدأ كل صاحب موضوع بالبحث والتعلم أولا ما حدث مثل هذا الجدل غير المفيد لصاحبه او المجيب وفقنا الله جميعا لكل ما يحب ويرضى1 point
-
السلام عليكم عمل متميز اخى واستاذي ابو على واسمح لى بالمشاركة لعرض فكرة اخرى ولاثراء الموضوع اخلى الكريم يمكن ذلك ايضاً من خلال باستخدام معادلة للتنسيق الشرطي =IF($B3>TODAY(),IF($B3-TODAY()<=10,1,"")) تواريخ.rar1 point
-
هذه اول مشاركة لي فى المنتدى وكنت اريد عمل برنامج لادارة بيانات العملاء لشركة سفريات هل هذا الطلب مسموح هنا لو بمقابل مادى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
-
والدالة لأكثر من شرط ، وبطريقة سهلة: كل نوع من انواع الحقول له طريقة معينة للتعامل معه في الكود ، وهذا يجعل كتابة كود بأكثر من شرط ، صعب نوعا ما ، لذلك ، الطريقة التي اقترحها هي في التعامل مع كل نوع بسطر مستقل (انظر للمثال في الاسفل) ، مما لا يدع مجال للخطأ في السطر ، ثم نجمع الاسطر في سطر واحد ، وهذا السطر يكون مجموع الشروط : myCriteria = "[detach]='موظف'" myCriteria = myCriteria & " Or [iDate]=#29-05-2015#" myCriteria = myCriteria & " Or [Payment_Month]=#" & Me.txtMonth & "#" myCriteria = myCriteria & " Or [EmployeeID]=" & Me.EmployeeID 'myCriteria = myCriteria & " Or [ID]=12" a = DLookup("[myID]", "tbl_Employees", myCriteria) او myCriteria_1 = "[detach]='موظف'" myCriteria_2 = " Or [iDate]=#29-05-2015#" myCriteria_3 = " Or [Payment_Month]=#" & Me.txtMonth & "#" myCriteria_4 = " Or [EmployeeID]=" & Me.EmployeeID myCriteria_5 = " Or [ID]=12" myCriteria = myCriteria_1 & myCriteria_2 & myCriteria_3 & myCriteria_4 & myCriteria_5 a = DLookup("[myID]", "tbl_Employees", myCriteria) والشرح 'في الاسطر، ممكن استعمال والخلط بين 'Or او And 'كما يمكن استعمال اي سطر، و عدم استعمال اسطر اخرى، اي يمكن الخلط في استعمال الاسطر 'للمتغيرات الثابته 'نص myWhere = "[detach]='موظف'" myWhere = myWhere & " Or [ID]=12" 'رقم myWhere = myWhere & " Or [iDate]=#29-05-2015#" 'تاريخ 'للمتغيرات myWhere = myWhere & " Or [Employee_Name]='" & Me.Employee_Name & "'" 'نص myWhere = myWhere & " Or [EmployeeID]=" & Me.EmployeeID 'رقم myWhere = myWhere & " Or [Payment_Month]=#" & Me.txtMonth & "#" 'تاريخ a = DLookup("[myID]", "tbl_Employees", myWhere) جعفر1 point
-
السلام عليكم ورحمة الله أخي الكريم، إضافة إلى ما تقدم به إخوتي الكرام إليك الحل التالي: - قم بتحديد الخلايا المطلوبة - من تنسيق الخلايا قم باختيار "أرقام" Numbers - اختر نوع الأرقام عادي "Standart" ثم بالتخصيص نختار "عام" General - وفي التخصيص نكتب أمام كلمة General الكتابة "0" فتصبح "0"General أنظر الملف المرفق (تطبيق هذه المراحل في نسخة 2003 بالفرنسية) أخوك بن علية 123.rar1 point