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

ابوخليل

أوفيسنا
  • Posts

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

  • Days Won

    233

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

  1. وعليكم السلام هل يعني ان الترقيم التلقائي هو المعرف للطلاب ؟ اذا كان كذلك فانت في مشكلة حقيقية وللخروج منها هناك حلول : 1- الابقاء على الجداول كما هي والتعامل معها عبر الاستعلامات وهنا سيظهر على السطح تكرار االارقام عند الطلب والبحث فعند البحث عن رقم 7 مثلا سيخرج لنا سجلان لشخصين مختلفين وهكذا .. 2- اجراء عملية جراحية دقيقة في احدى القاعدتين لتغيير ارقام المعرفات والارقام الفرعية تبعا لذلك ويستلزم ذلك حذف العلاقات ثم اعادتها بعد الترقيم الجديد وحينئذ وبعد الدمج سيكون لزاما علينا التغيير من الترقيم التلقائي الآلي الى طرق ترقيم تلقائية اخرى ان اردنا الابقاء على هذا الرقم كمعرف
  2. وعليكم السلام اذا كانت خاصية التكامل المرجعي موجودة في العلاقة بين الجدولين فيمكنك حصر الاعداد الخاصة بكل عميل واستخراج اعلى رقم ثم تضيف اليه 1 مثال : yourTextNum= DMax( "num","yourTable"UserName=" & me.UserName)+1 اما اذا كانت الخاصية غير موجودة فيمكنك تحقيق ذلك بتوظيف استعلام يجمع بين المعرف الرئيس ورقم الحساب في الجدول الفرعي ويكون المعرف معيارا من خلال النموذج ثم استخدم الجملة التالية : yourTextNum= DMax( "num","yourQuery")+1
  3. تم نقل الموضوع الى المكان المناسب
  4. حول الملف الى امتداد mdb
  5. قد يكون لديك نقص في المكتبات في محرر الفيجوال تأكد من : Tools/References
  6. لا بأس ولكنك في سؤالك هذا خرجت عن الترقيم الى موضوع آخر . فأرى ان تخصص لهذا السؤال مشاركة جديدة
  7. بعد اذن اخي سمير اذا كان المصدر استعلاما اكتب في عنصر تحكم الحقل : =DlookUp( " filedName","QueryName") اما اذا كان المصدر نموذجا فاكتب = forms!formName!filedName شريطة ان يكون النموذج المصدر مفتوحا
  8. ارفق محاولاتك وآخر ما توصلت اليه يكتفى في المثال على النموذج والنموذج الفرعي ومصدر البيانات فقط
  9. اخي الكريم يسرنا دعوتك للمشاركة هنا http://www.officena.net/ib/index.php?showtopic=41520 اما بالنسبة لمشاركتك الاخيرة فنأمل ان تخصها بمشاركة جديدة . من الافضل وهو المطلوب ان تشتمل كل مشاركة على استفسار واحد .
  10. حول المرفق الى امتداد mdb لعلك تجد تفاعلا اكثر
  11. لكي ندرج بيانات محددة لكل طالب كالاسم ومدة التأخر او عدد الغياب او غيره داخل نص الرسالة يجب ان نأخذها من الجدول او الاستعلام لذا يلزم انشاء نموذج فرعي داخل نموذج الرسائل مصدره الجدول او الاستعلام المذكور وباستخدام الدالة For يمكننا المرور والانتقاء من مجموعة السجلات الموجودة في النموذج الفرعي ثم ادراجها بين القوسين بدلا أو مع حقل الرسالة (txtMessage.Text) : Private Sub SendMessage() Dim t As String t = send(URLEncode(username), URLEncode(Password), ConvertToUnicode(txtMessage.Text), txtSender.Text, txtNumbers.Text) ShowResult (t) End Sub
  12. يجب انتقاء عنوان مناسب يصف الموضوع تم تعديل العنوان
  13. نعم وتستحق ان تفتح لها موضوعا جديدا
  14. تم فصل الموضوع الجديد عن الموضوع السابق اخي الكريم يجب تخصيص كل مشاركة بسؤال يخصها تم التعديل وعمل المطلوب stDocName = "Rep1" If R_p = 1 Then Rm2 = Rm1 Else Rm2 = "" End If If show = 1 Then DoCmd.OpenReport stDocName, acPreview Else DoCmd.OpenReport stDocName, acViewNormal End If اجازات2.rar
  15. تم تعديل المرفق وتمت التجربة ، آمل ان يحقق مطلبك جرب .. ووافنا بما يستجد db2.rar
  16. اطلعت على المثال وما قمت به انت جميل حيث ان اسم الدورية يظهر في مربع التحرير في النموذج بمجرد كتابة الحرف الاول وايضا عند معاينة التقرير يظهر اسم الدورية في الاعلى كعنوان علما ان البحث يتم عبر الارقام وهذا طبيعي لا اعلم ما تقصد في طلبك اعلاه فان كنت تريد تحويل مربع التحرير الى حقل والبحث عن نص فهذ ا يتطلب اعادة تصميم الحقل في الجدول
  17. اخي الكريم الموضوع قديم انظر تاريخ المشاركة يغلق ،،،
  18. لا يزيد عن عشرة ؟ لانه ما زال حقلا نصيا وفي الحقل النصي التسعة اكبر من العشرة بل الاثنان اكبر من العشرة لذا فالكود يختار اكبر عدد في الحقل النصي وهو التسعة ثم يقوم بتحويله الى رقم ثم يضيف اليه واحد ليصبح عشرة ولكن رقم عشرة موجود فعلا لذا يرفض اكسس تكرار الرقم . ومن هنا يتبين من اين جاءت المشكلة التي تحدث معك . والحل هو ان نقوم بتحويل العدد المقتطع الى رقم قبل اختيار اكبر عدد وهذا ماتم تحقبقه في التعديل أدناه التعديل تم داخل سطرين فقط وقد بينتهما . Private Sub ts1_AfterUpdate() Dim db As Database Dim rs As Recordset Dim strSQL As String Dim i As Long ' (1)هذا السطر Set db = CurrentDb strSQL = "SELECT Max(CLng(Right([no1],Len([no1])-1))) AS xc FROM tb WHERE (((tb.chk)=paray()))" '(2) وهذا السطر Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot) If rs.RecordCount > 0 Then rs.MoveFirst On Error Resume Next i = rs![xc] If ts1 = 1 Then Me.no1 = "A" & i + 1 ElseIf ts1 = 2 Then Me.no1 = "B" & i + 1 ElseIf ts1 = 3 Then Me.no1 = "C" & i + 1 End If End If rs.Close Set rs = Nothing Set db = Nothing Me.chk = Me.ts1 End Sub
  19. ممكن وهو الافضل في غالب الاعمال ولكن ما عمله الاستاذ ابو عمر هو الأصح لانه محمي عن التعديل تم التعديل في المثال ادناه ولكن يجب الحذر بعدم تغيير الارقام لان الكود مبني على الارقام الثلاثة 1 ، 2 3 ترقيم تلقائي منوع 3.rar
  20. هذا كلام جديد جديد : لان ماسبق كنا نتعامل مع بيانات الحقل كرقم بالرغم ان نوع الحقل نص اما اذا ادخلنا الحروف فهنا لا يمكن تطبيق الجمل البرمجية السابقة وسنحتاج الى التعامل مع الحقل بطريقة أخرى وهذا ما تم فعله في المثال المرفق حيث يتم استبعاد الحرف ونتعامل مع بقية النص كرقم Private Sub ts1_AfterUpdate() Dim db As Database Dim rs As Recordset Dim strSQL As String Dim i As Integer Set db = CurrentDb strSQL = "SELECT Max(Right([no1],Len([no1])-1)) AS xc FROM tb WHERE (((tb.chk)=paray()))" Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot) If rs.RecordCount > 0 Then rs.MoveFirst On Error Resume Next i = rs![xc] If ts1 = 1 Then Me.no1 = "A" & i + 1 ElseIf ts1 = 2 Then Me.no1 = "B" & i + 1 ElseIf ts1 = 3 Then Me.no1 = "C" & i + 1 End If End If rs.Close Set rs = Nothing Set db = Nothing Me.chk = Me.ts1 End Sub اما بخصوص حقل chk فإن المصدر مربع التحرير وليس الجدول وانما وضعنا الحقل داخل الجدول كي نستخدمه كمعيار ، وانظر اليه في المثال الجديد لتتضح الرؤية واما زيادة الفروع مستقبلا فلا يمكننا ذلك الا بتعديل الكود ايضا ترقيم تلقائي منوع 2.rar
  21. تفضل وامل ان يفي بحاجتك db6.rar
  22. هذا بالضبط ما عملته لك راجع المثال مرة اخرى ابدأ بالترقيم من 1 وان اردت ان تبدأ من اي رقم فغير الدالة Dcount الموجودة في الكود الى DMax هذا كلام جديد
  23. يوضع هذا الكود في محرر الفيجوال الخاص بالنموذج او التقرير التطبيق المرفق وضعنا الكود في حدث طباعة التفصيل في التقرير db4.rar
×
×
  • اضف...

Important Information