• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Gaham

الخبراء المعتمدون
  • عدد المشاركات

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

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

كل شيء نشر بواسطة Gaham

  1. أقترح عليك استخدام الوظيفة التالية Function HijriDate(Optional AdjVal As Variant = 0) '-- preforming Hijri calendar date Calendar = vbCalHijri HijriDate = Format(DateSerial(Year(Date), _ Month(Date), Day(Date) + (AdjVal)), "yyyy\هـ/mm/dd") End Function '-- لزيادة الأيام YouField = HijriDate(+1) '-- لنتنقيص الأيام YouField = HijriDate(-1) وهذا المثال   AdjustableHijriDate.accdb
  2. وعليكم السلام ورحمة الله وبركاته كان لديك بعض المشاكل في مكتبة تعريف مكون البيانات فقط إليك القاعدة بعد التعديل الغاء الشفت .mdb
  3. استخدم الشفرة بهذه الطريقة Private Sub Form_Open(Cancel As Integer) Dim FormPicture, Prompt FormPicture = CurrentProject.Path & "\lines.jpg" Prompt = "تأكد من وجود الصورة الخلفية في المسار الافتراضي" ' إذا لم تكن الصورة في المسار ألغ الإجراء If Len(Dir(FormPicture)) = 0 Then MsgBox Prompt, , "" Cancel = 1 End If End Sub  
  4. نعم يمكن ذلك .. بعد إعادة توجية الشفرة لكائن الصورة انظر المثال pic2   pic2.zip
  5. أليك الطريقة مع المثال Private Sub Form_Open(Cancel As Integer) Dim FormPicture, Prompt FormPicture = CurrentProject.Path & "\lines.jpg" Prompt = "الصورة ليست في المسار الافتراضي.. هل تريد الاستمرار" ' إذا كانت الصورة في المسار اجعلها في الخلفية If Len(Dir(FormPicture)) > 0 Then Me.PictureType = 1 Me.Picture = FormPicture Exit Sub ' خروج من الإجراء End If ' إذا كانت الإجابة بالنفي ألغ فتح النموذج If MsgBox(Prompt, vbYesNo + vbDefaultButton2, "") = vbNo Then Cancel = 1 End If End Sub FormPictue.zip
  6. المعذرة لم انتبه للجزء المتعلق بالصورة بالنسبة للشفرة التي في الصورة فإن الجزء المتعلق بسؤالك هو سطر تعليمة (DoCmd.TransferSpreadsheet) الخاصة بالاستيرد من أكسل كما في الصورة أما باقي الشفرة فهو حشو وينبغي التخلص منه لانه يكرر السطر المشار إليه بطول ورقة البيانات ولعلك لاحظت الوقت الذي يستهلكه تنفيذ الشفرة الشفرة التالية تبين التعليمة المشار إليها بشئ من الوضوح Sub A001() Dim EXCEL_FILE As String EXCEL_FILE = CurrentProject.Path & "\ccldb_supplemental.xls" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Projected Changes", EXCEL_FILE, False, "Projected Changes$A9:J20" End Sub الجزء الأخير من الشفرة يمثل ورقة البيانات متبوعا بالنطاق المطلوب استيراده إليك المثال.. ضع المؤشر داخل الإجراء واضغط على [F5] CONNECT TO EXCEL.zip
  7. الاستعلام الاجرائي الذي أشرت إليه يستخدم لإلحاق البيانات.. عدل الصيغة إلى استعلام التحديث كما يلي  Dim strSQL1 As String strSQL1 = "UPDATE Employees SET [picfile]='" & Me.ImagePath & "', id=" & Me.id & " WHERE id=" & ME.id CurrentDb.Execute strSQL1, dbFailOnError
  8. أرجو أن يلبي المثال التالي طلبك   CONNECT TO EXCEL.zip
  9. أين تريد وضع البيانات بعد الاستيراد؟!  هل تريد جدول بيانات جديد أو الحاقها بجدول بيانات موجود هل إنشاء استعلام بالبيانات المستوردة هل تريد عرضها في نموذج أو تقرير  هل تريد إجراء عمليات حسابية أو منطقية على البيانات  
  10. فتح ارتباط تشعبي في نموذج

    إذهب إلى خصائص الحقل وفي تبويب التنسيق ابحث عن Is Hyperlink  وغيرها من No  إلى Yes . هذا كل شيء!
  11. في الحقيقة المثال يعطي تصور إضافي للسؤال وبالتالي الإجابة تكون أكثر دقة.. والأمر يعود إليك! إليك مثال لأحد طرق الاتصال بمجلد أكسل عن طريق الشفرة.. يمكنك السؤال أكثر! CONNECT TO EXCEL.zip
  12. وعليكم السلام ورحمة الله وبركاته إذا كان بإمكانك حفظ صفحة شموس ورفعها مع مرفقاتها سيكون الأمر سهلا بإذن الله
  13. وعليكم السلام ورحمة الله وبركاته في نظري استخدام عنصر التحكم Web Brwoser Control وتصميم صفحة HTML أفضل من محاكاة ذلك على نموذج أكسس.
  14. حسناً: المثال التالي يقوم بتحديث تاريخ الشحن بناء على المحدد الزمني والفترة الزمنية من تاريخ الشحن.  أما الاختيار؛ فهو إما تحديث جميع التواريخ (ِALL)  أو السجل الحالي (CURRENT) وذلك بوضع المؤشر على السجل المطلوب. تنبيه: استخدم إشارة السالب (-) في حقل الفترة الزمنية (PERIOD) لإنقاص القيمة. DateAddExample.accdb
  15. استعلام الحاق بالكود

    عمل استعلام عن طريق الشفرة مرهق بعض الشي، لكن دعنا نجد حلا لمشكلة تغير مسار قاعدة البيانات الوجهة. وقبل أن أشير إلى الطريقة التي يمكن بواسطتها تثبيت مسار قاعدة البيانات يجب أن أشير إلى أن أكسس يستمد مساره الافتراضي عن طريق خصيصة في الخيارات العامة لأكسس (الخيارات العامة هي الخيارات التي تطبق على جميع قواعد البيانات) اسمها (الدليل الافتراضي لقاعدة البيانات) انظر الصورة التالية هذا المسار يمكن التحكم فيه يدويا أو برمجيا، وهذا التغيير سوف ينعكس على باقي قواعد البيانات! وبالتالي إذا قام أحد بتغيير هذا المسار إلى مسار مغاير لقاعدة بياناتك فسوف ينسحب هذا التغيير على قاعدة بيانات. وبناء عليه يجب علىيك أن تلجأ إلى ضبط هذه الخصيصة كلما تم فتح قاعدة البيانات لضمان ثبات المسار.  والمهم هنا هو كيف يمكن جعل أكسس يتبع المسارالحالي لقاعدة البيانات كلما تغير موقها؟ والجواب على هذا السؤال يكون بوضع المقطة الفارزة (.) في خصيصة مسار قاعدة البيانات [الشرطة المائلة اختيارية] بهذا يفهم أكسس أنك تريد الدليل الحالي لقاعدة البيانات. انظر الصورة   لكي نضمن ثبات المسار يجب وضع الشفرة التالية في النموذج الرئيسي لقاعدة البيانات في حدث (On Load) أو (On Open)  SUB MAIN_FORM_ON_LOAD() SETOPTION "DEFAULT DATABASE DIRECTORY",".\" END SUB   المرفق التالي تطبيق لما سبق APPEND EXAMP.zip  
  16. الذي تسأل عنه ليس الفرق بين تاريخين! لأنك لم تحدد إلا طرف واحد من التالريخ أما الطرف الثاني فهو قيمة زمنية! وبالتالي أنت تسأل: كيف أخصم قيمة زمنية من تاريخ محدد؟ والجواب عن هذا السؤال يكون باستخدم دالة إضافة التاريخ DataAdd وصيغتها كالتالي DateAdd ( interval, number, date ) هذه الدالة لها ثلاثة محددات وهي من جهة اليسار الأول: محدد زمني Interval  وله عددة قيم كالتالي Value Explanation yyyy Year q Quarter m Month y Day of the year d Day w Weekday ww Week h Hour n Minute s Second   التاني: محدد رقمي وهو يمثل قيمة المدة  المطلوب إضافتها للتاريخ المحدد،. ولكون المحدد الزمني لا يقبل إلا قيمة زمنية واحدة فإنه يتعين علينا تبسيط المدة الزمنية لأدنى محد للزمن، فالمدة الزمنية التي ذكرت هي (2 سنة و 6 أشهر) وهذه المدة تحتوي على محددين: المحدد الأول بالسنين والثاني بالأشهر، نبسطها لتصبح بالأشهر 2×12=24+6=30 شهر. والمهم في هذا المحدد أنه يقبل القيم الموجبة (1,2,3,4,5,.....) وأيضا القيم السالبة (-1,-2,-3,-4,-5,.......) القيم الموجبة تضاف إلى التاريخ المحدد وتعيد قيمة تاريخية القيم السالبة تطرح من التاريخ المحدد وتعيد قيمة تاريخية   الثالث: محدد التاريخ وهو يمثل تاريخ محدد المطلوب أضافة القيمة الزمنية له وهو في المثال الذي ذكرت ( 01/06/2013 ). ستكون الحالة التي ذكرت كالتالي DateAdd ("m", -30, #01/06/2013#) Result: '07/06/2010'       راجع الرابط التالي لمزيد من المعلومات DateAdd()  
  17. الطريقة في الصوورة التالية  
  18. تصميم فورم

    وفقاً للمعطيات التي قدمتها هكذا سيكون النموذج في نظري Attendance Tracking.accdb
  19. وعليكم السلام ورحمة الله أمير.. اقترح عليك أن تنشيء جدول جديد خاص باستحاق الإجازة السنوية وذلك وفق للمفاهيم التالية الاجازة السنوية: هي مجموعة من الأيام يستحقها الموظف لكل سنة قضها في العمل من تاريخ التعيين. أيام الاجازة المتراكمة: هي محموع الأيام التي لم يستخدمها الموظف من كل سنة؛ كمثال (2011:  36 يوم، تمتع بـ 20 يوم، والباقي 16) (2012: 36 يوم، تمتع بـ 0 يوم، والباقي 36 يوم) إذا كانت الإجازة بمرتب أنت بحاجة لمعرفة الأيام التي لم يستخدمها لتعويضه ماديا في نهاية السنة أو نهاية الخدمة وفقا لسياسة المنشأة   سوف يتضمن الجدول قيوداًَ تاريخية دورية لكل موظف عن كل سنة من تاريخ التعيين بالاستحقاق السنوي والأيام الممنوحة للسنة نفسها... مثال للتوضيح رقم الموظف    تاريخ التعيين 3001           15/4/2010 رقم الموظف      سنة الاستحقاق    الاستحقاق السنوي  المستخدم      المتبقي 3001             15/4/2011    36                    20           16 3001              15/4/2012   36                     0             36 --------------------------------------------------------------------------- 3001              2                 72                      20          52 يتم تسجيل القيد في هذا الجدول بالطريق التي طلبتها لكن بدورة تاريخ التعيين لكل موظف عن كل سنة. يتم تسجيل المستخدم عن طريق قيد قرار المنح والمدة الممنوحة ناقص المتبقي بناءً على هذا يمكن إنشاء استعلام تجميعي أو تاريخي أو.. أو.. عن حركة إجازة الموظف.   ما رأيك بهذا الاقتراح         
  20. نعم هناك طريقة أخرى استخدمها أنا بكثرة وهي استخدام مكون المتصفح Web Browser Control. بهذه الطريقة أحسن من عرض البيانات على النموذج وأيضا أمرر ما أحتاجه من الشفرة إما بالتضمين أو بالمعالجة الخارجية للبيانات وثم عرضها على مكون المتصفح. لي مشاركات عديدة بهذا الخصوص لكن لما لم يكن هناك تجاوب مع الفكرة لم أقم بالشرح التفصيلي لبعضاها.. أرجو أن تتطلع عليها.. وإذا كنت متحمسا للفكرة قم بطرحاها في مشاركة جديدة.
  21. في الحقيقة سؤالك هذا أثار فضولي لكون قاعدة البيانات mde لكن أعتقد أنك سوف تحولها بعد البرمجة على كل حال الطريقة موجودة في الشفرة التي أرفقتها وهي ببساطة أن تجعل الشفرة في سطر واحد وتفصل بين تعليماتها بعلامة النقطتين (:) ارجع إلى مشاركتك ولاحظ هذا! من المفترض أن يكون الاعلان عن المتغير في سطر واسناد القيمة في سطر آخر ولكن تم دمجهما بعلامة النقطتين! الاستاذة زهرة لها مشاركة بهذا الخصوص أجابت فيها على سؤال للاستاذ إكسير بهذا الخصوص 
  22. إذا كنت تريد استخدام محرر الاستعلام فلا اعتقد أنك بحاجة إلى الوظيفة ()Dsum  لأن محرر الاستعلام يوجد به خاصية التجميع، وبناء عليه يكون ما تحتاجة هو قصررقم الحساب على الرقمين الأولين فقط وذلك باستخدام التعليمة  ()Left Left(account.code,2) وتكون النتيجة كالتالي - لاحظ أن المبالغ مسجلة فقط للحساب الرئيسي رقم 10وبالتالي سوف يظهر المبلغ الاجمالي لهذا الحساب فقط - يجب إزالة الحقول غير القابلة للتجميع ومن ثم تغيير نوع التجميع في حقل (madeen)  إلى sum انظر الصورة التالية والمحصلة النهائية ستكون في التالي   إذا أردت أن تصل إلي بيانات متناسقة وقوية فأنت بحاجة تطبيع البياتات وتبسيطها فالجداول وبياناتها غير مرضية! إليك المرفق قاعدة بيانات6.accdb