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

ابوخليل

أوفيسنا
  • Posts

    11,720
  • تاريخ الانضمام

  • Days Won

    197

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

  1. ارفق محاولاتك وآخر ما توصلت اليه يكتفى في المثال على النموذج والنموذج الفرعي ومصدر البيانات فقط
  2. اخي الكريم يسرنا دعوتك للمشاركة هنا http://www.officena.net/ib/index.php?showtopic=41520 اما بالنسبة لمشاركتك الاخيرة فنأمل ان تخصها بمشاركة جديدة . من الافضل وهو المطلوب ان تشتمل كل مشاركة على استفسار واحد .
  3. حول المرفق الى امتداد mdb لعلك تجد تفاعلا اكثر
  4. لكي ندرج بيانات محددة لكل طالب كالاسم ومدة التأخر او عدد الغياب او غيره داخل نص الرسالة يجب ان نأخذها من الجدول او الاستعلام لذا يلزم انشاء نموذج فرعي داخل نموذج الرسائل مصدره الجدول او الاستعلام المذكور وباستخدام الدالة 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
  5. يجب انتقاء عنوان مناسب يصف الموضوع تم تعديل العنوان
  6. تم فصل الموضوع الجديد عن الموضوع السابق اخي الكريم يجب تخصيص كل مشاركة بسؤال يخصها تم التعديل وعمل المطلوب 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
  7. تم تعديل المرفق وتمت التجربة ، آمل ان يحقق مطلبك جرب .. ووافنا بما يستجد db2.rar
  8. اطلعت على المثال وما قمت به انت جميل حيث ان اسم الدورية يظهر في مربع التحرير في النموذج بمجرد كتابة الحرف الاول وايضا عند معاينة التقرير يظهر اسم الدورية في الاعلى كعنوان علما ان البحث يتم عبر الارقام وهذا طبيعي لا اعلم ما تقصد في طلبك اعلاه فان كنت تريد تحويل مربع التحرير الى حقل والبحث عن نص فهذ ا يتطلب اعادة تصميم الحقل في الجدول
  9. اخي الكريم الموضوع قديم انظر تاريخ المشاركة يغلق ،،،
  10. لا يزيد عن عشرة ؟ لانه ما زال حقلا نصيا وفي الحقل النصي التسعة اكبر من العشرة بل الاثنان اكبر من العشرة لذا فالكود يختار اكبر عدد في الحقل النصي وهو التسعة ثم يقوم بتحويله الى رقم ثم يضيف اليه واحد ليصبح عشرة ولكن رقم عشرة موجود فعلا لذا يرفض اكسس تكرار الرقم . ومن هنا يتبين من اين جاءت المشكلة التي تحدث معك . والحل هو ان نقوم بتحويل العدد المقتطع الى رقم قبل اختيار اكبر عدد وهذا ماتم تحقبقه في التعديل أدناه التعديل تم داخل سطرين فقط وقد بينتهما . 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
  11. ممكن وهو الافضل في غالب الاعمال ولكن ما عمله الاستاذ ابو عمر هو الأصح لانه محمي عن التعديل تم التعديل في المثال ادناه ولكن يجب الحذر بعدم تغيير الارقام لان الكود مبني على الارقام الثلاثة 1 ، 2 3 ترقيم تلقائي منوع 3.rar
  12. هذا كلام جديد جديد : لان ماسبق كنا نتعامل مع بيانات الحقل كرقم بالرغم ان نوع الحقل نص اما اذا ادخلنا الحروف فهنا لا يمكن تطبيق الجمل البرمجية السابقة وسنحتاج الى التعامل مع الحقل بطريقة أخرى وهذا ما تم فعله في المثال المرفق حيث يتم استبعاد الحرف ونتعامل مع بقية النص كرقم 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
  13. هذا بالضبط ما عملته لك راجع المثال مرة اخرى ابدأ بالترقيم من 1 وان اردت ان تبدأ من اي رقم فغير الدالة Dcount الموجودة في الكود الى DMax هذا كلام جديد
  14. يوضع هذا الكود في محرر الفيجوال الخاص بالنموذج او التقرير التطبيق المرفق وضعنا الكود في حدث طباعة التفصيل في التقرير db4.rar
  15. تم تحديث الحل حسب طلبك الاخير Private Sub ts1_AfterUpdate() On Error Resume Next Dim i, x, z As Integer i = DCount("no", "tb", "chk=1") x = DCount("no", "tb", "chk=2") z = DCount("no", "tb", "chk=3") If ts1 = 1 Then Me.no = i + 1 ElseIf ts1 = 2 Then Me.no = x + 1 ElseIf ts1 = 3 Then Me.no = z + 1 End If Me.chk = Me.ts1 End Sub وانظر التطبيق حيث يلزم اضطرارا وضع حقل في الجدول يبين النوع ترقيم تلقائي منوع.rar
  16. Option Compare Database Dim x As Integer Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) If IsNull(Text1) = True Then 'بدء الترقيم من 216 Text1 = 216 x = 1 Else Text1 = x + Text1 End If End Sub
  17. مداخلة بعد اذن اخي الاستاذ ابا عمر وفي حقل واحد ؟ هذا يعني قبول التكرار اي ان رقم واحد سيتكرر مرتين ورقم 2 مرتين .... وهكذا اذا كان كذلك فيجب ازالة المفتاح من الحقل وضبط الخاصية على قبول التكرار بمعنى انه سيكون للجدول مفتاحا آخر ماذا تقول ؟
  18. بعد اذن اخي الاستاذ سمير انظر هنا لعلك تجد فائدة http://www.officena.net/ib/index.php?showtopic=49134&view=findpost&p=298300&hl=%D8%A7%D9%83%D8%B3%D9%84
  19. انظر هنا http://www.officena.net/ib/index.php?showtopic=48569&page=2#entry301916
  20. هذا الموضوع تجد فيه بغيتك http://www.officena.net/ib/index.php?showtopic=49880
  21. التمس لإخوانك عذرا بارك الله فيك وبالنسبة لطلبك فلتفريغ حقل text1 مثلا اكتب في حدث الزر : text1 = "" وهكذا لجميع الحقول المطلوب تفريغها يمكنك وضعها في حدث زر واحد
×
×
  • اضف...

Important Information