اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

البحث في الموقع

Showing results for tags 'VBA'.

  • Search By Tags

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • Search By Author

نوع المحتوي


الاقسام

  • الترحيب
    • نرحب بزوار الموقع
  • قسم تطبيقات و لغات مايكروسوفت
    • منتدى الاكسيل Excel
    • قسم الأكسيس Access
    • منتدي الوورد Word
    • منتدى الباوربوينت
    • منتدى الاوتلوك Outlook
    • المنتدى التقني العام و تطبيقات الأوفيس الأخرى
    • إعلانات شخصية للأعضاء
    • قنوات تعليمية وإعلانات دورات تدريبية
  • إدارة المشاريع والبحث العلمي وعلوم البيانات
    • إدارة المشاريع ومحافظ المشاريع
    • البحث العلمي والإحصاء
    • الذكاء الإصطناعي و التنقيب فى البيانات
  • القسم العام
    • قسم الاقتراحات و الملاحظات
    • مشاركات المدونات
    • أوفيسنا على الفيسبوك

الاقسام

  • VBA Code Library
  • قسم الإكسيل
  • قسم الأكسيس
  • قسم الوورد
  • Project Management
  • Self development التطويرالذاتي
  • معلومات مفيدة
  • أدوات عامة

مدونات

  • M-Taher's Blog
  • مدونة محمد طاهر
  • Officena
  • اا الفاروق اا
  • ‎مدونة أخبار التكنولوجيا
  • M-Taher's Blog
  • يحيى حسين's Blog
  • خبور خير's Blog
  • Dr. AbdelMalek Abu Sheikh's Blog
  • m.hindawi's Blog
  • احمدزمان's Blog
  • الحسامي
  • مدونة أ / محمد صالح
  • yahiaoui's Blog
  • عبدالله المجرب's Blog
  • صيد الخواطر
  • حمادة عمر مدونة
  • مدونة جعفر
  • مدونة عادل حنقي
  • مجدى يونس: لمسة وفاء لمنتدى اوفيسنا
  • Excel Expert Financial&Accounting
  • مدونة اعمال ايقونات الماس لمنتدى اوفيسنا
  • رقائق فى دقائق
  • Shivan Rekany

ابحث عن النتائج فى ......

ابحث عن النتائج التي تحوي ....


تاريخ الانشاء

  • بدايه

    End


اخر تحديث

  • بدايه

    End


Filter by number of...

انضم

  • بدايه

    End


مجموعه


Job Title


البلد


