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

Barna

الخبراء
  • Posts

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

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

  • Days Won

    24

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

  1. ابحث عن هذا الكود لديك واستبدله بهذا ... ("SELECT STUDENT.STUACDID, STUDENT.STUNAME FROM STUDENT WHERE (((STUDENT.المادة)='" & text3 & "') AND ((STUDENT.الشعبة)='" & RS_SECTIONS![الشعبة] & "')) ORDER BY STUDENT.STUNAME;")
  2. الكود شغال في الملف .... انظر ...
  3. هل اخترت من النموذج الصف المادة المعلم
  4. تم التوصل الى المطلوب وهذا هو التعديل .... Dim fldrname As String Dim fldrpath As String Dim LExcelOriginal As String Dim LExcelCopyOf As String Dim WHERE$ '.. اللاحقة $ تعني أن المتغير نصي Dim RS_SECTIONS As DAO.Recordset Dim RS_STUDENTS As DAO.Recordset Dim fso As Object Dim objExcel As Object Dim objWorkbook As Object '-- إنشاء مجلد للمقرر Set fso = CreateObject("scripting.filesystemobject") fldrname = Me.[text3] fldrpath = CurrentProject.Path & "\السجل الالكتروني\" & fldrname If Not fso.FolderExists(fldrpath) Then fso.createfolder (fldrpath) End If '-- التأكد من توفر البيانات الأولية If Len(Me.text2) Then WHERE$ = " WHERE (Student.المادة='" & Me.text3 & "')AND (Student.الشعبة='" & Me.text2 & "')" ElseIf Len(Me.text3) Then WHERE$ = " WHERE (Student.المادة='" & Me.text3 & "')" Else MsgBox "بينات التصدير غير مكتملة" Exit Sub End If '-- إيجاد الشعب Set RS_SECTIONS = CurrentDb.OpenRecordset _ ("SELECT DISTINCT [الشعبة] FROM Student " & WHERE$ & "ORDER BY [الشعبة]") If RS_SECTIONS.RecordCount = 0 Then MsgBox "لا توجد بيانات لتصديرها" Exit Sub End If '-- نسخ قالب مصنف البيانات إلى مجلد المقرر LExcelOriginal = sXlsFile LExcelCopyOf = CurrentProject.Path & "\السجل الالكتروني\" & fldrname & "\" & Me.[text3] & "_.xlsm" Call FileCopy(LExcelOriginal, LExcelCopyOf) Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open(LExcelCopyOf) '-- تدوير البيانات بناء على الشعب Dim SHEET% SHEET% = 2 Do Until RS_SECTIONS.EOF '-- إيجاد أسماء الطلاب بناء على الشعبة Set RS_STUDENTS = CurrentDb.OpenRecordset _ ("SELECT STUACDID,STUNAME FROM STUDENT WHERE [الشعبة]='" & RS_SECTIONS![الشعبة] & "' ORDER BY STUNAME") ' تعديل اسم صفحات الاكسل حسب اسماء الاستعلامات objWorkbook.Sheets(SHEET%).Name = RS_SECTIONS![الشعبة] '-- بيانات الترويسة objWorkbook.Sheets(SHEET%).range("B1").Value = _ "اسماء طلاب الصف " & "(" & Me.[text1] & ")" _ & " -- " & "(" & RS_SECTIONS![الشعبة] & ")" _ & " المادة " & "(" & Me.[text3] & ")" _ & " معلم المادة / " & "(" & Me.[text4] & ")" '-- بيانات الطلاب objWorkbook.Sheets(SHEET%).range("c5").CopyFromRecordset RS_STUDENTS SHEET% = SHEET% + 2 '-- الانتقال إلى الشعبة التالية RS_SECTIONS.MoveNext Loop '-- حفظ البيانات objExcel.DisplayAlerts = True objWorkbook.Close SaveChanges:=True '-- إغلاق المصادر objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing Set RS_SECTIONS = Nothing Set RS_STUDENTS = Nothing ' VBA.Shell "Explorer.exe " & Chr(34) & LExcelCopyOf & Chr(34), vbNormalFocus"هذا السطر لفتح ملف الاكسل بعد التصدير" ' DoCmd.DeleteObject acTable, "temp" MsgBox "تم تصديرالبيانات بنجاح" تم اضافة هذه الشيفرية .... ' تعديل اسم صفحات الاكسل حسب اسماء الاستعلامات objWorkbook.Sheets(SHEET%).Name = RS_SECTIONS![الشعبة]
  5. اهلا بك استاذي الفاضل .... الهدف من التعديل المطلوب وهو : ان للمادة الواحدة اكثر معلم للشعب المختلفة وملف الاكسل ملف عام فمثلا مادة الاحياء1 لدينا ثلاث معلمين مثلا فليس من المنطق أن اجعل الملف الالكتروني المصدرله ثلاث ملفات ( بل يكون ملف عام لكل تخصص ) وعند اختيار الملف من البرنامج أحياء مثلا يقوم البرنامج كما فعلت انت نسخة ثم ملئ البيانات حسب المعلم بحيث يصدر اسماء الشعب الى كل شيت ويقوم البرنامج بتغيير اسم الشيت حسب الشعبة ... ارجو ان اكون وضحت الصورة .... وبارك الله في أخي الكريم ...
  6. اخي @أبو إبراهيم الغامدي هل يمكن تعديل الشيفرة السابقة ليكون اسم الشيت هو اسم الشعبة المصدرة لتلك الورقة ...... بارك الله فيك ..
  7. ممكن توضيح اكثر ... ماهو هذا الكود
  8. اذا كان كلامك على النموذج ممكن تطبق كما يلي مع تعديل المسميات ::: Select Case Nz(e2) Case Is >= 90 [r2] = "ممتاز" Case Is >= 80 [r2] = "جيد جدا" Case Is >= 70 [r2] = "جيد" Case Is >= 50 [r2] = "مقبول" Case Is < 50 [r2] = "ضعيف" End Select اذا كان استعلام ممكنقاعدة IF بهذه الصورة new: IIf([Retba]="ملازم";"ملازم اول";IIf([Retba]="ملازم اول";"نقيب";IIf([Retba]="نقيب";"رائد")))
  9. اجعل الامر في النموذج الفرعي Public Sub ثم استدعها من الرئيسي Forms!F1.f2.Form.اسم Public Sub
  10. احذف كود الانتقال للسطر التالي ..... ونفذ ماهو في الصورة واعلمنا بالنتيجة
  11. حياك الله اخي محمد اهلابك .... جزاك الله خيرا
  12. طيب هل جربت ملف الصلاحيات حق حبيبنا ابا جودي أنظر كل قسم أو كل مجموعة استطيع من البرنامج تحديد النماذج التي تفتح دون الاخرى انظر الصور ...
  13. حسب شرحك الان اتضحت الفكرة ... ولكن اعتقد ان طريقة الصلاحيات التي عملها اباجودي كانت اكثر من رائعة وتلبي طلبك مية في المية ... لانه عاملها بحيث تظهر النماذج حسب الصلاحية فقط ... ولا تظهر الاخرين
  14. شوف كدا ... ممكن ... اذا هو ما تريد اكمل الاخير .... Users.accdb
  15. بعد اذنك استاذي القدير محمد استخدم هذا مع تعديل مايلزم ... Select Case TabCtl0 Case Is = 0 If InputBox("أدخل كلمة المرور للتعديل ", "حماية التعديل ") <> "1" Then MsgBox " كلمة المرور غير صحيحة ", vbInformation, " تنبيه " Else MsgBox "كلمة المرور صحيحة ", vbInformation, " تنبية" 'Form.AllowEdits = True End If Case Is = 1 If InputBox("أدخل كلمة المرور للتعديل ", "حماية التعديل ") <> "2" Then MsgBox " كلمة المرور غير صحيحة ", vbInformation, " تنبيه " Else MsgBox "كلمة المرور صحيحة ", vbInformation, " تنبية" 'Form.AllowEdits = True End If Case Is = 2 If InputBox("أدخل كلمة المرور للتعديل ", "حماية التعديل ") <> "3" Then MsgBox " كلمة المرور غير صحيحة ", vbInformation, " تنبيه " Else MsgBox "كلمة المرور صحيحة ", vbInformation, " تنبية" 'Form.AllowEdits = True End If End Select
  16. هل هذا ما تريد --------->>>> ترقيم متسلسل.accdb
  17. ممكن ترفق لنا اما الكود او مثال للاستعلامات حتى نجربها ....
  18. اين تريد الرقم التسلسلي وهل هي بزيادة واحد أم ماذا رجاء اشرح مع توضيح اكثر بارك الله فيك هل تريدها في موقع السهم في الصورة
  19. اكتب هذا الحدث --------------->>>>> If ((Eval("DLookUp(""[no]and[name_1]and[date_1]"",""[Table1]"",""[no] = Form.[no] and [name_1] = Form.[name_1]and [date_1] = Form.[date_1] "") Is Not Null"))) Then MsgBox "عـفواً ، تم تسجيـل هذا الإسم الكامل بالفعل", vbMsgBoxRtlReading, "منع تكرار" DoCmd.RunCommand acCmdDelete End If
  20. جرب المرفق التالي .... الصادر والوارد.rar
  21. وعليكم السلام @Ahmed_J حياك الله ...
  22. ممكن تستخدم مثلا هذا الكود ان اردت ..... If Len([mobile1]) < 11 Or Len([mobile1]) > 11 Then Beep MsgBox " عقواً .... تأكد من رقم الموبايل الصحيح ", 64, "تنبيه" Cancel = True Me.mobile1 = "" End If With mobile1 If Not IsNumeric(.Value) And .Value <> vbNullString Then Beep MsgBox "عفوا ... مسموح ادخال الارقام فقط", 16, " تحذير" .Value = vbNullString End If If Mid(mobile1, 1, 3) <> "078" Then MsgBox "عفوا ... تأكد من رقم الشبكة", 16, " تحذير" Me.mobile1 = "" End If End With
  23. اصنع زر امر وضع فيه هذا الكود ..... DoCmd.PrintOut
×
×
  • اضف...

Important Information