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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام يجب ان نصطاد رسالة الخطأ ، ونضيفها الى بقية القائمة ، ليصبح آخر الكود هكذا: Exit_cmd_Open_desktob_Click: Exit Sub err_cmd_Open_desktob_Click: If Err.Number = 3021 Then RC = 0 Resume Next ElseIf Err.Number = 13 Then Resume Exit_cmd_Open_desktob_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . جعفر 713.محتويات فولدر خارجى.accdb.zip
  2. 1 و 2 و 3 هذا اللي يعمله البرنامج الآن (الظاهر انك ما استعملت البرنامج!!) : a هو admin للمدينة CBR ، ومعاه المستخدمين a1 و a2 و a3 . وهذا دخول a في البرنامج . وعند فتحه لنموذج Admin ، يرى هؤلاء المستخدمين الذين من مدينته فقط ، ويستطيع ان يضيف مستخدمين لمدينته فقط ، ولا يرى احد من المدن الاخرى ، ولا يستطيع ان يضيف مستخدمين لمدن اخرى: . 4. ولم افهم قصدك في هذه النقطة ، حيث المستخدمين عندهم جدول واحد فقط يضمهم جميعا جعفر
  3. وعليكم السلام وحيا الله من جانا انا ما عملت مثل ما تريد ، ولكن ، جرب ، انت مو خسران ، انا غيّرت لون الخط الى لون الخلفية ، فالبيانات ما تقدر تشوفها ، إلا اذا كنت في الحقل . . خلي هذا الكود على حدث النقر على الحقل Ehdaa Private Sub Ehdaa_Click() On Error Resume Next Dim ctrl As Control If Me.Ehdaa = -1 Then Font_Color = RGB(255, 255, 153) Else Font_Color = RGB(0, 0, 0) End If For Each ctrl In Me.Controls If ctrl.BackColor = RGB(255, 255, 153) Then 'MsgBox ctrl.Name & vbCrLf & ctrl.Value ctrl.ForeColor = Font_Color End If Next End Sub . جعفر 712.ProgSals.mdb.zip
  4. اخي صفوان ، اخبرتك مرتين ، لا تكتب لي موضوع تعبير ، وانما اكتب لي كل نقطة برقم ، او فاصلة ، لأني ما اعرف وين يبدأ كلامك عن نقطة معينة ، ووين يتوقف وانا اعتذر عن المواصلة بهذه الطريقة
  5. الـ Admin للمدينة لما يعمل صلاحية لأي شخص في مدينته ، فلن يستطيع ان يعملها لأي مدينة اخرى
  6. جرب المستخدم a ، وكلمة السر a ، هو لمدينة معينة ، جرب المستخدم b ، وكلمة السر b، هو لمدينة اخرى ،
  7. انا لا اعرف اذا انت حذفت شيء من البرنامج ، وعملت فيه خلل!! ولكن ، اليك هذه الصور من البرنامج الذي ارفقته انا في مشاركتي اعلاه: . . . . يعني شغال تمام جعفر
  8. 1. انت قلت تريد ان تكون عندك صلاحية النظر في جميع المدن ، فكتبت اسمك Sofiane ، يعني لما انت تدخل في البرنامج باسمك وكلمة السر ، ثم تفتح النموذج Admin ، سترى جميع المدن. اما بالنسبة لباقي اللي انت كتبته ، فوالله لم افهم شيء من جملتك/تعبيرك ، والله ، وطلبت منك رجاء ، رجاء جعفر
  9. نعم هذا الرابط لتفعيل/إلغاء الشفت من برنامج خارجي وهذا الرابط لتفعيل/إلغاء الشفت من داخل البرنامج ، ويحتاج البرنامج الى اعادة تشغيل جعفر
  10. ما فهمت قصدك ابدا رجاء اكتب الملاحظات كأرقام 1 و 2 ... ، ورجاء اعطني مثال عن اللي تتكلم عنه. جعفر
  11. وعليكم السلام في نموذج Login ، نريد ان نحتفظ باسم المستخدم في متغير . وفي النموذج Form01 كلما اردت ان تفتح النموذج admin ، فيجب ان تنادي الوحدة النمطية لكي تفتحه لك باسم المستخدم الصحيح ، او Sofiane . وهذه هي الوحدة النمطية التي تعمل مصدر بيانات للنموذج admin ، وتفتحه: Option Compare Database Public Current_User As String Public frm_RecordSource As String ' Public Function Get_User() Get_User = Current_User End Function Function Get_City() As String Get_City = Current_City End Function Function Current_City() As String On Error GoTo err_Current_City Dim x() As String City = DLookup("[COM] & '|' & [CBR] & '|' & [GPL] & '|' & [Branches] & '|' & [Centres Bitumes] & '|' & [Centre de Formation] & '|' & [Direction Générale] & '|' & [UDM] & '|' & [admin]", "users", "[username]='" & Current_User & "'") x = Split(City, "|") 'which city If x(0) = True Then Current_City = "COM" ElseIf x(1) = True Then Current_City = "CBR" ElseIf x(2) = True Then Current_City = "GPL" ElseIf x(3) = True Then Current_City = "Branches" ElseIf x(4) = True Then Current_City = "Centres Bitumes" ElseIf x(5) = True Then Current_City = "Centre de Formation" ElseIf x(6) = True Then Current_City = "Direction Générale" ElseIf x(7) = True Then Current_City = "UDM" ElseIf x(8) = True Then Current_City = "Admin" End If 'Mr sofiane is exempted If Current_User = "sofiane" Then Current_City = "" frm_RecordSource = "SELECT * FROM users" Else frm_RecordSource = "SELECT username, password, admin, [" & Current_City & "] FROM users Where [" & Current_City & "]= True" End If 'Debug.Print frm_RecordSource Exit_Current_City: DoCmd.OpenForm "admin" Forms!admin.RecordSource = frm_RecordSource Exit Function err_Current_City: If Err.Number = 94 And Current_User = "sofiane" Then Current_City = "" frm_RecordSource = "SELECT * FROM users" Resume Exit_Current_City Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function جعفر 709.Database4.mdb.zip
  12. لأنه وكما قلت سابقا: بمعنى انه هناك طريقة عمل لكل شيء في حياتنا وفي الاكسس ، والحساب في ذيل الصفحة (نتيجة جمع التقارير الفرعية) ليس من ضمنها اول ما نستسلم لهذا القانون ، فهنا نبدأ المشوار بالبحث عن الطرق البديلة لتحقيق ما نريد جعفر
  13. وعليكم السلام رجاء مراجعة الموضوع السابق جعفر
  14. وعليكم السلام استاذنا الفاضل ، موجهنا الفاضل ، رفقا بنا ، فاننا لا نرى ما تراه ، وملاحظاتك للأسف مقتضبة ولا تعطي مفهوم ولا مدلول على كيفية امكاننا تعديل الخطأ !! انا قلت وقصدي كان ان نأخذ مجموع التقارير الفرعية ونجعلها في ذيل صفحة التقرير الرئيسي. الآن وقد رأيت موضوعك الجديد ، وبه مثال (عن هذا التغيير الذي تكلمت عنه هنا ولم ترفقه/تشرحه) . الشيء الغير هو طريقة جمعك لرصيد التقرير الفرعي رقم 3 و 4 هو ضربهم بثلث وثلثين: رقم 3 =Sum([raseedafter])*(1/3) ورقم 4 =Sum([raseedafter])*(2/3) . وعليه ، جمع هذه البيانات ستكون: Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) 'Me.total = Nz(DSum("[raseedafter]", "raseed", "[nationalty]=" & Me.nationalty), 0) T2 = Nz(DSum("[raseedafter]", "qry_2", "[nationalty]=" & Me.nationalty), 0) T3 = Nz(DSum("[raseedafter]", "qry_3", "[nationalty]=" & Me.nationalty), 0) * (1 / 3) T4 = Nz(DSum("[raseedafter]", "qry_4", "[nationalty]=" & Me.nationalty), 0) * (2 / 3) Me.total = T2 + T3 + T4 End Sub . الآن اصبح عندك واضحا ، لماذا من اول ما بدأنا العمل على تقاريرك الفرعية ، انا جعلت لكل واحد منهم اسم مميز ، واستعلام خاص به ، حتى في مثل هذه الحالات ، الحصول على البيانات يكون سهلا. جعفر
  15. وعليكم السلام الظاهر انك اتلخبطت بين اكواد مشاركاتي ، فرجاء استخدم هذه المشاركة . واذا تريد ان توقف الرسائل ، فانظر الى اي سطر يبدأ بـ Msgbox ،ومثل ما اخبرتك ، خلي الاشارة امامه ، ولن تشتغل هذه الرسالة (ولكن لا تعملهم كلهم مرة واحدة ، والا لن تعرف ايهم تريد او لا تريد) جعفر 703.a555.mdb.zip
  16. 1. هذا الكود لا يتعلق بحقل او جدول ، وانما بالعمليات الحسابية في هذه الوحدة Sub ، لذلك كل وحدة Sub يجب ان يكون عندها اسم آخر لإصطياد رسائل الخطأ ، يعني ما تقدر تستخدم err_cmd_click لجميع Subs اللي عندك ، 2. انت كمبرمج يجب ان تبرمج على الحقل الصحيح ، مثلا (وهذا المثال لا علاقة له برسالة الخطأ ، وانما له علاقة بسؤالك) : عندك حقلين: Date_From و Date_To وتريد ان تستخدمهم لتقرير ، ومن المعروف بانه اذا احد الحقلين فاضي فقد تحصل على رسالة خطأ من الاستعلام (وطبعا ستحصل على نتيجة خطأ من الاستعلام) ، لذلك ، يجب عليك التأكد ان هذه الحقول غير فارغة ، لذلك وعلى حدث النقر على زر فتح/معاينة التقرير ، اكتب هذا الكود: if len(me.Date_From & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_من" me.Date_From.setfocus exit sub elseif len(me.Date_To & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_الى" me.Date_To.setfocus exit sub endif جعفر
  17. وعليكم السلام امام كل سطر مال الرسائل ، مثل MsgBox "هذا هو الســجل الأخير", vbInformation + vbOKOnly, "تنبيه" ضع اشارة قبل السطر ، هكذا ' MsgBox "هذا هو الســجل الأخير", vbInformation + vbOKOnly, "تنبيه" او rem MsgBox "هذا هو الســجل الأخير", vbInformation + vbOKOnly, "تنبيه" وبيتحول لون السطر الى الاخضر ، وخلاص جعفر
  18. وعليكم السلام مثل ما قال اخونا عبدالسلام ، هكذا: private sub cmd_click() on error goto err_cmd_click .. .. .. .. exit_cmd_click: exit sub err_cmd_click: if err.number=3314 then msgbox "هنا تضع صيغة رسالتك" resume exit_cmd_click else msgbox err.number & vbcrlf & err.description endif end sub جعفر
  19. وعليكم السلام تقدر تستخدم هذا الكود: Private Sub Command1_Click() TerminateProcess ("calc.exe") End Sub Private Sub TerminateProcess(app_exe As String) Dim Process As Object For Each Process In GetObject("winmgmts:").ExecQuery("Select Name from Win32_Process Where Name = '" & app_exe & "'") Process.Terminate Next End Sub واذا ما فادك ، استعمل الكود من هنا: http://www.vbforums.com/showthread.php?318582-Terminating-Running-EXE&p=1878673#post1878673 جعفر
  20. وعليكم السلام ورحمة الله وبركاته هلا وغلا بالحبايب ، ولك كما دعوت ، ولمن احببت ، دنيا وآخره ان شاء الله جعفر
  21. 1. اساس الموضوع ، انك تعمل معيار "اسم المدينة" في الاستعلام الذي يفتح نموذج اعطاء الصلاحيات ، 2. بينما لك انت ، فتحذف المعيار من الاستعلام ، فترى جميع المدن. جعفر
  22. وعليكم السلام همممم يعني انتي في النموذج Form1 وترسلين قيمة الحقل Names1 كمعيار الى الحقل EmpNum في الاستعلام "استعلام1" ، وثم تريدين قراءة قيمة الحقل job من الاستعلام "استعلام1" الى الحقل job1 في نفس النموذج Form1 ، والحقلين موجودين في سجل واحد في الجدول Employes ، والذي يأخذ النموذج والاستعلام نتائجه منه!! هذا يبدو كأنه واجب/اختبار مدرسي!! على العموم ، تستطيعين استخدام الامر Dlookup للحصول على ما تريدين جعفر
×
×
  • اضف...

Important Information