الإهتمامات


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype

  1. هل تبحثون عن طريقة مرنة وقوية للتحكم في فتح وإغلاق النماذج في قواعد البيانات ؟ إليكم دالة NavigateForm الحل الأمثل لتبسيط إدارة فتح وإغلاق النماذج أو التبديل بين الفتح/والإغلاق بكفاءة عالية! ما هي دالة NavigateForm ؟ NavigateForm هي دالة تستخدم في وحدة نمطية عامة (Module) لإدارة النماذج بطريقة احترافية تقوم الدالة بـالآتي : إغلاق النموذج الحالي أو نموذج محدد فتح نموذج آخر بوضع عرض محدد (مثل العرض العادي - الحوار - التصميم - المخفي - . . . .. إلخ) التبديل بإغلاق نموذج وفتح أخر أو فتح نموذج أخر مع الابقاء على النموذج الأب مفتوح تطبيق فلاتر عبر WhereCondition لتحديد السجلات المعروضة تمرير بيانات إضافية عبر OpenArgs لتخصيص سلوك النموذج الدالة مثالية للمطورين اللي عايزين تنقل سلس بين النماذج مع تحكم دقيق في أوضاع الفتح والإغلاق سواء في تطبيقات بسيطة أو معقدة مميزات دالة NavigateForm مرونة عالية: تدعم إغلاق النموذج الحالي أو إغلاق نموذج محدد أو فتح نموذج بوضع معين أو الجمع بين العمليات دي في استدعاء واحد تعداد مخصص (FormOpenMode): يشمل كل أوضاع فتح النماذج الشائعة: - DefaultMode: الوضع الافتراضي - NormalMode: العرض العادي (Form View) - DesignMode: وضع التصميم (Design View) - DatasheetMode: عرض ورقة البيانات (Datasheet View) - PreviewMode: معاينة الطباعة (Print Preview) - LayoutMode: عرض التخطيط (Layout View) - AddMode: إضافة سجل جديد - EditMode: تعديل السجلات - ReadOnlyMode: القراءة فقط - HiddenMode: فتح النموذج في الوضع المخفي - DialogMode: فتح النموذج كحوار (يوقف تنفيذ الكود حتى الإغلاق) معالجة الأخطاء: تتضمن معالجة أخطاء مدمجة للتعامل مع حالات زي: - أسماء نماذج غير موجودة - محاولة إغلاق نموذج غير مفتوح - أخطاء تشغيل غير متوقعة التعامل مع الإغلاق اليدوي: الدالة بتتعامل بذكاء مع إغلاق النماذج يدويًا (مثل ضغط "X" في النافذة) وبتضمن إمكانية إعادة فتح النموذج بدون مشاكل منع الاستدعاءات المتكررة: بتمنع فتح النموذج مرتين بنفس المعاملات لو كان مفتوح بالفعل، مع إعادة تعيين السجل بعد كل عملية توثيق احترافي: الكود مرفق بتوثيق مفصل يشرح المعاملات و الأوضاع و وأمثلة الاستدعاء سهولة التكامل: يمكن استدعاؤها من أحداث النماذج (مثل أزرار OnClick) أو ماكرو أو كود VBA آخر دعم الفلاتر والبيانات الإضافية: بتسمح بتطبيق فلاتر عبر WhereCondition وتمرير بيانات مخصصة عبر OpenArgs الكود الكود متاح في وحدة نمطية عامة (basNavigateForm)، ويتضمن: تعداد FormOpenMode لتحديد أوضاع الفتح دالة IsFormPresent للتحقق من وجود النموذج دالة NavigateForm لإدارة فتح وإغلاق النماذج Option Compare Database Option Explicit ' متغير عام للتحكم في طباعة رسائل التصحيح Public DebugPrintEnabled As Boolean ' تعداد لتحديد أوضاع فتح النموذج Public Enum FormOpenMode DefaultMode = 0 ' الوضع الافتراضي (يفتح النموذج بإعدادات Access الافتراضية) NormalMode = 1 ' العرض العادي (Form View) DesignMode = 2 ' وضع التصميم (Design View) DatasheetMode = 3 ' عرض ورقة البيانات (Datasheet View) PreviewMode = 4 ' عرض معاينة الطباعة (Print Preview) LayoutMode = 5 ' عرض التخطيط (Layout View) AddMode = 6 ' وضع إضافة سجل جديد EditMode = 7 ' وضع تعديل السجلات ReadOnlyMode = 8 ' وضع القراءة فقط HiddenMode = 9 ' الوضع المخفي (Hidden) DialogMode = 10 ' وضع الحوار (Dialog) End Enum ' ======================================================================= ' الدالة: التحقق من وجود نموذج في قاعدة البيانات ' الوصف: ترجع True إذا كان النموذج موجودًا في قاعدة البيانات، وFalse إذا لم يكن موجودًا ' المعاملات: formName (String) - اسم النموذج المراد التحقق منه ' ' المؤلف: [ابو جودي - منتديات أوفيسنا] ' تاريخ الإنشاء: 24 مايو 2025 ' الإصدار: 2.1 ' ======================================================================= Public Function IsFormPresent(formName As String) As Boolean On Error Resume Next Dim formObj As Object Set formObj = CurrentProject.AllForms(formName) IsFormPresent = Not (formObj Is Nothing) ' طباعة نتيجة التحقق إذا كانت الطباعة مفعلة If DebugPrintEnabled Then Debug.Print "IsFormPresent: التحقق من النموذج '" & formName & "': " & IsFormPresent End If Set formObj = Nothing On Error GoTo 0 End Function ' ======================================================================= ' NavigateForm ' ' وصف: ' دالة عامة للتحكم في فتح وإغلاق نماذج Microsoft Access. تتيح إغلاق ' النموذج الحالي أو نموذج محدد، وفتح نموذج آخر بوضع محدد مع إمكانية ' تمرير بيانات إضافية عبر OpenArgs وتطبيق فلتر عبر WhereCondition. ' إذا كان النموذج المراد فتحه مفتوحًا بالفعل، يتم إغلاقه وإعادة فتحه ' بالوضع المحدد مع الحفاظ على OpenArgs وWhereCondition. ' ' المعاملات: ' - formToClose (اختياري، String): اسم النموذج المراد إغلاقه. ' - formToOpen (اختياري، String): اسم النموذج المراد فتحه. ' - openMode (اختياري، FormOpenMode): وضع فتح النموذج. ' - openArgs (اختياري، Variant): بيانات إضافية لتمريرها إلى النموذج المفتوح. ' - WhereCondition (اختياري، String): شرط فلترة لتحديد السجلات المعروضة. ' ' القيمة المرجعة: ' - Boolean: True إذا نجحت العملية، False إذا حدث خطأ. ' ' أمثلة: ' Call NavigateForm ' إغلاق النموذج الحالي ' Call NavigateForm("Form1") ' إغلاق Form1 ' Call NavigateForm("", "Form2", DialogMode) ' فتح Form2 كحوار ' Call NavigateForm("Form1", "Form2", AddMode) ' إغلاق Form1 وفتح Form2 لإضافة سجل ' Call NavigateForm("", "Form2", NormalMode, "CustomerID=123", "ID=123") ' فتح Form2 مع فلتر ' Call NavigateForm("Form1", "Form2", DialogMode, "Source=MainForm") ' إغلاق Form1 وفتح Form2 كحوار ' Call NavigateForm("", "Form1", DialogMode, , "ID=456") ' إغلاق Form1 وإعادة فتحه كحوار مع فلتر ' ' ملاحظات: ' - تأكد من وجود النماذج المحددة في قاعدة البيانات. ' - وضع DialogMode يوقف تنفيذ الكود حتى إغلاق النموذج. ' - وضع DesignMode قد يكون مقيدًا في قواعد البيانات المحمية. ' - استخدم المتغير العام DebugPrintEnabled لتفعيل طباعة رسائل التصحيح أثناء التجربة. ' - OpenArgs يمكن استخدامه في حدث OnLoad أو OnActivate للنموذج لمعالجة البيانات الممررة. ' - يمكن استدعاء الدالة من ماكرو باستخدام RunCode: NavigateForm() ' - إذا كان النموذج مفتوحًا، سيتم إغلاقه وإعادة فتحه بالوضع المحدد. ' - WhereCondition يتم تطبيقه عند فتح النموذج. ' - يتم منع الاستدعاءات المتكررة بنفس المعاملات فقط إذا كان النموذج مفتوحًا. ' - يتم إعادة تعيين سجل الاستدعاء بعد نجاح أو فشل العملية. ' ' المؤلف: [ابو جودي - منتديات أوفيسنا] ' تاريخ الإنشاء: 24 مايو 2025 ' الإصدار: 2.1 ' ======================================================================= Public Function NavigateForm(Optional ByVal formToClose As String = "", _ Optional ByVal formToOpen As String = "", _ Optional ByVal openMode As FormOpenMode = DefaultMode, _ Optional ByVal openArgs As Variant = Null, _ Optional ByVal WhereCondition As String = "") As Boolean On Error GoTo ErrHandler ' متغير ثابت لتتبع آخر استدعاء Static lastCall As String Dim currentCall As String currentCall = formToClose & "|" & formToOpen & "|" & openMode & "|" & IIf(IsNull(openArgs), "Null", openArgs) & "|" & WhereCondition ' التحقق من التكرار: نتجاهل فقط إذا كان النموذج مفتوحًا ونفس المعاملات If currentCall = lastCall And formToOpen <> "" Then If IsFormPresent(formToOpen) And CurrentProject.AllForms(formToOpen).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: تجاهل استدعاء متكرر بنفس المعاملات: " & currentCall End If NavigateForm = True Exit Function End If End If ' تحديث lastCall lastCall = currentCall ' افتراض النجاح NavigateForm = True ' طباعة المعاملات عند دخول الدالة If DebugPrintEnabled Then Debug.Print "NavigateForm: استدعاء الدالة مع المعاملات - formToClose: '" & formToClose & "', formToOpen: '" & formToOpen & "', openMode: " & openMode & ", openArgs: " & IIf(IsNull(openArgs), "Null", openArgs) & ", WhereCondition: '" & WhereCondition & "'" End If ' إذا لم يتم تمرير أي معاملات، أغلق النموذج الحالي If formToClose = "" And formToOpen = "" Then If Not Screen.ActiveForm Is Nothing Then If DebugPrintEnabled Then Debug.Print "NavigateForm: إغلاق النموذج الحالي '" & Screen.ActiveForm.Name & "'" End If DoCmd.Close acForm, Screen.ActiveForm.Name, acSaveNo ' إعادة تعيين lastCall بعد الإغلاق lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: لا يوجد نموذج حالي مفتوح" End If End If Exit Function End If ' التحقق إذا تم تمرير اسم نموذج للإغلاق If formToClose <> "" Then If IsFormPresent(formToClose) Then If CurrentProject.AllForms(formToClose).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: إغلاق النموذج '" & formToClose & "'" End If DoCmd.Close acForm, formToClose, acSaveNo ' إعادة تعيين lastCall بعد الإغلاق lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToClose & "' غير مفتوح" End If End If Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToClose & "' غير موجود" End If MsgBox "النموذج '" & formToClose & "' غير موجود في قاعدة البيانات.", vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الفشل lastCall = "" Exit Function End If End If ' التحقق إذا تم تمرير اسم نموذج للفتح If formToOpen <> "" Then If IsFormPresent(formToOpen) Then ' إذا كان النموذج مفتوحًا بالفعل، أغلقه If CurrentProject.AllForms(formToOpen).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToOpen & "' مفتوح بالفعل، سيتم إغلاقه" End If DoCmd.Close acForm, formToOpen, acSaveNo End If ' فتح النموذج بالوضع المحدد If DebugPrintEnabled Then Debug.Print "NavigateForm: فتح النموذج '" & formToOpen & "' بوضع " & openMode & IIf(IsNull(openArgs), "", ", openArgs: " & openArgs) & IIf(WhereCondition = "", "", ", WhereCondition: " & WhereCondition) End If Select Case openMode Case NormalMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, , , openArgs Case DesignMode DoCmd.OpenForm formToOpen, acDesign, , WhereCondition, , , openArgs Case DatasheetMode DoCmd.OpenForm formToOpen, acFormDS, , WhereCondition, , , openArgs Case PreviewMode DoCmd.OpenForm formToOpen, acPreview, , WhereCondition, , , openArgs Case LayoutMode DoCmd.OpenForm formToOpen, acLayout, , WhereCondition, , , openArgs Case AddMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormAdd, , openArgs Case EditMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormEdit, , openArgs Case ReadOnlyMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormReadOnly, , openArgs Case HiddenMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, , acHidden, openArgs Case DialogMode DoCmd.OpenForm formToOpen, , , WhereCondition, , acDialog, openArgs Case Else DoCmd.OpenForm formToOpen, , , WhereCondition, , , openArgs End Select ' إعادة تعيين lastCall بعد فتح النموذج lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToOpen & "' غير موجود" End If MsgBox "النموذج '" & formToOpen & "' غير موجود في قاعدة البيانات.", vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الفشل lastCall = "" Exit Function End If End If Exit Function ErrHandler: If DebugPrintEnabled Then Debug.Print "NavigateForm: حدث خطأ: " & Err.Description End If MsgBox "حدث خطأ: " & Err.Description, vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الخطأ lastCall = "" End Function طريقة الاستخدام إنشاء الوحدة النمطية: افتح محرر VBA في (Alt + F11) أنشئ وحدة نمطية جديدة (Insert > Module) انسخ الكود أعلاه والصقه في الوحدة احفظ الوحدة النمطية باسم : basNavigateForm استدعاء الدالة: يمكن استدعاء NavigateForm من أحداث النماذج (مثل OnClick لزر) أو ماكرو أو كود VBA آخر أمثلة الاستدعاء: ' إغلاق النموذج الحالي Call NavigateForm ' إغلاق نموذج محدد Call NavigateForm("Form1") ' فتح نموذج في وضع الحوار Call NavigateForm("", "Form2", DialogMode) ' إغلاق Form1 وفتح Form2 في وضع إضافة سجل Call NavigateForm("Form1", "Form2", AddMode) ' فتح نموذج مع فلتر Call NavigateForm("", "Form2", NormalMode, , "CustomerID=123") ' فتح نموذج مع OpenArgs Call NavigateForm("", "Form2", DialogMode, "Source=MainForm") ' فتح نموذج مخفي Call NavigateForm("", "Form2", HiddenMode) ' فتح نموذج في وضع التصميم Call NavigateForm("", "Form2", DesignMode) ' فتح نموذج في عرض ورقة البيانات Call NavigateForm("", "Form2", DatasheetMode) وأخيـــــرا مرفق بسيط للتجربة NavigateForm (V2.1).accdb
  2. اعرض الملف 🎁 :: مرسال الواتسأب :: 📨 :: الإصدار الثاني 2.0 :: مطور :: 🧬🏹 السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والرائعة (مرسال الواتسأب) مع المرفقات مرسال الواتسأب مع المرفقات | سلسلة هدايا الأكسس | 03| 🎁 وهو عبارة عن برنامج صغير لإرسال الرسائل للواتسأب مع المرفقات .. :: من مميزات هذا الإصدار :: - إرسال رسائل فردية أو جماعية عن طريق برنامج الواتسأب . - لا يحتاج لبرنامج الإنترنت إكسبلورر لفتح الواتسأب. - لا يغلق مفتاح الـ NumLock بعد الإرسال. -تم اختصار الكود في موديول واحد ودالة واحدة تقوم بعملية الإرسال بعدة خيارات . - لو أردت تطبيق الكود في برنامجك الخاص ستحتاج لنقل الموديول إلى برنامجك + سطر برمجي واحد فقط لعملية الإرسال. :: شرح البرنامج :: :: لتحميل البرنامج :: صاحب الملف Moosak تمت الاضافه 30 مار, 2023 الاقسام قسم الأكسيس
  3. السلام عليكم الأخوة المبتدئين في برمجة اكسس هذا اقتطته من برنامج عملاق لأحد الاخوة المبرمجين وهو مقدم هدية مجانية اضعه بين ايديكم للاستفادة منه من حيث التصميم ومن حيث الاكواد وهو نسخة مجانية وليس مخصص للبيع 1- تعبئة بيانات الشركة الخاصة بك 2- تعبئة بيانات الموردين 3- تعبئة سيندات الدفع جربوه ووافوني بالنتائج SANADAT 2025.accdb
  4. السلام عليكم ورحمة الله وبركاته 🌹 درسنا اليوم عن طريقة عمل قوائم ديناميكية متحركة بأقل عدد من الأكواد وطريقة مبتكرة . 🙂 النتيجة النهائية : الشرح : تحميل الملف : Dynamic Menus.accdb
  5. :: السلام عليكم ورحمة الله وبركاته :: لا بد بين فترة وأخرى من اقتحام مجالات جديدة وتنمية المهارات البرمجية لدى للمبرمج 🙂 هذي المرة طرح أخي @TQTHAMI فكرة برنامج للكلمات المتقاطعة ، فلمعت في رأسي الفكرة وقررت خوض التجربة فنتج عنها ما يلي☺️ :: ((( لعبة الكلمات المتقاطعة ))) :: وهنا بعض الصور واللقطات للعبة إضافة لعبة جديدة وتصميمها :: وأخيرا تحميل الملف المفتوح 😊 :: لعبة الكلمات المتقاطعة.accdb :: ((( الإصدار الثاني 2.0 ))) :: أضفت زرين في نافذة إعداد اللعبة : طباعة اللعبة / طباعة الحل : التحميل 🙂 : ‏‏لعبة الكلمات المتقاطعة الإصدار 2.accdb1.63 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 0 downloads
  6. مرحبا القصة هي: كنت بحاجة إلى أحد برامجي القديمة التي كنت بحاجة إلى استخدامها في تطبيقي الجديد. أدركت أنني نسيت رمز بيئة ترميز VBA في MS Access! كانت القصة فظيعة بعد المراجعة ، أدركت أنني فقدت الملف الذي يحتوي على كلمات المرور. الآن أحتاج إلى مساعدة لفتح كلمة المرور.
  7. السلام عليكم كنت ابحث عن برنامج على جهازي الكمبيوتر بالصدفة وجدت هذا الملف الرائع احببت المشاركة معكم للفائدة اكواد كسس مهمة.rar
  8. Version 1.0.0

    380 تنزيل

    السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والرائعة (مرسال الواتسأب) مع المرفقات مرسال الواتسأب مع المرفقات | سلسلة هدايا الأكسس | 03| 🎁 وهو عبارة عن برنامج صغير لإرسال الرسائل للواتسأب مع المرفقات .. :: من مميزات هذا الإصدار :: - إرسال رسائل فردية أو جماعية عن طريق برنامج الواتسأب . - لا يحتاج لبرنامج الإنترنت إكسبلورر لفتح الواتسأب. - لا يغلق مفتاح الـ NumLock بعد الإرسال. -تم اختصار الكود في موديول واحد ودالة واحدة تقوم بعملية الإرسال بعدة خيارات . - لو أردت تطبيق الكود في برنامجك الخاص ستحتاج لنقل الموديول إلى برنامجك + سطر برمجي واحد فقط لعملية الإرسال. :: شرح البرنامج :: :: لتحميل البرنامج :: من المرفقات
  9. السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والرائعة (مكتبة الأكواد الخاصة) :: الإصدار الثالث :: مكتبة عامرة بمئات الأكواد VBA داعمة للمبرمجين وجزء لا يتجزأ من عملهم. تختصر الوقت وتسهل العمل على مصممي البرامج. وهي مكتبة عامة يمكن استخدامها لأي لغات برمجية أخرى . من مميزات المكتبة : - أكثر من 360 كود ودالة في مختلف الفنون والمجالات . - قابلة لحفظ مرفقات مع الكود لدعم التطبيق. - يمكنك إضافة أكوادك الخاصة لتكون مكتبة داعمة لكل مبرمج. - سهلة الاستخدام . تحميل المكتبة : مكتبة الأكواد الخاصة zip.zip ولا تنسوني من صالح دعواتكم 🙂🌹
  10. السلام عليكم ورحمة الله وبركاته اخواتي فى الله احتاج مساعده لحل مشكلة اللغة العربية في msgbox التى لا تظهر باللغة العربية علي شاشة المستخدم في اكسس
  11. احبتي ما زلت اعمل على المثال المشكلة الحاصلة هي بسببين : 1- لوحة المفاتيح والأمر sendkeys .. احيانا وداخل الاجراء تتحول الى off فيختل ترتيب الأوامر وقد عالجت المشكلة باستخدام كود يجعل لوحة المفاتيح بوضع ON خلال تنفيذ الكود 2-ملاحظة غريبة بعد ترقية واتساب لم اكن اشاهدها في النسخة القديمة وهي ظهور مربع حوار اختيار المرفق ولصق رابط الصورة ثم اختيار الصورة ثم اسقاطها في واتساب . كل هذا يحدث آليا امام عيني بواسطة الاوامر المتكررة من sendkeys وهذا مزعج وغير احترافي وقد عالجت المشكلة واستبدلت الأوامر بامر واحد وهو اللصق مباشرة باستخدام Ctrl+V وقد نجحت الفكرة واختصرنا عدة حركات والتي كانت هي السبب المباشر في هذا الخلل طبعا استخدمت وحدتين نمطيتين واحدة للنسخ والاخرى للصق ، ولكني توقفت بسبب جودة الصورة .. حيث تظهر دقة الصورة رديئة وبحثت عن حلول فوجدت الحل الشافي ودقة 100% في طريقة الاستاذ جعفر وهي الاستعانة ببرنامج خارجي مساعد للنسخ ولكني افكر فيمن يريد توزيع برنامجه على نطاق واسع بحيث يلزم من يستخدم البرنامج تحميل برنامج الصور المساعد لذا سأنتظر لعلي اجد حلا لجودة الصورة المنسوخة ، والا سوف ارفعه حسب الطريقتين
  12. بسم الله الرحمن الرحيم تحت شعار كنت قد رفعته سابقا "أتمنى وجود جيل من المبرمجين العرب قادر على الابتكار والمنافسة" أبدأ معكم إخوتي وأحبابي نظرا لما وجدته في الإخوة والأساتذة المهتمين (مثلي) ببرمجة وتصميم المواقع وبرمجة الأكسس والفيجوال بيسك من الاهتمام بالأداة التي تقوم بتحويل قواعد البيانات أكسس إلى ملف sql يمكن استيراده من داخل phpmyadmin ويتم التعامل معه على أنه قاعدة بيانات mysql ونظرا لما لاحظته من الرغبة في عمل البرنامج كمحول لقواعد بيانات mysql المتمثلة في ملف sql وتحويله إلى قاعدة بيانات أكسس توكلت على الله واستعنت به على قضاء حاجتي وحوائج إخواني وأخواتي واليوم أعرض لكم برنامج محول الماس لقواعد بيانات أكسس و ماي إس كيو إل (الإصدار الأول) حيث يحول البرنامج قواعد بيانات أكسس إلى mysql بمجرد الضغط على الزر واختيار قاعدة البيانات المطلوب تحويلها ويقوم أيضا بتحويل ملف sql إلى قاعدة بيانات أكسس وبها الجداول والسجلات الموجودة في ملف sql وبانتظار ملاحظاتكم واقتراحاتكم لتطوير هذه الأداة حجمها 208 كيلو بايت التي تقوم بعمل برنامج DBConvert for Access & MySQL والذي ثمنه 79 دولار وحجمه 17.5 ميجا بايت تقريبا وهذه صفحته وفقنا الله وإياكم إلى كل ما يحبه ويرضاه أخوكم أبو عبد الله محمد صالح mas-access&mysql-converter.rar
  13. السلام عليكم و رحمة الله تعالى وبركاته أساتذة و خبراء منتدانا الغالي حياكم الله أردت أن أنجز عمل بمعيتكم الكريمة . و هو إنجاز سلسلة دروس في vba الأكسس لتقوم إدارة المنتدى من بعد ذلك بتثبيت هذا الموضوع ليطلع عليه كل من يريد التعلم و يبقى صدقة جارية لكل من ساهم فيه و لو بحرف واحد. العمل سوف يقسم إلى مجموعة دروس مثلا : المتغيرات ,الجمل الإختيارية , الجمل التكرارية , الكائنات ......الخ. و سوف نحاول شرح جميع دوال و تعليمات VBA أكسس الموجودة مع إعطاء أمثلة في نهاية كل درس. على أن يتم تجميعه في الأخير مرتبا حسب تسلسل الدروس و لا يتم الإنتقال من درس لآخر حتى نستوفي كل ما نستطيع حول هذا الدرس. العمل المطلوب: كلما نبدأ في درس جديد. يقوم الأساتذة الكرام بتقديم الدوال و التعليمات التي تندرج تحت عنوان هذا الدرس و تقديم شرحها مع وضع مثال بسيط لإستعمال الدالة أو التعليمة على أن لا يتم تكرار الدوال و التعليمات الموجودة مسبقا في الدرس من قبل أحد الأعضاء. و قبل البدء أنتظر إقتراحاتكم فيما يخص طريقة العمل أو ترتيب دروس و عناوينها. و إن شاء الله غدا أو بعد غد سوف نبدأ بالعمل على بركة الله.
  14. السلام عليكم اخواني الاعزاء كود بسيط لمنع التكرار نحتاجة في معظم برامجنا مرفق قاعدة البيانات حدث قبل التحديث منع التكرار.accdb
  15. السلام عليكم ورحمة الله وبركاته 🙂 اليوم بفضل الله تعلمت شي جديد وحبيت أحطه في تطبيق عملي مباشرة ً .. 😎 وفي نفس الوقت حبيت أشارككم الفائدة 😄 معلومة اليوم تتحدث عن الحدث : Form.Repaint للنموذج ويمكن كتابته هكذا Me.Repaint ووضيفته مشابهة للـ DoEvents تقريبا إلا أنه مع التجربة والمقارنة وجدته أسرع في التنفيذ . معناه الحرفي ( إعادة الرسم ) ووضيفته بشكل عام هو إظهار أي تحديثات معلقة للنموذج في أثناء تنفيذ أي حدث 😁 .. وللمزيد من المعلومات هنا ستجدون رابط الشرح من مايكروسوفت : <<< اضغط هنا >>>> المهم .. هذا تطبيقي على الحدث وتكمن في تحريك الأزرار عند الضغط عليها بشكل يضفي طابع جمالي وجديد للنماذج 🙂 ( قد لا تبين حركة الأزرار العلوية في الصورة التوضيحية .. لذلك سترونها بوضوح من خلال الملف المرفق 😁 ) وهذا شكلها في الأكواد المستخدمة : Function AnimateBtns1() Dim x As Integer Dim y As Integer For x = 1 To 6 Me("b" & x).Visible = True For y = 1 To 35 Me("b" & x).Top = Me("b" & x).Top + y Me.repaint Next y For y = 1 To 35 Me("b" & x).Top = Me("b" & x).Top - y Me.repaint Next y Me.repaint Next x End Function Function AnimateBtns2() Dim x As Integer Dim y As Integer For x = 1 To 6 For y = 1 To 35 Me("c" & x).Top = Me("c" & x).Top + y Me.repaint Next y Me.repaint Next x For x = 1 To 6 For y = 1 To 35 Me("c" & x).Top = Me("c" & x).Top - y Me.repaint Next y Next x End Function تحياتي 🙂 ✌️🌷🌹 حركة الأزرار.accdb
  16. السلام عليكم ورحمة والله تعالى وبركاته طيب ببساطه انظر للسلسلة النصية الاتية "Moh8202281012343434" ونريد التعديل عليها لتظهر بهذا الشكل "Moh-820-228-101-234-343-4" او بهذا الشكل "Moh,820,228,101,234,343,4" او بهذا الشكل Moh820/228101/234343/4 يتم عمل ذلك من خلال الكود الاتى Function ReFormat(ByVal strText As String, Optional strSymbol As String = "-", Optional intCountDigits As Integer = 3) Dim i As Long ReFormat = "" For i = 0 To Len(strText) - 1 Step intCountDigits If i = 0 Then ReFormat = Mid(strText, i + 1, intCountDigits) Else ReFormat = ReFormat & strSymbol & Mid(strText, i + 1, intCountDigits) End If Next i End Function syntax code ReFormat(string ,Symbol, Count Digits) Result By default syntax used ReFormat(string) Symbol >-->> - Count Digits >-->> 3 اذا من خلال استدعاء الكود عن طريق البنية المفضلة الاتية: ReFormat(string) تحصل على اضافة العلامة - بعد كل 3 مواضع فى السلسلة النصية اما اذا اردت التعديل فى شكل الرمز وعدد المواضع يمكنك استخدام الكود الاتى : ReFormat(string ,Symbol, Count Digits) مثلا لو اردت استخدام الرمز $ بدلا من الرمز - وتريد وضع الرمز فى السلسلة النصية بعد كل خمس مواضع يكون الكود كالأتى: ReFormat(string ,"$", 5)
  17. السلام عليكم ورحمة الله وبركاته هذا ناتج تمرين اليوم على البرمجة VBA 🙂 :: آلة حاسبة :: أهديكموها مفتوحة المصدر 😊🎁 ملاحظة : تم إضافة خاصية الحساب عن طريق مفاتيح الكيبورد 😊 مع حل مشكلة الأرقام العشرية 😁 آراؤكم ودعواتكم 😉 Moosak Calculator V1.1.accdb
  18. Version 1.0.0

    679 تنزيل

    بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته كل عام أنتم بخير وسعادة ورضا ************** موعدنا اليوم مع ملف يحتاجه كل مهتم ببرمجة الأكسس في إرسال رسائل بريد للعملاء أو المستخدمين ====== مباشرة بدون استخدام برنامج outlook من خلال CDO وكذلك باستخدام outlook --------------------------- بالنسبة لاستخدام cdo يجب إدخال عنوان بريدك في gmail وكلمة مروره في المكان المخصص في الكود مع استعمال جميع المميزات /////////////////////////////////////////////// وبالنسبة لمن يستخدم outlook يجب أن يكون تطبيق اوتلوك مثبت على الجهاز ومفعل مع استعمال جميع المميزات ****************************** يوجد بالملف كود للتأكد من الاتصال بالانترنت من عدمه وكذلك لفتح صندوق حواري اختيار ملفات ********************** الكود يعمل على كل إصدارات الأوفيس دمتم في رعاية الله وحفظه والقادم أفضل إن شاء الله
  19. لكل عشاق الحديث في برمجة الأوفيس المتقدمة VBA يسعدني أن أقدم لكم شرح كود ترجمة جوجل 2019 في فيجوال بيسك للتطبيقات vba الموجودة ضمن حزمة ميكروسوفت أوفيس وسيكون الشرح على الأكسس microsoft access 2019 ومعالجة خطأ عدم ظهور الترجمة التعرف على أكواد لغات العالم world languages codes الموجودة في ترجمة جوجل وعددها 105 لغة التعرف على أسماء لغات العالم بالإنجليزية وباللغة العربية وباللغة المحلية لكل لغة دالة معرفة لإيقاف تنفيذ الكود فترة من الثواني wait مثل application.wait الموجودة في إكسل كتابة سطرين كود في سطر واحد نطق النصوص من خلال vba بجميع لغات العالم text to speech ترجمة سجلات الجداول أو الاستعلامات من خلال ADO وغيرها الكثيييييير اكتشفها بنفسك رابط القناة لمن لم يشترك معنا حتى الآن https://www.youtube.com/ostazmas2 #ostazmas ************ فتابعونا وقوموا بتفعيل زر الجرس للتنبيه وقت صدور الفيديو وعلق ولو بحرف لكي تدعمنا للاستمرار من أجلكم ********************* وفي هذه المرة لن أضع لكم الملف المستخدم في الشرح ولكن سأطلب ممن فهم الشرح أن يقوم بتطبيقه ويرفع لنا هنا ما تعلمه فعلا كنتيجة الفيديو ///////////////// وتذكر معي الحكمة القائلة: لا تعطني سمكة ولكن علمني كيف أصطاد
  20. بسم الله الرحمن الرحيم، السلام عليكم ورحمة الله وبركاته، أسعد الله أوقاتكم من جديد موعدنا اليوم مع معلومة مفيدة جدا ومتقدمة جدا، ومهمة جدا في نفس الوقت، ألا وهي شرح عرض جميع الملفات والمجلدات في مسار list all files and folders in path في vba فتابعونا. شرح عرض جميع الملفات والمجلدات في مسار list all files and folders in path في vba طلب مني أحد الأصدقاء الإجابة عن استفسار بخصوص البحث عن مجموعة من الملفات في مسار معين ثم نسخ هذه الملفات إلى مجلد جديد. فقررت عمل شرح عرض جميع الملفات والمجلدات في مسار list all files and folders in path في vba باستخدام دالة معرفة UDF وإجراء يمكن استعماله في كل تطبيقات أوفيس تابعونا للإجابة عن هذا السؤال وأكثر تابعونا في هذا الفيديو ونتعرف أيضا على: إنشاء إنشاء إجراء sub في إكسل إجراء لعرض جميع الملفات الموجودة في مسار معين وكذلك عرض جميع المجلدات الفرعية داخل المسار عرض ملفات معينة بامتداد معين في مسار معرفة حجم مجلد بالبايت والميجايت استخدام صندوق حواري لتحديد مجلد folder picker تجاوز الخطأ إذا لم يقم المستخدم بتحديد مجلد برمجة دالة بوسائط اختيارية يمكن عدم كتابتها مع إعطائها قيمة افتراضية الكتابة في الخلية المجاورة لنطاق باستعمال الدالة offset البحث عن مجموعة من الملفات مكتوبة في نطاق من الخلايا استدعاء إجراء من داخل إجراء آخر أو من داخل نفسه والكثير من المهارات الأساسية في فيجوال بيسك للتطبيقات وفي معادلات إكسل لا أريد أن أطيل عليكم تابعوا معي هذا الفيديو شرح عرض جميع الملفات والمجلدات في مسار list all files and folders in path في vba الشرح يعمل في إكسل 2016 و 2013 و 2010 و 2007 رابط الملف المستعمل في الشرح اضغط هنا للوصول للملف للمزيد زوروا ميكروسوفت إكسل Microsoft excel ولا ينقصني سوى دعاؤكم لي ولأهلي وأحبابي -وأنتم منهم- بخيري الدنيا والآخرة. ومشاركة الموضوع مع من يهمه الأمر لو بخل بها غيرك ما وصلت إليك ولا تنس تقييم المنشور list all files and folders in path.rar
  21. السلام عليكم ورحمة الله إزيك يا جماعة الخير لو سمحتوا محتاج مساعدة فى الكود ده لو ينفع بالحلقات التكرارية أو يعمل أسرع Private Sub TextBox15_Change() 'Call MG_Start Application.Workbooks("El Dawliya Employee Data").Activate On Error Resume Next Dim f As Variant ListBox1.RowSource = Empty ListBox1.Clear Sheets("Emp").Select For Each f In Range("A2:A" & Range("A700").End(xlUp).Row) If f Like TextBox15 & "*" Then listed = ListBox1.ListCount ' ListBox1.ColumnCount = 41 ListBox1.AddItem ListBox1.List(listed, 0) = f ListBox1.List(listed, 1) = f.Offset(0, 1) ListBox1.List(listed, 2) = f.Offset(0, 2) ListBox1.List(listed, 3) = f.Offset(0, 3) ListBox1.List(listed, 4) = f.Offset(0, 4) ListBox1.List(listed, 5) = f.Offset(0, 5) ListBox1.List(listed, 6) = f.Offset(0, 6) ListBox1.List(listed, 7) = f.Offset(0, 7) ListBox1.List(listed, 😎 = f.Offset(0, 😎 ListBox1.List(listed, 9) = f.Offset(0, 9) ListBox1.List(listed, 10) = f.Offset(0, 10) ListBox1.List(listed, 11) = f.Offset(0, 11) ListBox1.List(listed, 12) = f.Offset(0, 12) ListBox1.List(listed, 13) = f.Offset(0, 13) ListBox1.List(listed, 14) = f.Offset(0, 14) ListBox1.List(listed, 15) = f.Offset(0, 15) ListBox1.List(listed, 16) = f.Offset(0, 16) ListBox1.List(listed, 17) = f.Offset(0, 17) ListBox1.List(listed, 18) = f.Offset(0, 18) ListBox1.List(listed, 19) = f.Offset(0, 19) ListBox1.List(listed, 20) = f.Offset(0, 20) ListBox1.List(listed, 21) = f.Offset(0, 21) ListBox1.List(listed, 22) = f.Offset(0, 22) ListBox1.List(listed, 23) = f.Offset(0, 23) ListBox1.List(listed, 24) = f.Offset(0, 24) ListBox1.List(listed, 25) = f.Offset(0, 25) ListBox1.List(listed, 26) = f.Offset(0, 26) ListBox1.List(listed, 27) = f.Offset(0, 27) ListBox1.List(listed, 28) = f.Offset(0, 28) ListBox1.List(listed, 29) = f.Offset(0, 29) ListBox1.List(listed, 30) = f.Offset(0, 30) ListBox1.List(listed, 31) = f.Offset(0, 31) ListBox1.List(listed, 32) = f.Offset(0, 32) ListBox1.List(listed, 33) = f.Offset(0, 33) ListBox1.List(listed, 34) = f.Offset(0, 34) ListBox1.List(listed, 35) = f.Offset(0, 35) ListBox1.List(listed, 36) = f.Offset(0, 36) ListBox1.List(listed, 37) = f.Offset(0, 37) ListBox1.List(listed, 38) = f.Offset(0, 38) ListBox1.List(listed, 39) = f.Offset(0, 39) ListBox1.List(listed, 40) = f.Offset(0, 40) End If Next 'Call MG_End End Sub
  22. اعرض الملف بدائل دالة textjoin الموجودة في إكسل 2016 لجميع إصدارات اكسل mastextjoin بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته موعدنا اليوم مع معلومة مفيدة جدا وخفيفة جدا ومهمة جدا في نفس الوقت وهي تصميم بدائل دالة TEXTJOIN الموجودة في اكسل 2016 وما بعده لجميع إصدارات إكسل لأنها دالة معرفة UDF . لمن يريد استخدام مزايا إكسل 2016 في جميع إصدارات إكسل بداية من 2003 و 2007 و 2010 و 2016 و 2019 دالة احترافية لدمج النصوص مع وضع فاصل بين قيم الخلايا وتجاهل الخلايا الفارغة mastextjoin بدائل textjoin الموجودة في إكسل 2016 وما بعده اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا #a1mas #ostazmas #textjoin لماذا نستعمل دالة textjoin ؟ نبدأ أولا بمعرفة أن هذه الدالة توجد في أوفيس 2016 وما بعده ( أوفيس 365) وهي دالة لدمج النصوص مع تجاهل الخلايا الفارغة وعدم تكرار الفاصل في حالة إذا كانت الخلية فارغة. ولها 4 وسيطات: والصورة العامة لها هي: TEXTJOIN(delimiter, ignore_empty, text1, [text2], …) delemiter محدِد (مطلوبة) عبارة عن سلسلة نصية، إما أن تكون فارغة أو تكون حرفاً واحداً أو أكثر محاطاً بعلامات الاقتباس المزدوجة أو مرجعاً إلى سلسلة نصية صالحة. إذا تم إدخال رقم، فسيُعامل كنص. ignore_empty (مطلوبة) إذا كانت TRUE، فسيتم تجاهل الخلايا الفارغة. text1 (مطلوبة) هي العنصر النصي المطلوب دمجه. عبارة عن سلسلة نصية أو صفيف من السلاسل مثل نطاق من الخلايا. [text2, ...] (اختيارية) هي العناصر النصية الإضافية المطلوب دمجها. قد يكون هناك حد أقصى يبلغ 252 من الوسيطات النصية للعناصر النصية بما في ذلك text1. يمكن أن يكون كل عنصر منها عبارة عن سلسلة أو صفيف من السلاسل مثل نطاق من الخلايا. وإليكم هذا الفيديو لشرح الدالة وتوضيح كيفية استخدامها في إكسل 2016 وما البدائل لدالة textjoin في إكسل 2013 و 2010 و 2007 و 2003 وهي دالة mastextjoin ولا ينقصني سوى دعاؤكم لي ولأهلي وأحبابي -وأنتم منهم- بخيري الدنيا والآخرة. ومشاركة الموضوع مع من يهمه الأمر لو بخل بها غيرك ما وصلت إليك صاحب الملف أ / محمد صالح تمت الاضافه 26 ينا, 2018 الاقسام قسم الإكسيل  
  23. بسم الله الرحمن الرحيم بناء على طلب أخينا الكريم عبد الله المجرب (أبو أحمد) يتم هنا مناقشة دالة الرسائل التي تظهر لمدة محددة بالثواني ثم تختفي تلقائياً الصيغة العامة لها intButton = object.Popup(strText,[nSecondsToWait],[strTitle],[nType]) شرح البارامترات object : كائن wscript الذي تم إنشاؤه strText : نص الرسالة (مطلوب) nSecondsToWait : عدد ثواني بقاء الرسالة على الشاشة (اختياري) القيمة الافتراضية 0 وتعني عدم اختفاء الرسالة إلا بعد الضغط على زر فيها strTitle : عنوان الرسالة (اختياري) إذا لم يتم كتايته يظهر "Windows Script Host" nType : رقم يحدد الأزرار والأيقونات المستعملة في الرسالة (اختياري) وترجع الدالة رقم intButton الخاص برقم الأزرار التي ضغطها المستخدم حتى يخفي الرسالة ويهمنا في هذا المقام الأزرار والأيقونات وهي كالتالي وهي مثل دالة msgbox العادية في أنه يمكنك جمع قيمتين أو أكثر سواء بعلامة + أو بكتابة حاصل الجمع الفعلي فمثلا لعمل رسالة بها زر نعم أولا وأيقونة علامة الاستفهام نكتب 4+32 أو 36 نأتي الآن للقيمة التي ترجعها الدالة نأخذ مثالاً set WshShell = CreateObject("WScript.Shell") Result = WshShell.Popup("This is a popup box!", 10, "Title", 65) ويمكن تنفيذ الأمر بدون وضع القيمة الراجعة في متغير set WshShell = CreateObject("WScript.Shell") WshShell.Popup "This is a popup box!", 10, "Title", 65 ويمكنك استعمال هذه الدالة من تصميمي للتعامل مع popup Function msg(strText As String,nSecondsToWait as integer, strTitle As String, nType As Integer) CreateObject("WScript.Shell").Popup strText,nSecondsToWait,strTitle,nType End Function طريقة استعمالها Sub mas() msg "text", 2, "title", 4+256 End Sub .... وفي الأخير لا ينقصني سوى دعاؤكم وفقنا الله وإياكم لكل ما يحب ويرضى
  24. السلام عليكم ورحمة الله اساتذتنا واخواننا في هذا المنتدى الجميل ارجو افادتي حول تعديل الكود الخاص بالسكنر المطلوب: تصغير حجم الصورة الماخوذة بالسكنر حيث ان كل صورة يبلغ حجمها 5 ميجا تنبيهي الى الاخطاء الموجودة في الكود لغرض التعلم هذا ولكم الاجر والثواب تحياتي للجميع Option Compare Database Option Explicit Dim destinationFolder As String Dim myScanPath As String Dim myScanPathWithID As String Dim myImageFullName As String Private Sub btnClose_Click() DoCmd.Close End Sub Private Sub btnDelete_Click() 'Make Sure PicPath not Null If IsNull(Path) Then MsgBox "لا بوجد مسار للصورة حتى تتم عملية الحذف", vbCritical + vbOKOnly, "نقص معلومات" Exit Sub End If On Error Resume Next If MsgBox("سيتم حذف المرفق نهائيا ولا يمكن التراجع عن الحذف مرة اخري", _ vbQuestion + vbYesNo + vbMsgBoxRight + vbDefaultButton2, _ "تأكيد الحذف") = vbYes Then DoCmd.RunCommand acCmdDeleteRecord Else DoCmd.CancelEvent End If End Sub Private Sub btnHdd_Click() 'Make Sure EmpID not Null If IsNull(EmpID) Or IsNull(TypeOfDocument) Or IsNull(DocumentNumber) Or IsNull(DocumentNumber) Or IsNull(FaceOrBack) Then MsgBox "يرجى اكمال المعلومات في الحقول قبل استعمال نسح صورة من الهارد", vbCritical + vbOKOnly, "نقص معلومات" Exit Sub End If Dim Syso As Object Dim MyFile As String myScanPath = "D:\MyScanDB" myScanPathWithID = myScanPath & "\" & [EmpID] Dim fso As Object Set fso = CreateObject("scripting.filesystemobject") If Not fso.FolderExists(myScanPathWithID) Then fso.createfolder (myScanPathWithID) End If Dim Addfile As Object Set Addfile = Application.FileDialog(3) With Addfile .AllowMultiSelect = False .InitialFileName = "" .Filters.Clear .Filters.Add "All Files", "*.*" If .Show = True Then MyFile = Trim(.SelectedItems(1)) destinationFolder = myScanPathWithID & "\" & [TypeOfDocument] & " " & [DocumentNumber] & " " & Format([DocumentDate], "yyyy-mm-dd") & " " & [FaceOrBack] & " " & Format([DateOfTransfer], "yyyy-mm-dd hh-mm-nn-ss") & ".jpg" Me.Path = destinationFolder DBEngine.Idle Set Syso = CreateObject("Scripting.FileSystemObject") Syso.copyfile MyFile, destinationFolder Set Syso = Nothing Else Exit Sub End If End With End Sub Private Sub btnPrevew_Click() DoCmd.GoToControl "Path" If IsNull(Me![Path]) Then MsgBox "لايوجد مرفق" Else Application.FollowHyperlink [Path] End If Exit_btnHdd_Click: Exit Sub Err_btnHdd_Click: MsgBox Err.Description Resume Exit_btnHdd_Click End Sub Private Sub btnScaner_Click() 'Make Sure EmpID not Null If IsNull(EmpID) Or IsNull(TypeOfDocument) Or IsNull(DocumentNumber) Or IsNull(DocumentNumber) Or IsNull(FaceOrBack) Then MsgBox "يرجى اكمال المعلومات في الحقول قبل استعمال السكنر", vbCritical + vbOKOnly, "نقص معلومات" Exit Sub End If myScanPath = "D:\MyScanDB" myScanPathWithID = myScanPath & "\" & [EmpID] myImageFullName = "" 'Make Sure Folder Exsist if Not Create One destinationFolder = Dir(myScanPathWithID, vbDirectory) If destinationFolder = vbNullString Then VBA.FileSystem.MkDir (myScanPathWithID) End If Dim hg, OldFile, DBwithEXT Dim fdialog As Office.FileDialog Dim filepath As String Dim sdialog As New WIA.CommonDialog Dim imagefile As WIA.imagefile On Error GoTo errorhandle Set fdialog = Application.FileDialog(msoFileDialogSaveAs) OldFile = myScanPathWithID DBwithEXT = Dir(OldFile) hg = myScanPathWithID & "\" & [TypeOfDocument] & " " & [DocumentNumber] & " " & Format([DocumentDate], "yyyy-mm-dd") & " " & [FaceOrBack] & " " & Format([DateOfTransfer], "yyyy-mm-dd hh-mm-nn-ss") & Right(DBwithEXT, 3) With fdialog .Title = "Save as" .AllowMultiSelect = False .InitialFileName = [hg] .InitialFileName = hg + ".bmp" If .Show Then filepath = .SelectedItems(1) ' Else Exit Sub End If Set imagefile = sdialog.ShowAcquireImage() imagefile.SaveFile filepath Me.Path = filepath End With errorhandleexit: Exit Sub errorhandle: MsgBox Err.Description Resume errorhandleexit End Sub MyPic.rar
  25. السلام عليكم ورحمة الله تعالى وبركاته اليوم واجهتني مشكلة من وجهة نظري وهي active le contenu هذه الرسالة تاتي عند فتح قاعدة البيانات لاول مرة او عند تغيير الاسم لها - هل هناك اعدادات في اكسس تخفي هذه الرسالة نهائيا ام يتوجب تطوير كود لاخفائها المرجو من الاخوة الكرام افادتنا وشكرا
×
×
  • اضف...

Important Information