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

jjafferr

أوفيسنا
  • Posts

    10020
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    408

كل منشورات العضو jjafferr

  1. عادة لما تحصل على رسالة OLE Server فهذا معناه ان اعدادات الوندوز عندك تختلف عن اعدادات الوندوز التي تم عمل البرنامج عليها ، يعني البرنامج يستعمل خطوط لا يعرفها الوندوز الذي عنك. هذا الرابط يعطيك الحل جعفر
  2. 1. انت تريد التركيز يذهب الى السجل الاول ، وهذه هي الطرق: docmd.gotorecord,,acfirst او Me.Recordset.MoveFirst او Me.RecordsetClone.MoveFirst Me.Bookmark = Me.RecordsetClone.Bookmark . 2. بالنسبة الى الحقل/الكائن الذي سيكون عليه التركيز عندما يذهب الكود الى السجل الاول ، فيعتمد على الترتيب الذي انت وضعته ، الصورة المرفقة هي اعدادات الحقل "state/province" ، وترتيبها للتركيز عليها هو 4 (في الواقع 5 ، لأن الاكسس يبدأ حسابه من الرقم 0) ، وكلمة Yes التي تحت الرقم تدل على انك تريد ان يتوقف المؤشر عليها عند ضغطك على زر الكيبورد Tab او Enter ، هناك حالتين لا يتوقف عليها المؤشر ، اذا كتبت No في هذا الاعداد ، او كان الحقل/الكائن مخفي ، لذلك ، فتأكد ان السجل الاول فيه حقل اول توقف . 3. قد لا يكون المكان الصحيح لوضع هذا الكود في المكان الذي اخبرتك ، ولكن الكود صحيح ، فأنظر اين تضعه في المكان الصحيح جعفر
  3. وعليكم السلام واخيرا كاسر يعطينا سؤال سهل هذا السطر الاخير في الكود End If 'DCount اكتب وراه DoCmd.GoToRecord , , acfirst جعفر
  4. وعليكم السلام حسب المعلومات اللي اعطيتنا ، عرضنا الجواب ليش ما ترفق قاعدة بياناتك ، وتخبرنا بالضبط اللي تريده ، ونعمل لك التعديل حسب الحقول والبيانات عندك. جعفر
  5. السلام عليكم اهلا وسهلا بك في المنتدى رجاء مراعاة قوانين المنتدى: قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف هذا الموضوع سيتم غلقه ، فرجاء عمل موضوع جديد ، مع مراعاة الشروط اعلاه. جعفر
  6. السلام عليكم ورحمة الله وبركاته عملت على برنامج طباعة الهويات / الباجات ، وحبيت ان اشارككم تجربتي المؤسسة تملك جهاز طباعة الهويات / الباجات من نوع Fargo DTC550 ، وتم العمل على اكسس 2010 (ويمكن عمل هذه الخطوات على الاكسس 2003 ايضا). المعلومات المطلوبة للهوية: واجهة الهوية: الصورة ، الاسم ، القسم ، الوظيفة ، تاريخ الاصدار ، تاريخ الانتهاء ، رقم الموظف ، بالإضافة الى شعار المؤسسة وتوقيع المسؤول (الشعار والتوقيع فيهما اجزاء شفافه) ، وتوضع على جزء/طرف الصورة ، خلفية الهوية: باركود (بطريقة عمودية وليس افقية) يحمل رقم الموظف ، وصورة خلفية. على ان تطبع الهوية بالوضع الافقي ، وتُغلف (Lamination) كذلك. خطوات العمل: 1. عمل جدول يحتوي على البيانات اعلاه ، 2. عمل نموذج لإدخال بيانات الموظف ، واختيار صورته ، 3. لعمل التقرير (طباعة الهوية) ، يجب ان نعرف خصائص الطابعة ومقاسات الهوية ، 4. التقرير عبارة عن طبقتين ، حيث البيانات والصورة في الطبقة السفلى ، ويأتي شعار المؤسسة وتوقيع المسؤول في الطبقة الاعلى ، الصعوبات التي واجهتها: أ. إبراز الاجزاء الشفافة من الشعار والتوقيع ، بحيث نستطيع رؤية صورة الموظف خلفها ، ب. عمل الباركود ، والمطلوب ان يكون بطريقة عمودية وليس افقية (تصميم الهوية هكذا) ، ج. عمل مقاسات التقرير ، د. طباعة الهوية على الطابعة ، وجعل الصورة واضحة ، هـ. العمل على التقرير من جهاز لا يحتوي على برنامج الطابعة. طرق التغلب على الصعوبات: أ. شفافية الصور: مع انه المفترض ان يقبل الاكسس 2010 فما فوق ، الصور التي بأجزائها شفافية ، ولكن للأسف هناك خلل في الاكسس ، مما جعل التعامل مع الشفافية يتطلب جهدا اضافيا !! ولعمل الشفافية ، هناك العديد من الطرق ، ولكني وجدت افضل نتيجة عندما استخدمت الطريقة الموضحة هنا ، وللمثال سنستخدم صورة عملتها ، ونقوم بالتالي: نفتح الصورة في برنامج الصور مثل فوتوشوب photoshop ، ثم نختار الخلفية التي نريد ازالتها ، وهنا نريد ازالة الخلفية البيضاء . الخلفية البيضاء تم اختيارها . نعكس الاختيار ، حتى نختار الالوان الاخرى في الصورة (المناطق الغير شفافة) ، ثم نعمل نسخ Ctrl+c . نفتح صورة جديدة ، خلفيتها شفافة ، ونلاحظ ان الفوتوشوب اعطانا الصورة بنفس مقاييس الصورة التي نسخناها في الذاكرة . وهكذا تبدو الصورة بالخلفية الشفافة . لعمل الشفافية ، يجب ان نختار صيغ معينة من الصور والتي بإمكانها الاحتفاظ بالشفافية ، مثل Gif او png . هذه الاعدادات مهمة ، لأنها هي التي تحفظ شفافية الخلفية ، ونلاحظ اننا سنحفظ الصورة بصيغة Gif . ثم نفتح برنامج المايكروسوفت وورد ، ونفتح الصورة فيه ، ثم نضغط على الصورة ، وبزر الفأرة اليمين نعمل نسخ (هذه العملية هي التي ستجعل الاكسس يقبل شفافية الصورة) . نأتي للتقرير في الاكسس ، وبالفأرة اليمين ، نلصق الصورة (قد تحصل على رسائل خطأ ، ولكن واصل العمل) . الصورة في التقرير بعد اللصق ، ونلاحظ ان الصورة غير شفافة ، كما ان اعدادات الصورة لم تجعل خلفية الصورة شفافة (لاحظ السهم) . وعندما غيرنا اعدادات خلفية الصورة الى شفاف ، نرى ان الجزء الشفاف من الصور اصبح ظاهرا ، ونستطيع رؤية الصورة الخلفية من خلال المنطقة الشفافة . هذا معاينة للتقرير ، ونرى فيه الشفافية بوضوح . وهذه الصورة ذو الاجزاء الشفافة على الصورة الخلفية . ب. عمل الباركود: هناك العديد من المبرمجين يستعملون اداة ActiveX للباركود ، هذه الاداة محتاجة الى ملف dll او ocx والذي يجب وضعه في احد مجلدات الوندوز ، ثم تسجيل هذه الاداة في الوندوز. ولكن هناك العديد من المشاكل في هذه الاداة ، او في مكان حفظها (نظام 32بت يختلف عن 64 بت) ، او في تسجيلها او حتى في رقم اصدارها. كما ويجب ان تعمل جميع هذه الخطوات لكل كمبيوتر/مستخدم. لهذا السبب اتجهت للنظر الى طريقة اخرى. الطريقة البديلة والتي استعملتها ، هي التعامل مع الباركود كنوع من انواع خطوط الوندوز (Font) ، ولإستعمالها في الاكسس ، نستعمل حقل نص عادي ونختار له خط الباركود. وهناك الكثير من هذه الخطوط ، بمختلف انواع الباركود ، وانا اخترت استعمال code39 او (code 3 of 9) او (the 3 of 9 code) والذي يقبل الحروف والارقام ، ولم اقم بمقارنة او تجربة خطوط من انواع اخرى من الباركود. مبدئيا بدأت بإستعمال احد الخطوط ، ثم اتضح لي بأن ذلك الخط لا يستطيع ان يكتب الباركود اذا جعلت حقل النص عموديا!! وبعد بحث وتجارب ، استقر رأيي على الخط (code 3 de 9) والذي يمكن تنزيله بالمجان من هنا https://grandzebu.net/informatique/codbar/code39.ttf . وطريقة استعماله ، هي ادخال الرقم الوظيفي (حقل رقم او نص) في النموذج يكون مثلا 123456 ، وعندما نريد ان نرى الباركود ، فنستعمل حقل نص في النموذج او التقرير ، ونختار الخط اعلاه (انظر 4#) ، وحجم الخط 28 او اكبر (حسب تجربتي) ، ثم في اعدادات هذا الحقل ، في مصدر بياناته نكتب (Employee_ID هو حقل الرقم الوظيفي) : ="*" & [Employee_ID] & "*" 7. بإستخدام طريقتي اعلاه ، اتضح ان جهاز الباركود يقرأ 3 ارقام فأكثر (يعني يقرأ الارقام من 100 فما فوق) ، لهذا السبب ، ولتخطي هذه المشكلة ، نستخدم الكود التالي (و الشكر لحسن ناجح الذي اقترح هذه الطريقة 🙂 ) ، والذي يحول الارقام الاقل من 3 ، بإضافة اصفار قبلها (يعني 5 يصبح 005 وهكذا) : 'since the Barcode reader cannot read less than 3 digits, 'so lets add zeros before it, so that it becomes 3 digits long, 'but then, for the reading field, it must be INT If Len(Me.Emp_ID) < 3 Then Me.Barcode = "*" & Format([Employee_ID], "000") & "*" Else Me.Barcode = "*" & [Employee_ID] & "*" End If ** ولكن في وقت قراءة الباركود ، يجب ان تتم القراءة في حقل رقم ، مما سيلغي الاصفار تلقائيا ج. عمل مقاسات التقرير: لمعرفة ارتفاع وعرض التقرير ، وحجم حقول النص والخطوط المستعملة ، كان لازم علينا معرفة هذه التفاصيل من الطابعة ، يمكنك انزال برنامج تعريف الطابعة لتحديد مقاس الهوية من هنا https://www.hidglobal.com/sites/default/files/drivers/DTC550 Drv 3004.exe ) ومن حساب طول وعرض البطاقة 85.4 mm 53.7 x ، اتضح لنا ان اسم هذا الحجم هو CR-80 ، وعند اختيار الحجم الصحيح من الطابعة ، نحصل على المسافات/الهوامش التي تحتاجها الطابعة ، والتي يجب ان نستقطعها من طول وعرض التقرير ، وبهذا نحصل على الاطوال الحقيقة المتوفرة لطباعة الهوية ، هذه مواصفات الطابعة . وهذه اعدادات الطابعة . . وعليه ، استطعنا معرفة الاطوال الحقيقة المتوفرة لنا في التقرير ، بعد استقطاع هوامش الطابعة: . د. طباعة الهوية على الطابعة ، وجعل الصورة واضحة: ****رجاء قراءة الملاحظة في نهاية هذا الموضوع عادة لما نعاين تقرير فيه صورة ، فاننا نرى ان الصورة غير واضحة ، ولكن لما تتم عملية الطباعة على الورق ، نرى ان صورة اصبحت واضحة ، ولكن للأسف الشديد فإن الصورة عند طباعتها من تقرير الاكسس الى طابعة الهويات ، فإن الصورة لا تكون واضحة وتكون نوعا ما ، مثل صورة معاينة التقرير!! ولكن عند طباعة الهوية من برنامج الرسومات مثل فوتوشوب Photoshop ، فإن الصورة تكون واضحة ، فهذا معناه ان الاكسس بحاجة وسيط بين التقرير والطباعة!! وبعد البحث اخبرني احد اصحابي "شكرا اخي محمد نادر" والذي كان قد قام بطباعة الهويات قبلي بعدة اشهر ، ان افضل طريقة للطباعة على هذه الطابعة هي ان تطبع التقرير بصيغة xps ، ثم تفتح الصورة بواسطة xps viewer ، وتطبع الهوية من هناك ، وموقع مايكروسوف يُؤكد تفوق نوعية صور xps هذا https://msdn.microsoft.com/en-us/library/windows/hardware/dn641615(v=vs.85).aspx ، وتصبح الصورة هكذا وعليه ، تم استخدام هذا الامر لطباعة الهويات: Badge_Output = Application.CurrentProject.Path & "\Badges.xps" DoCmd.OutputTo acOutputReport, "rpt_Badges", acFormatXPS, Badge_Output, True, , , acExportQualityPrint هذا الكود يُنشئ ملف صورة بصيغة xps حسب المسار في الكود ، ويقوم بفتح هذه الصورة (هذا معناة True في الامر) بالبرنامج الافتراضي لها ، وهو xps viewer ، ثم تستطيع ان تطبع الصورة على الطابعة وتحصل على الهوية ، طبعا نكون قد عملنا اعدادت الطابعة لكي تطبع من جانبي الهوية ، وتعمل التغليف Lamination (شريط شفاف) من الجانبين ، الطباعة من الجانبين . والتغليف Lamination هـ. العمل على التقرير من جهاز لا يحتوي على برنامج الطابعة: احد المشاكل التي صادفتني هي العمل على التقرير من لابتوب/كمبيوتر غير متصل بالطابعة ، لأنه معروف ان تقرير الاكسس يأخذ هوامشه من اعدادات الطابعة ، فعليه تتغير هوامش التقرير بتغير الطابعة ، مما يؤدي الى الاخلال بهوامش الطابعة المستعمله في التقرير!! هوامش طابعة الهويات صغيرة جدا ، لهذا ، فالطابعات العادية لن تفيد لأن هوامشها على اساس A4 مثلا وكبيرة ، ولا تحتوي على حجم الهوية CR-80 هذا جعلني ابحث عن طابعة إفتراضية (virtual printer) والتي يجب ان تحتوي على حجم CR-80 ، وقد وجدت طابعة تطبع التقارير الى صور jpg او bmp و صور بصيغ اخرى https://code-industry.net/imageprinterpro/ واشتريها ، وقبل تنصيبها اتضح اني استطيع استعمال طابعة (Microsoft XPS Document Writer) والمتوفرة على الكمبيوتر مجانا واعداداتها تحتوي على حجم الورق المطلوب ---------------------------------------------------------------------------------------------- وتوضيح اكثر وهذه ملاحظات اضافية لها علاقة بالموضوع بطريقة غير مباشرة: . وهنا قاعدة بيانات يمكن انزالها ---------------------------------------------------------------------------------------------- اضافة في 28-7-2019: اعدادات الطابعة اعلاه تكون لطياعة هويات افقية ، من الجانبين ، وبالتغليف. ولكن ، بالاضافة الى طباعة الهويات اعلاه ، صارت هناك حاجة الى عمل هويات عمودية ، من جانب واحد وبدون تغليف. وطبعا بإمكاننا ان نتبع الخطوات اعلاه ، وقبل طباعة الهوية ، ندخل في اعدادات الطابعة ونغير في الاعدادات ، ونطبع ، ولكن هذه الطريقة غير عملية لطباعة مئات الهويات!! عليه ، الطريقة اللي اتبعناها لحل هذا الموضوع هو ، اعادة تنصيب الطابعة من جديد (يعني الطابعة تم تنصيبها سابقا ، بالاعدادات اعلاه ،والآن نقوم بتنصيبها مرة اخرى) وبدون استخدام CD التنصيب ، لأن بيانات الطابعة تكون موجودة في الكمبيوتر ، ونعطي الطابعة اسم جديد واعدادات اخرى. وعند طباعة الهوية العمودية ، في التقرير ، نقوم بوضع اسم الطابعة الاخرى ، او مؤقتا نقوم بجعل الطابعة الاخرى "طابعة افتراضية" ، وبعد الانتهاء من طباعة الهويات ، نقوم بتغيير الطابعة الافتراضية مرة اخرى 🙂 ---------------------------------------------------------------------------------------------- اضافة في 26-06-2024: اعدادات التقرير للطباعة على الطابعة اعلاه. ------------------------------------------------------------------------------------------------ اضافة 2024-11-13 : لاستعمال خط الباركود دون تنصيب على الكمبيوتر: . وكذلك اتضح ان الاكسس يمكنه طباعة الصور وبوضوح مباشرة الى الطابعة وبدون وسيط xps ، ولكن يجب تغيير اعدادات البرنامج الى: جعفر المرفق يحتوي على الخط code39.ttf ، و على ملف بصيغة mdb به الصورة اعلاه ، وبه مثال لإستعمال خط الباركود للارقام والحروف img_Frame.zip
  7. التغيير الذي عملته ، يجعله يعمل على الشبكة
  8. السلام عليكم وهذا تعديل من الاخ shod90 (شكرا اخي شادي) على ملف Seq.vbs ، بحيث يعمل الكود في المجلد الذي يكون فيه ، فلا يحتاج الى كتابة اسم المسار: dim fso: set fso = CreateObject("Scripting.FileSystemObject") dim CurrentDirectory CurrentDirectory = fso.GetAbsolutePathName(".") dim Directory Directory = CurrentDirectory & "\Seq.mdb" rem http://www.accessmvp.com/jconrad/accessjunkie/macrosecurity.html rem expression.OpenCurrentDatabase(filepath required, Exclusive optional, bstrPassword optional) dim o set o=createobject ("Access.Application") o.automationsecurity=1 ' set macro security LOW. o.opencurrentdatabase Directory o.usercontrol=true set o=nothing . جعفر
  9. تفضل طلبك ، البرنامج بعمل اخونا العود ابو خليل ، وبتعديل بسيط مني جعفر جعفر
  10. يا سلام عليك ، جبتها صح وراح اضيفها لموضوعي الاصل ، علشان الشباب يستفيدوا منها جعفر
  11. من يركب البحر ، لا يخشى من الغرق ولكن الجواب على سؤالك الاصل لا علاقة له بـ "التعقيد" وهنا اخونا العود ابو خليل يتكلم عن التحزيم (انا لم استعمل اي برامج تحزيم ، لذا فلا افهم فيها) ، في موضوع يخص سؤالك كذلك: جعفر
  12. خليني ما اتفاعل ولا اجر نفسي في سؤال جديد المهم ان طلبك تم تنفيذه والحمدلله جعفر
  13. ملف الـ vbs يمكنك عمله برمجيا ، وكذلك يمكنك التحكم برمجيا (commad line) في برنامج تحويل vbs الى exe ، وكلاهما تستطيع عمله بواسطة برنامج اكسس وسيط ، يعني اول ما تفتح برنامج التحزيم ، اجعل برنامج الاكسس الوسيط ينفتح ، ويطلب منك مسار التنصيب ، ومنها يقوم الاكسس بعمل الخطوات اعلاه برمجيا وعند انتهاء هذا البرنامج الوسيط من عمله ، اجعله يحذف نفسه ، او اجعل البرنامج الجديد عندما يفتح ، يحذف البرنامج الوسيط جعفر
  14. تستطيع ان تغير المسار كما تشاء ، هذا مجرد سطر ، وتقدر تكتبه بأي برنامج ، يعني تقدر تعمل هذه الاسطر جميعها برمجيا ، حسب المسار الذي يريده المستخدم جعفر
  15. حياك الله شو قصدك انعاش النموذج؟ جعفر
  16. وعليكم السلام اخي حسين ، انت تعرف جيدا ان المنتدى مفتوح لجميع الاعضاء ، فأي مرفق يوضع فيه ، يستطيع الاعضاء انزاله ، وهو لا يخالف قوانين المنتدى (وقد لا يعرف الاعضاء انك لا ترضى بإستعماله بدون إذنك ، لأنك لم تذكر ذلك في مشاركتك) ، والواجب عمله في اي مشاركة ، هي ارفاق عيّنة من قاعدة بياناتك ، وفيها فقط الجزئية التي تحتاج النظر فيها ، وبأقل قدر من البيانات. والآن الى حل موضوعك: رجاء اعطائي الروابط التي بها مرفقاتك (التي ارفقتها انت في الموضوع) والتي تريد حذفها. جعفر
  17. وعليكم السلام تفضل: me.New_Date= DateAdd("d",[Number of Days]-1,DateSerial(Year(Date()),Month(Date()),1)) اي التاريخ= DateAdd("d",[عدد ايام الحضور]-1,DateSerial(Year(Date()),Month(Date()),1)) جعفر
  18. جيد في الحدث Current ، اوقف كل الحدث ، ومجرد جرب msgbox "OK"
  19. بدل الفاصلة ، استخدم الفاصلة المنقوطة نظام الكمبيوتر عندي انجليزي فيستخدم الفاصلة ، بينما النظم العربية تحتاج الفاصلة المنقوطة جعفر
  20. عليكم السلام اولا تغير Private الى Public حتى تستطيع بقية كائنات الاكسس رؤيتها ، public Sub Form_Current() ثم تستعمل الكود التالي عند مناداة ذلك الحدث: Form_Forme_Fatora. وسيعطيك الاكسس جميع الخيارات التي تستطيع التحكم فيها لذلك النموذج ثم سترى Form_Current() ليصبح الكود عندك Form_Forme_Fatora.Form_Current() . جعفر
  21. وعليكم السلام الكود يجب ان يكون <> Date() - 1 او <>DateDiff("d",-1,Date()) جعفر
  22. وتغيير اخير ، إضافة عرض الحقول بغير بيانات ، الى الحقول التي بها بيانات ، وبهذه الطريقة الحقول دائما تملئ عرض التقرير عمل التجربة في تقرير جديد: . . جعفر 783.عرض تقرير.zip
  23. وعليكم السلام قام اخي @Shivan Rekany بالرد على نفس السؤال هنا: جعفر
×
×
  • اضف...

Important Information