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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وعليكم السلام انا لا احبذ استخدام القناع ، فهو يربطك اخي شفان اعطاك طريقة ، واليك طريقة اخرى ، من اعدادات الحقل: validation rule: Between 100000000000 And 299999999999 validation text: يجب ان يبدأ الرقم بالرقم 1 او 2 ، ويكون طوله 12 خانه . . . جعفر
  2. السلام عليكم أخي اسلام هذا الموضوع من سنة 2012 ، ومشاركي الموضوع قد لا يكونوا متواجدين في المنتدى الان ، لذا رجاء عمل موضوع جديد لسؤالك. جعفر
  3. السلام عليكم اخي ابو عبدالله ، واخي عمر هذا الموضوع من سنة 2003-2004 ، ومشاركي الموضوع قد لا يكونوا متواجدين في المنتدى الان ، فرجاء كتابة موضوع جديد لسؤالكم. جعفر
  4. السلام عليكم الملف كان يعمل بدون مشاكل اليك نفس النسخة ، ولكن بصيغة ضغط اخرى جعفر 11111.zip
  5. وعليكم السلام ولو ان هذه الطريقة لا تُعتبر الافضل ولا الاسرع ، ولكنها جيدة نظرا للأيام القليلة التي تتعامل معاها هذه الوحدة النمطية التي تقوم بالعمل: Option Compare Database Option Explicit Function Working_Dates(From_D, To_Period, Excl_D) 'From_D = Start Date (i.e. 32/11/2017) 'To_Period = Number of Days to Count 'Excl_D = Excluded days, like weekends (in our case Friday and Saturday) ' '1 = Sunday '2 = Monday '3 = Tuesday '4 = Wednesday '5 = Thursday '6 = Friday '7 = Saturday ' ' to call this Function: 'Working_Dates(#23/11/2017#, 3, "67") 'or 'Working_Dates(Me.dateToday, Me.long, "67") ' Dim ToDate As Date Dim i As Date 'ما هو اليوم الاخير ، بدون استقطاع الاجازة ToDate = DateAdd("d", To_Period, From_D) 'ابدا الحساب من اول يوم الى اليوم الاخير For i = From_D To ToDate 'اذا كان هذا اليوم من ايام الاجازة If InStr(1, Excl_D, Weekday(i)) > 0 Then 'اضف يوم الى اليوم الاخير ToDate = ToDate + 1 End If Next i 'ارسل اليوم الاخير الى النموذج Working_Dates = ToDate End Function . ونناديها من النموذج ، من حدث "بعد تحديث التاريخ" مثلا ، هكذا: Private Sub dateToday_AfterUpdate() 'Me.Text537.Value = Me.dateToday + Me.long 'Me.Text537.Requery '1 = Sunday '2 = Monday '3 = Tuesday '4 = Wednesday '5 = Thursday '6 = Friday '7 = Saturday Me.DateOfFinish = Working_Dates(Me.dateToday, Me.long, "67") End Sub جعفر 742.Working_Days.accdb.zip
  6. طريقة اصطياد النقطة الاولى: Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim Msg, Style, Title If DataErr = 2237 Then Msg = "رجاء كتابة او اختيار مادة من القائمة" Style = vbYes Title = "اختار من القائمة فقط" MsgBox Msg, Style, Title Response = acDataErrContinue End If End Sub جعفر
  7. وعليكم السلام اهم شيء في الموضوع هو اصطياد رقم رسالة الخطأ ، ومنها نستطيع عمل ما نريد ولعمل هذا ، استعملي "حدث خطأ النموذج" ، هكذا: Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox DataErr End Sub جعفر
  8. وعليكم السلام اخوي وضاح من الصعب على اي منا ان يرد على موضوعك ، لأن الكثير منا ليس محاسب ولا نعرف ماذا تقصد ولا ماذا تريد!! رجاء ارفق برنامجك فيه بيانات متعددة ، ثم استعمل الاكسل او الوورد او حتى برنامج صور ، واشرح لنا: 1. اي جدول ، اي حقول يجب التعامل معها ، 2. مثالين عن الشيء الذي تريده: أ. طريقة الحساب، ب. النتيجة التي يجب الحصول عليها، ج. الصورة النهائية التي تريدها. ونحن سنحاول ان نترجم مثالك الى برمجة اكسس ان شاء الله هذا الكلام ينطبق على بقية مواضيعك كذلك جعفر
  9. تفضل . والنتيجة . جعفر 680.برنامج الاجازات شبه كامل_jj.accdb.zip
  10. وعليكم السلام في الواقع كان هناك خطأ في الدرس الرابع ، وانا الذي كتبت الدرس الرابع وليس اخي @صالح حمادي ، وقمت بالتعديل عليه ، والتعديل على مثالك ، كما وان ملاحظة اخي محمد ابوعبدالله صحيحة ايضا ، حيث ان اسم الوحدة/الوحدات النمطية يجب ان تكون غير اسم الدالة/الدوال الموجودة في البرنامج. جعفر Database2.zip
  11. وعليكم السلام شكرا اخي الفاضل على هذه الهدية ، واهلا وسهلا بك في المنتدى جعفر
  12. السلام عليكم تم التعديل على الكود والبرنامج ليعمل: 1. تشغيل الاكسس بدون رسائل أمان ، 2. تشغيل الاكسس بدون إطار/نافذة الوندوز (للنواتين 32بت و64بت). 1. مثل الخطوات السابقة ، احفظ الكود التالي في ملف بصيغة txt ، ثم غيّر صيغة الملف الى vbs (طبعا تستطيع ان تضع برنامج قاعدة البيانات في اي مكان شئت في الكمبيوتر ، فقط عليك تعديل الاسم والمسار) : 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 "C:\jj\Seq.mdb" o.usercontrol=false o.quit set o=nothing 2. لتشغيل الاكسس بدون اطار ، يجب ان يكون النموذج منبثق ، ولكننا بدل ان نغير اعدادات النموذج ، نستطيع ان نفتحه منبثق مباشرة ( Dialog )، وبما اننا نستعمل الماكرو AutoExec (والذي يعمل عند فتح البرنامج مباشرة ) ، فإننا سنفتح النموذج بهذه الطريقة: النموذج: . والماكرو . وهذا كود النموذج: Option Compare Database Private Sub cmd_Quit_Click() DoCmd.Quit End Sub Private Sub Form_Open(Cancel As Integer) Call HideAccess End Sub وهذه الوحدة النمطية التي بها كود الاخفاء: Option Compare Database Option Explicit Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 #If VBA7 Then Private Declare PtrSafe Function ShowWindow Lib "USER32" _ (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Boolean #Else Private Declare Function ShowWindow Lib "USER32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Boolean #End If ' Public Sub HideAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_HIDE) End Sub Public Sub ShowAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_SHOWMAXIMIZED) End Sub جعفر 739.No_Warning_and_No_Access_Window.zip
  13. السلام عليكم اخي علي ، وحسب البحث الذي قمت به ، رجاء: استبدال السطر Win_Struct.lStructSize = Len(Win_Struct) بالسطر Win_Struct.lStructSize = LenB(Win_Struct) او تستطيع ان تستبدل كودك بهذا الكود: Dim f As Object Set f = Application.FileDialog(3) f.AllowMultiSelect = True f.Show MsgBox "file choosen = " & f.SelectedItems.Count كما ان الموقع التالي به اداة لعمل الكود المطلوب ، والذي يعمل على 32 و 64 بت، http://www.avenius.de/en/index.php?Products:IDBE_Tools جعفر
  14. وعليكم السلام وجسب البحث الذي عملته ، فكلام اخي عمرو صحيح ، وللأسف لا يمكن استعمال البرنامج على جهازين مختلفين !! لذلك يجب ان يكون عندك جهاز 32بت وآخر 64بت ، وتستعمل كل منهم لتحويل برنامجك الى accde!! هناك طريقة اخرى ، ولكن يجب عليك تضبيطها ، وهي ان تكون قد جربت برنامجك Accdb على النظامين ، ووجدت انه يعمل بطريقة صحيحة ، والخطوة المتبقية هي تحويله الى Accde حسب 32 او 64 بت ، فتستطيع بطريقة ما ، استعمال الكود لتحويل البرنامج بإستخدام نواة كمبيوتر المستخدم ، يعني تعطي المستخدم نسخة من صيغة Accdb ، واول ما يشتغل البرنامج ، يشتغل الكود التالي (من المنتدى: https://www.mrexcel.com/forum/microsoft-access/493961-vba-convert-accdb-accde.html#post2439046 ) ، والذي يحول البرنامج الى صيغة Accde Function ConvertToaccDE() sourcedb = "C:\Users\Trevor G\Documents\sample back.accdb" targetdb = "C:\Users\Trevor G\Documents\sample back.accde" Dim accessApplication As Access.Application Set accessApplication = New Access.Application With accessApplication .SysCmd 603, sourcedb, targetdb End With 'Set accessApplication = Nothing End Function وبعدها تجعل الكود يحذف البرنامج الاصل Accdb. جعفر
  15. وعليكم السلام الظاهر انه عندك النسخة التجريبية من البرنامج ، لذا عليك شراء البرنامج ، لتحويل هذه النسخة الى نسخة كاملة ، وعليه لن ترى هذه الكلمة جعفر
  16. وعليكم السلام من الواضح انك يجب ان تشتري/تسجل الاداة اعلاه، ولكن هناك طرق اخرى ، احدها في هذا المرفق: https://bytes.com/attachments/attachment/1237d1209368957/anigif.zip جعفر
  17. وعليكم السلام اخي رجاء مراجعة الرابط التالي لمزيد من المعلومات حول هذا الموضوع جعفر
  18. السلام عليكم وهذه نسخ بصيغة mdb جعفر 680.4.jjafferr.mdb.zip 680.3.Saleh.mdb.zip
  19. وعليكم السلام تفضل الجدول: . والاستعلام: . والنتيجة: . جعفر 740.Section_Gender_Count.accdb.zip
  20. بعض الاوقات لازم ما نفكر بأسوأ الاحتمالات هذه المشكلة عالمية (بترجمة جعفر): فالمشكلة دائما هي وكيفية ومدى تفاصيل شرح الزبون لتوصيل الفكرة جعفر
×
×
  • اضف...

Important Information