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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وهي تجربتي 100% كذلك ، ولعدة اسباب فانا استعمل نوعين من الماكرو فقط ، ماكرو ليفتح عند فتح البرنامج ، ويجب ان يكون اسمه autoexec ، والماكرو الآخر هو لوقف اسخدام ازرار الكيبورد للدخول في الكود وقائمة كائنات البرنامج ، اما بقية برامجي فاستخدم VBA هذه ليست رموز ، انما لأنك كاتب اسم النموذج بالعربي (ونحن دائما نقول: يجب ان تكتب اسماء الكائنات جميعها بالانجليزية ، الجداول والنماذج والاستعلامات والتقارير والماكرو ، واسماء الحقول) ، فالبرنامج كتب ارقام الحروف بالـ ascii code ، ولم يستعمل الامر chr بسبب استعمالك للحروف العربية ، فإستخدم chrW ومن الرابط المرفق تحصل على ارقام الحروف العربية ، مثلا ChrW(1608) = و http://sites.psu.edu/symbolcodes/languages/mideast/arabic/arabicchart/ جعفر
  2. وعليكم السلام النموذج معطوب ، فلا يمكنك الاستفادة منه ، لذا عملت لك نسخه من كائناته في نموذج جديد بإسم PaymentEach ، ولكن للعلم ، قد تكون احد كائنات النموذج هي السبب في جعل النموذج معطوب ، فالافضل ان تعمل النموذج من جديد!! استطعت/تستطيع فتح النموذج القديم هكذا: نموذجك اسمه PaymentEach_OLD ، لما تنقر عليه مرتين تحصل على هذه الرساله (انا عملت ماكرو بإسم تكبير والذي كان يطلبه البرنامج ،وطلبت منه يعطين هذه الرساله) : . سينفتح النموذج ، ثم انقر بالفأرة اليمين ، فتحصل على هذه الرسالة . انقر ok ، وستحصل على القائمة التالية ، فإنقر على Design view . فينفتح لك النموذج في وضع التصميم . وكما اخبرتك ، فإنه معطوب ولا تستطيع استعماله ، وانما استعمل النوذج الآخر الذي عملت لك. جعفر dd.zip
  3. تفضل Function chk_BeforeUpdate(Cancel As Integer) On Error GoTo err_chk_BeforeUpdate Dim ctl As Control Dim rst As DAO.Recordset Dim dbs As DAO.Database Dim fName As String: Dim myCriteria As String Dim A0 As String: Dim A1 As String: Dim A2 As String Set ctl = Me.ActiveControl fName = "[" & Mid(ctl.Name, 1, Len(ctl.Name) - 1) & "-مادة" & Right(ctl.Name, 1) & "]" '[الاثنين-مادة1] myCriteria = "[" & ctl.Name & "]=" & Chr(39) & ctl.Value & Chr(39) 'A0 = DLookup(ctl.Name, "Teacher Class", myCriteria) 'A1 = DLookup(fName, "Teacher Class", myCriteria) 'A2 = DLookup("[NAMEe]", "Teacher Class", myCriteria) Set dbs = CurrentDb Set rst = dbs.OpenRecordset("Select * From [Teacher Class] Where " & myCriteria) A0 = rst(ctl.Name) A1 = rst(fName) A2 = rst!namee ' If A0 > 0 Then Beep If MsgBox("...هذا الفصل " & ctl.Name & "..لديه مادة.." & vbCrLf & _ " باسم : " & A1 & vbCrLf & _ " للمدرس : " & A2, _ vbYesNo + vbCritical + vbMsgBoxRight, "تنبيه") = vbNo Then Me.Undo Cancel = True End If ' End If Exit_chk_BeforeUpdate: rst.Close: Set rst = Nothing: dbs.Close Exit Function err_chk_BeforeUpdate: If err.Number = 3021 Then Resume Next Else MsgBox err.Number & vbCrLf & err.Description End If End Function جعفر
  4. الآن جاء دوري في شرح كود الاستاذ شفان Nz([cut];0)) Nz معناه Null to Zero ، اي تحويل قيمة اللاشيء (لاحظ ان ما قلت الفاضي ، لأن الفاضي معناه انه كانت هناك قيمة وتم تفريغها) للحقل cut الى صفر (ويمكنك وضع اي قيمة او حرف بدل الصفر) مختصر كفاية وهاي الشرح المطول: جعفر
  5. السلام عليكم اخوي حمدي انا مسافر ، فما قدرت انظر في المنتدى الا الآن في الواقع انا لم اغير في المعادلة اللي انت كنت عاملها، ولكني عملتها بطريقة اخرى ، وبنفس نتائج معادلتك!! صحيح ما كانت تظهر لك رسالة الخطأ ، ولكن النتيجة هي هي!! انت تقول في الكود: اذا "1/1ب" > 0 (مثلا) وطبعا ما ممكن ان تقارن حقل نصي بهذه الهيئة مع الصفر ، فتظهر لك رسالة الخطأ !! هنا انا طلبت من الكود عدم استخدام هذا السطر ، فجربه: Function chk_BeforeUpdate(Cancel As Integer) Dim ctl As Control Dim rst As DAO.Recordset Dim dbs As DAO.Database Dim fName As String: Dim myCriteria As String Dim A0 As String: Dim A1 As String: Dim A2 As String Set ctl = Me.ActiveControl fName = "[" & Mid(ctl.Name, 1, Len(ctl.Name) - 1) & "-مادة" & Right(ctl.Name, 1) & "]" '[الاثنين-مادة1] myCriteria = "[" & ctl.Name & "]=" & Chr(39) & ctl.Value & Chr(39) 'A0 = DLookup(ctl.Name, "Teacher Class", myCriteria) 'A1 = DLookup(fName, "Teacher Class", myCriteria) 'A2 = DLookup("[NAMEe]", "Teacher Class", myCriteria) Set dbs = CurrentDb Set rst = dbs.OpenRecordset("Select * From [Teacher Class] Where " & myCriteria) A0 = rst(ctl.Name) A1 = rst(fName) A2 = rst!namee ' If A0 > 0 Then Beep If MsgBox("...هذا الفصل " & ctl.Name & "..لديه مادة.." & vbCrLf & _ " باسم : " & A1 & vbCrLf & _ " للمدرس : " & A2, _ vbYesNo + vbCritical + vbMsgBoxRight, "تنبيه") = vbNo Then ctl.Value = "" End If ' End If rst.Close: Set rst = Nothing: dbs.Close End Function جعفر
  6. تفضل جرب هاي المرفق 942.جدول الحصص.accdb.zip
  7. وعليكم السلام شوف هذا الرابط وبالذات هذه الفقرة
  8. وعليكم السلام واهلا وسهلا بك في المنتدى جرب هذا الرابط: جعفر
  9. قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف
  10. بدل استخدام الصورة مباشرة ، استخدم زر وعليه صورة: . او تقدر تستخدم زر فوق الصورة ، وتخليه شفاف جعفر
  11. انا لم استعمل الكود سابقا ، ولكني اعرف ان الكود سيقوم بعمل "العمل اليدوي" ، وبالتالي نصل الى نفس النقطة!! جعفر
  12. الطريقة الاولى ، وهي المعتادة: اجعل (Tab index) الحقل الاول = 0 اجعل (Tab index) الحقل الثاني = 1 اجعل (Tab index) الايقونه = 2 بينما طريقة اخي كاسر هي: اجعل (Tab index) الحقل الاول = 0 اجعل (Tab index) الحقل الثاني = 1 وفي حدث "بعد التحديث" للحقل رقم 2 ، اكتب (على اساس اسم الايقونه A ) : me.A.SetFocus جعفر
  13. وعليكم السلام بما اني لم اجرب هذا الشيء ، فاضطررت ان ابحث عنه ، ولقيت هذين الحلين من هنا: https://answers.microsoft.com/en-us/office/forum/office_2010-access/open-accdr-file-protected-with-database-password/0c363087-577e-4888-a970-d2a67276bae5?page=3 الاول يتطلب ادخال الباسورد Dim strPath As String strPath = "YourPath\To\OtherDatabase.accdr" Application.FollowHyperlink strPath والاخر Sub StartPasswordedDatabaseRuntime( _ strPathToDatabase As String, _ Optional strPassword As String, _ Optional strPathToRuntime As String, _ Optional blnQuit As Boolean) ' Start a runtime database that has a database password. Dim appRT As Access.Application Dim strPathToDummy As String Dim blnStillOpen As Boolean Const Q As String = """" If Len(strPassword) = 0 Then strPassword = InputBox("Please enter password:") End If If Len(strPathToRuntime) = 0 Then strPathToRuntime = SysCmd(acSysCmdAccessDir) & "msaccess.exe" End If strPathToDummy = CurrentProject.path & "\Dummy.accdb" If Len(Dir(strPathToDummy)) = 0 Then Application.DBEngine.CreateDatabase strPathToDummy, dbLangGeneral, dbVersion120 End If Shell _ Q & strPathToRuntime & Q & " " & Q & strPathToDummy & Q & " /runtime", _ vbNormalFocus Set appRT = GetObject(strPathToDummy) With appRT .CloseCurrentDatabase .OpenCurrentDatabase strPathToDatabase, , strPassword End With On Error Resume Next blnStillOpen = True Do While blnStillOpen DoEvents Err.Clear If appRT Is Nothing Then blnStillOpen = False ElseIf Len(appRT.CurrentProject.path) = 0 Then blnStillOpen = False End If If Err.Number <> 0 Then blnStillOpen = False End If Loop If blnQuit Then Application.Quit ' if we're done here. End If End Sub جعفر
  14. السلام عليكم اخوي ابو زاهر اذا كان النموذج مستمر: فأي تنسيق/تغيير تعمله على حقل ، فجميع الحقول تأخذ هذا التنسيق/التغيير ، فالطريقة الوحيدة لعمل تنسيق/تغيير على حقل معين ، هو عن طريق التنسيق الشرطي (سواء يدويا في النموذج مباشرة ، او عن طريق الكود). جعفر
  15. بالعكس ، اكثر من مشاركة تعتبر اثراء للموضوع واذا لاحظت ، فانا لم اشير الى SetFocus في مشاركتي جعفر
  16. وعليكم السلام 1. للتنقل بين كائنات النموذج ، انظر هنا وللعلم ، الايقونه (الصورة) تعتبر كائن في الاكسس ، 2. مادام نموذج الاكسس مصدر بياناته مرتبط بجدول/استعلام ، فهو يحفظ البيانات تلقائيا ، بزر او بدون زر ، فاذا اردت ان تحفظ البيانات بزر ، فيجب ان التعامل لحفظ البيانات بالكود. جعفر
  17. وعليكم السلام نعم ، تظهر هذه الرسالة مرة واحدة فقط عند التشفير ، فما هي المشكلة؟ جعفر
  18. If txtc > 0 Then Beep If MsgBox("...هذا الفصل " & الاحد1 & "..لديه مادة.." & vbCrLf & _ " باسم : " & txtc2 & vbCrLf & _ " للمدرس : " & txtc3, _ vbYesNo + vbCritical + vbMsgBoxRight, "تنبيه") = vbNo Then Cancel = True End If End If
  19. اليك رابطين و و http://www.databasedev.co.uk/report_printing.html جعفر
  20. تقريبا صحيح ، ولكن تحتاج تفصيل شوي: لما تجيب البيانات من الجدول ، ثم تشتغل عليها في النموذج/الاستعلام/التقرير/الكود ، تستخدم Sum ، مثل في النموذج (كما هو الحال في مثالك)، ومثل استخدام الامر Sum في الاستعلام ، ولكن ، وبغض النظر اين كنت ، وقد تكون قد جلبت البيانات من الجدول ، فعند استخدام DSum ، فانت تطلب البيانات من الجدول مرة اخرى جعفر
  21. وعليكم السلام اخي عبد اللطيف الاوامر Dcount و Dsum و Dlookup و Dmax Dmin و Dlast ، هي عبارة عن استعلام يأخذ بياناته من الجدول او الاستعلام (في نهاية الامر المعلومة تكون مأخوذه من الجدول) ، ولهذا السبب ، وخصوصا اذا كان البرنامج في شبكة ، فيجب علينا اخذ اكبر قدر من البيانات في كل مرة نزور فيها الجدول ، يعني نقلل عدد الزيارات للجدول قدر الامكان ، حتى يقل الضغط على الشبكة ، ويقل الضغط على الجداول ، فتعمل الخلفية/الجداول بطريقة افضل ، فعليه ، واذا اخذنا البيانات من الجداول الى النموذج في الواجهة (كما هو الحال في برنامجك المرفق) ، فيجب ان نستفيد من هذه البيانات لحساب/جمع/طرح المطلوب ، ولا نرجع للجدول لأخذ بيانات صارت موجودة في النموذج ، فبدل ان نستعمل DCount ونأخذ البيانات من الجدول ، نستطيع استعمال Count ، والتي ستحسب البيانات من النموذج ، هكذا: . ولمزيد من التوضيح عن اخذ بيانات اكثر من حقل واحد من الجدول ، دفعة واحد ، بإستخدام اوامر DLookup : https://www.officena.net/ib/topic/61152-سؤال-فى-الاختيار-من-كمبوبوبكس/?tab=comments#comment-394338 ولتوضيح الرابط اعلاه https://www.officena.net/ib/topic/77349-dlookup-للبحث-فى-حقلين-مدموجين-ثم-توزيع-الناتج-على-مربعى-نص-بالتقرير-إبداعات-الأخ-جعفر/?do=findComment&comment=496423 جعفر
  22. وعليكم السلام يا سيد جمال لم اضطر لعمل الذي تقوم به ، لذلك فليس عندي خبرة في الموضوع ، ولكن وبعد البحث ، توصلت الى الروابط الاجنبية التالية: 1. الخطوات كامله ، بدون كود https://www.askvg.com/guide-how-to-take-ownership-permission-of-a-file-or-folder-manually-in-windows/ 2. استخدام الكود ، من الرابط: https://answers.microsoft.com/en-us/windows/forum/windows_7-security/in-windows-7-getting-error-access-denied-when/42e8d16a-6f7a-e011-9b4b-68b599b31bf5 Method 2: Taking ownership of a folder from command line Open an elevated Command Prompt window. To do so: 1. Go to > Start > All Programs > Accessories 2. Right-click on Command Prompt, and then click Run as Administrator. 3. Type the following command and press ENTER: takeown /f <foldername> /r /d y 4. To assign the Administrators group Full Control Permissions for the folder, use this syntax: icacls <foldername> /grant administrators:F /T The /T parameter is added so that the operation is carried out through all the sub-directories and files within that folder. 5. To know more information about the above commands, run these commands from a Command Prompt window. takeown /? icacls /? Once you take ownership, you can grant permissions on those folders. . 3. الإستعانة ببرنامج خارجي ، وبدون كود: https://www.askvg.com/add-take-ownership-option-in-file-folder-context-menu-in-windows-vista/ جعفر
  23. وعليكم السلام تفضل مع مراعاة الملاحظة: بدل If ctl.ControlType = acTextBox Then اكتب If ctl.ControlType = acTextBox or ctl.ControlType = accombobox Then جعفر
×
×
  • اضف...

Important Information