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

ابوخليل

أوفيسنا
  • Posts

    12,480
  • تاريخ الانضمام

  • Days Won

    233

كل منشورات العضو ابوخليل

  1. وعليكم السلام جرب هذا : 000.000.00.00;0;
  2. Private Sub text_Exit(Cancel As Integer) If IsNull(Me.text) Then MsgBox "من فضلك أدخل قيمة" DoCmd.CancelEvent Me.text.SetFocus Me.text.Undo End If End Sub
  3. تم عمل تعديلات جوهرية على البرنامج 1- فصل المنقولين 2- فصل الاقساط السابقة التي تسبق بداية العام الدراسي ( الا ازرار البحث بين تاريخين فهي شاملةلهذه السنة وما قبلها ) 3- اضافة حقل بداية العام الدراسي في جدول tbl ويجب تحديثه كل سنة جديدة 4- انشاء نموذج للناجحين حيث يؤشر امام الناجح وبعد الترحيل يتم ازالة الاشارات 5- امكانية البحث عن اقساط السنة الماضية فقط 6- اضافة نموذج لاعداد تفاصيل الاقساط وفقكم الله لكل خير ’’ المدرسة1.rar
  4. تفضل من هنا آمل ان يفي بحاجتكhttp://www.officena.net/ib/index.php?showtopic=52980&page=2#entry333142
  5. وهذا التطبيق لمن يريد اضافة المكتبات وتسجيلها فقط ملحوظة : يجب ان تكون ملفات المكتبات بجانب البرنامج في مجلد واحد tsjeel2.rar
  6. وهذه هي الصيغة النهائية للعمل : Dim objWShell, objReead ' On Error Resume Next Set objWShell = CreateObject("WScript.Shell") objReead = objWShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA") If objReead = "0" And Me.tmp = "0" Then Call tsjeelMktbat Set objWShell = Nothing MsgBox "تم التنصيب واضافة ملفات النظام بنجاح" Exit Sub ElseIf objReead = "1" And Me.tmp = "0" Then objWShell.RegWrite "HKLM\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD" Me.tmp = "1" objWShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\tsj", "D:\tsjeel.mdb", "REG_SZ" objWShell.Run "shutdown /r /t 10 /f /d P:4:2" 'visit: http://pcsupport.about.com/od/commandlinereference/p/shutdown-command.htm Set objWShell = Nothing Exit Sub Else Call tsjeelMktbat objWShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "1", "REG_DWORD" MsgBox "تم التنصيب واضافة ملفات النظام بنجاح" 'If MsgBox("سيتم إعادة تشغيل النظام" & vbCrLf & _ ' " هل تريد المتابعة؟", _ ' vbQuestion + vbYesNo, _ ' "اعادة تشغيل النظام") = vbNo Then ' Exit Sub 'Else 'objWShell.Run "shutdown /r /t 10 /f /d P:4:2" Set objWShell = Nothing 'End If End If وهذا هو التطبيق tsjeel.rar
  7. وإياك أخي أبا عمر .. سعدت بمرورك تابع الاجراءات : نحن بحاجة الى كود يجعل النظام يقلع من برنامجنا عند اعادة التشغيل ’ بشرط الا يعمل الا مرة واحدة ويوجد طريقة برمجية يستخدمها البعض وهي نسخ اختصار للبرنامج ولصقه في مجلد بدء التشغيل ثم حذفه عند نهاية التنصيب ولكن يوجد طريقة أسهل من ذلك وهي موجودة ومهيأة في النظام وبالتحديد في التسجيل (الريجستري) فيمكن اعطاء امر وتسجيله ليقوم النظام بتنفيذه مرة واحدة عند بداية التشغيل وهذا هو المكان الذي سنضع فيه الأمر "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce ليصبح بعد اعداده والكتابة فيه هكذا : objWShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\tsj", "D:\tsjeel.mdb", "REG_SZ" باعتبار برنامجنا سيتم تنصيبه على D باسم tsjeel يتبع ...
  8. شكرا ابا آدم على المتابعة والمساندة وهو تسجيل بعض النتائج المهمة في الحدث . ويهمنا هنا درجة الامان ، فلا بد من شاهد او دليل على درجة الامان الابتدائية فحين يغلق النظام تذهب جميع البيانات العالقة في الذاكرة ، وهذه لا بد من اخذ حسابها من اجل ضبط العملية لذا سيكون من ضمن الكائنات المساعدة حقل في جدول نودع فيه درجة الامان قبل اغلاق النظام لذا سننشء جدولا باسم tblTemp به حقل رقمي باسم tmp دعونا الآن نعرض الاجراءات الاخرى التي سنستخدمها في العملية غير ما تم ذكره اعلاه 1- وحدة نمطية عامة وهي المسؤولة عن تسجيل المكتبات : Option Compare Database Option Explicit Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lLibFileName As String) As Long Private Declare Function CreateThread Lib "kernel32" (lThreadAttributes As Any, ByVal lStackSize As Long, ByVal lStartAddress As Long, ByVal larameter As Long, ByVal lCreationFlags As Long, lThreadID As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal lMilliseconds As Long) As Long Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lProcName As String) As Long Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As Long, lExitCode As Long) As Long Private Declare Sub ExitThread Lib "kernel32" (ByVal lExitCode As Long) 'Purpose : This function registers and Unregisters OLE components 'Inputs : sFilePath The path to the DLL/OCX or ActiveX EXE ' bRegister If True Registers the control, else unregisters control 'Outputs : Returns True if successful 'Author : Andrewb 'Date : 04/09/2000 'Notes : This is the API equivalent of RegSvr32.exe. 'Example : ' If RegisterComponent("C:\MyPath\MyFile.dll") = True Then ' Msgbox "Component Successfully Registered" ' Else ' Msgbox "Failed to Registered Component" ' End If 'Revisions : 1/Jan/2002. Updated to include code for registering ActiveX Exes. Function RegisterComponent(ByVal sFilePath As String, Optional bRegister As Boolean = True) As Boolean Dim lLibAddress As Long, lProcAddress As Long, lThreadID As Long, lSuccess As Long, lExitCode As Long, lThread As Long Dim sRegister As String Const clMaxTimeWait As Long = 20000 'Wait 20 secs for register to complete On Error GoTo ErrFailed If Len(sFilePath) > 0 And Len(Dir(sFilePath)) > 0 Then 'File exists If UCase$(Right$(sFilePath, 3)) = "EXE" Then 'Register/Unregister ActiveX EXE If bRegister Then 'Register EXE Shell sFilePath & " /REGSERVER", vbHide Else 'Unregister ActiveX EXE Shell sFilePath & " /UNREGSERVER", vbHide End If RegisterComponent = True Else 'Register/Unregister DLL If bRegister Then sRegister = "DllRegisterServer" Else sRegister = "DllUnRegisterServer" End If 'Load library into current process lLibAddress = LoadLibraryA(sFilePath) If lLibAddress Then 'Get address of the DLL function lProcAddress = GetProcAddress(lLibAddress, sRegister) If lProcAddress Then lThread = CreateThread(ByVal 0&, 0&, ByVal lProcAddress, ByVal 0&, 0&, lThread) If lThread Then 'Created thread and wait for it to terminate lSuccess = (WaitForSingleObject(lThread, clMaxTimeWait) = 0) If Not lSuccess Then 'Failed to register, close thread Call GetExitCodeThread(lThread, lExitCode) Call ExitThread(lExitCode) RegisterComponent = False Else 'Successfully registered component RegisterComponent = True Call CloseHandle(lThread) End If End If Call FreeLibrary(lLibAddress) Else 'Object doesn't expose OLE interface Call FreeLibrary(lLibAddress) End If End If End If End If Exit Function ErrFailed: Debug.Print Err.Description Debug.Assert False On Error GoTo 0 End Function 2- وحدة نمطية لقراءة نوع النظام 32بت أو 64بت Public Function IsWin32OrWin64() As String Dim proc_query As String Dim proc_results As Object Dim info As Object proc_query = "SELECT * FROM Win32_Processor" Set proc_results = GetObject("Winmgmts:").ExecQuery(proc_query) For Each info In proc_results IsWin32OrWin64 = info.AddressWidth & "-bit" Next info End Function 3- وحدة نمطية للتأكد من وجود الملف قبل النسخ واللصق : Public Function DoesFileExist(vPathAndFile As String) As Boolean If Len(Dir$(vPathAndFile)) > 0 Then DoesFileExist = True Else DoesFileExist = False End Function 4- وحدة نمطية تقوم بنسخ الملفات من برنامجنا الى المكان الذي نحدده Function CopyFile(vPathSource As String, vPathDestination As String) As Boolean FileCopy vPathSource, vPathDestination CopyFile = True End Function 5- عملية النسخ والتسجيل وتم وضعها في وحدة نمطية عامة : Public Function tsjeelMktbat() Dim sjel As Variant sjel = IsWin32OrWin64() If sjel = "32-bit" Then If Not DoesFileExist("C:\Windows\System32\Barcodex.ocx") Then 'للتأكد من عدم وجود الملف CopyFile CurrentProject.Path & "\Barcodex.ocx", "C:\Windows\System32\Barcodex.ocx" 'نسخ الملف في المكان المحدد RegisterComponent ("C:\Windows\System32\Barcodex.ocx") 'تسجيل الملف Else RegisterComponent ("C:\Windows\System32\Barcodex.ocx") ' وان كان الملف موجود سجله End If 'يمكن اضافة اكثر من ملف اعلاه ElseIf sjel = "64-bit" Then If Not DoesFileExist("C:\Windows\SysWOW64\Barcodex.ocx") Then CopyFile CurrentProject.Path & "\Barcodex.ocx", "C:\Windows\SysWOW64\Barcodex.ocx" RegisterComponent ("C:\Windows\SysWOW64\Barcodex.ocx") Else RegisterComponent ("C:\Windows\SysWOW64\Barcodex.ocx") End If End If End Function يتبع ...
  9. بل التحكم من برنامجنا لان معظم برامج التحزيم تشتمل على خاصية تشغيل نموذج البداية ولا بأس في اقتراحك حول النقطة السابعة ، علما ان الكود سيكون موجودا في مكانه لمن اراد تشغيله او تعطيله
  10. كنت وقفت عند اعادة تشغيل النظام وما دام خط سيرنا اخذ وجهة اخرى فسأوجز هنا العناصر والخطوات التي نسير عليها وأسأل ربي العون على ذلك 1- قراءة حساب المستخدم ودرجة الأمان 2- ان كان الامان منخفضا فسنكمل تنصيب برنامجنا .. وكفينا.. وعوفينا 3- ان كان الامان مرتفعا يقوم البرنامج بتخفيضه ثم يعيد تشغيل النظام 4- سيقلع النظام بعد اعادة التشغيل على برنامجنا ويفتح النموذج الهدف 5- يتم اضافة المكتبات وتسجيلها واكمال تنصيب البرنامج 6 - اعادة الامان الى وضعه السابق 7- اعادة تشغيل النظام ( اختياري ) بقي شيء صغير جدا بحاجة الى تصور ، حتى نمسك خطام البعير ونسير
  11. البرنامج يحتاج الى اكثر من اضافة ويحتاج الى وقت مقتطع لتنفيذه والوقت عندي شحيح آمل أن تتحلو بالصبر .. ستتيسر الامور بإذن الله
  12. اخي العزيز الكود معروف وهذا مصدره http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.filesystem.filecopy.aspx وقد تكون جربته على xp ولكن على win7 لن يعمل حتى تتمكن من تعديل حساب المستخدم وتقوم بتخفيض الأمان الى الحد الادنى لماذا لا نقوم بانهاء التنصيب ثم نخفض الأمان ثم نقوم باعادة التشغيل يبدو ان الامر التبس عليك فما دام التنصيب قد تم فليس هناك داع لخفض الأمان ام تقصد ان اضافة المكتبات وتسجيلها يتم بعد التنصيب ؟ عند تشغيل البرنامج لأول مرة ؟ دعنا نسير في طريقك هذا : عند تشغيل البرنامج لاول مرة سيتم خفض الامان ثم اعادة تشغيل النظام انتبه ! حتى الآن لم نقم باضافة وتسجيل المكتبات ثم ماذا ؟ طبعا سنقوم بتشغيل البرنامج للمرة الثانية للتسجيل ثم بقيت حقوق المستخدم : فمن حقه ارجاع نظامه الى ما كان عليه وبهذه الطريقة ينقطع الحبل لاننا في مطلبنا اعلاه نريد النظام ان يقلع من برنامجنا
  13. [DBOld] = "c:\z1.mdb" 'اختيار مسار القاعدة البديلة هذا السطر تستطيع من خلالة تحديد اي قاعدة بيانات تريد اخذ نسخة منها
  14. قبل التعديل يجب الاجابة عن استفسارين : الاول : هل الاقساط سنوية ام فصلية الثاني : كيف يتم تسجيل الاقساط ؟ هل في بداية السنة يتم ادراج الاقساط كلها للطالبة في النموذج مع تاريخ الاستحقاق ثم عند التسديد يؤشر على على خانة سدد ؟ ام ان ادراج بيانات القسط داخل النموذج يتم عند التسديد فقط ؟
  15. اخونا امير شكرا لاجابة الدعوة ورأيك وجيه وهو ما سنسعى لتحقيقه وايضا يبدو انك على جانب لا بأس به من الخبرة فلا تبخل علينا جزيت خيرا نرجع لدرسنا : وما زلنا في المعوقات : ذكرنا اننا نستطيع فحص الامان في وندز فان كان منخفضا اكملنا تنصيب برنامجنا ، وان كان مرتفعا خفضناه ثم اعدنا تشغيل النظام وقد عرضنا الكود المسؤول عن هذه العمليات . لنفرض ان امان وندز كان مرتفعا فقمنا بخفضه ثم اعادة التشغيل المطلوب : وهذا الطلب منطقي _وحيث لا يحضرني منه شيء الآن _ فهو للجميع ، كل يدلي بدلوه نريد ان يفتح النظام على برنامجنا حتى نستكمل التنصيب ؟
  16. حقيقة لا اجد ما اقوله لأستاذنا وشيخنا ابي آدم ولكن سروري لا يوصف انه ينتظر : للتقويم .. والتقييم .. ومد يد العون أخي محمد أيمن جزاك الله خير سندرج الكود المذكور عند الحاجة الى اضافة مراجع معينة وقلت عند الحاجة : لان بعض المكتبات تعمل من دون اضافة مرجعها الى اكسس ( فقط يكفي تسجيلها في وندز ) ايضا هناك ملحوظة وهي ان الكود لن يعمل الا بحال وجود المكتبة داخل ملف النظام وهنا مربط الفرس
  17. اسفة اثقلت عليك العلم للجميع والنقاش للفائدة والذي فهمته انه في السنة الجديدة تكون رسوم جديدة ثم من في ذمته شيء من العام المنصرم يبقى ويطالب بسداده ان كان فهمي صحيحا : فكل ما علينا فعله هو جعل النموذج الفرعي الذي مصدره جدول الاقساط يستند الى استعلام حتى نضع المعايير اللازمه داخله والمعيار سيكون تاريخا حيث نظهر بيانات السنة الجديدة فقط اما ما قبلها فيكون له نموذج يخصه من خلال الاستعلام نفسه مع اختلاف المعيار فقط ايضا من ملاحظاتي داخل المثال ظهور الطالبات المنقولات في النموذج وهذه المسألة ايضا مثل سابقتها تحتاج الى استعلام لحجب المنقولات عن الظهور
  18. وعلى هذا درسنا السابق لم ينته بعد واصبح الحديث ذو شجون حتى اني فكرت بتغيير العنوان من باب حسن الدلالة والوصف ثم اذا تطرقنا الى المكتبات وتسجيلها احيل القارىء الى هذا العنوان
  19. يسرني مشاركتك في الدرس فالمطلب والغاية واحدة ولكني اتلطف اليك لو منحت نفسك اسما عربيا يسرك سماعه كي نناديك به وحتى يحسن النقاش تفضل من هنا http://www.officena.net/ib/index.php?showtopic=41520
  20. اسأل الله الكريم رب العرش العظيم ان يشفي والدتك ويعافيها شفاء لا يغادر سقما
  21. كل شيء ممكن بإذن الله فقط اريد توضيح الجملتين اعلاه ، اليس بين الجملتين تناقض؟ حيث ان السطر الاول من المشاركة الاولى والسطر الثاني من مشاركتك الاخيرة
  22. أولا : المعوقات درجة أمان windows حيث لا يمكننا إضافة أو تسجيل ملفات حين تكون درجة امان حساب المستخدم مرتفعة وحتى لو قمنا بتركيبها يدويا فلن يتسنى لنا ذلك الا بعد تخفيض الأمان الى الحد الأدنى ثم اعادة تشغيل النظام وهنا يتبادر سؤال : ماذا لو كان الامان على الحد الأدنى ؟ كيف نعلم ذلك ؟ وهل سيختلف الاجراء ؟ إذا : يجب اولا التأكد من درجة الامان فإن كان منخفضا حينها تتم خطوات التنصيب والا سيقوم البرنامج بتخفيض الامان ثم يعيد تشغيل النظام وهنا يتبادر تساؤل ايضا : هل سيبقى الامان منخفضا ؟ وهل يجب علينا اخبار المستخدم بالوضع الحالي ؟ أم انه يلزمنا اعادة الامان الى وضعه السابق ؟ كل هذه الامور تجعلنا _ وبالاصح تجعلني_ أفضل ان يقوم المستخدم بالعملية بنفسه حيث انها لا تأخذ من المستخدم سوى نقرتين فقط واحدة على زر ابدأ والثانية على صورة المستخدم ليجد أمامه اعدادات التحكم في حسابه . والآن الى الخطوات : 7 windows قراءة حساب المستخدم ودرجة الأمان : Dim objWShell, objReead Set objWShell = CreateObject("WScript.Shell") objReead = objWShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA") اذا كانت درجة الامان مرتفعه نقوم بتخفيضها وإلا نخرج من الحدث : If objReead = "1" Then objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD" Else Exit Sub End If ويمكن عكس الوضع : اذا كانت درجة الامان مرتفعه نقوم بتخفيضها وإلا نرفعها If objReead = "1" Then objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD" Else objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 1, "REG_DWORD" End If يأتي الآن دور تثبيت التغيير ويتحقق بإعادة تشغيل النظام ويمكن تخيير المستخدم بين التنفيذ من عدمه : If MsgBox("سيتم إعادة تشغيل النظام" & vbCrLf & _ " هل تريد المتابعة؟", _ vbQuestion + vbYesNo, _ "اعادة تشغيل النظام") = vbNo Then Exit Sub Set objWShell = Nothing Else objWShell.Run "shutdown /r /t 10 /f /d P:4:2" Set objWShell = Nothing End If انتهينا يتبع ...
  23. تفضلي تم التعديل على النموذج آمل ان يحقق المطلوب المدرسة المتوسطة تم.rar
  24. بسم الله الرحمن الرحيم اخواني الاكارم ما يقلق المبرمج عادة عند انتهاء مشروع من مشاريعه الا الملفات التشغيلية المصاحبة للبرنامج والحصول على المساعدة اللازمة لتركيبها ثم تشغيلها والتركيب والتسجيل اليدوي مزعج حتى للمبرمج فكيف بالمستخدم العادي لذا فجعل البرنامج عند التنصيب هو الذي يقوم بالمهمة مطلب ضروري ، وهو ما سنتطرق له في هذا الموضوع علما انه يوجد من تطرق لهذا الموضوع في هذا المنتدى وغيره ولكن لكل موضوع خصوصيته وطريقته فأتمنى ان تجدوا اضافة ومعلومة جديدة في هذا الموضوع وبالله التوفيق يتبع ...
  25. ولكن بغض النظر عن التسميات كيف سيتم التنفيذ هل يتم استبدالالاول الابتدائي 1/1 بــ الثاني الابتدائي 2 / 1 مثلا وهل عند التسجيل يتم ادخال هذه التسميات والارقام كتابة ام باختيار من مربعات تحرير ، حيث ان المثال المرفق ناقص وطريقة الحل هي بتوظيف استعلام تحديث عبر نموذج نضع فيه حقلين واحد (للمرحل) والآخر (للمرحل إلى) وبضغطة زر يتم الترحيل صف صف او فصل فصل
×
×
  • اضف...

Important Information