-
Posts
11,720 -
تاريخ الانضمام
-
Days Won
197
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ابوخليل
-
ارفق محاولاتك وآخر ما توصلت اليه يكتفى في المثال على النموذج والنموذج الفرعي ومصدر البيانات فقط
-
اخي الكريم يسرنا دعوتك للمشاركة هنا http://www.officena.net/ib/index.php?showtopic=41520 اما بالنسبة لمشاركتك الاخيرة فنأمل ان تخصها بمشاركة جديدة . من الافضل وهو المطلوب ان تشتمل كل مشاركة على استفسار واحد .
-
حول المرفق الى امتداد mdb لعلك تجد تفاعلا اكثر
-
لكي ندرج بيانات محددة لكل طالب كالاسم ومدة التأخر او عدد الغياب او غيره داخل نص الرسالة يجب ان نأخذها من الجدول او الاستعلام لذا يلزم انشاء نموذج فرعي داخل نموذج الرسائل مصدره الجدول او الاستعلام المذكور وباستخدام الدالة 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
-
يجب انتقاء عنوان مناسب يصف الموضوع تم تعديل العنوان
-
نعم وتستحق ان تفتح لها موضوعا جديدا
-
تم فصل الموضوع الجديد عن الموضوع السابق اخي الكريم يجب تخصيص كل مشاركة بسؤال يخصها تم التعديل وعمل المطلوب 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
-
الحمد لله ،،،
-
تم تعديل المرفق وتمت التجربة ، آمل ان يحقق مطلبك جرب .. ووافنا بما يستجد db2.rar
-
اطلعت على المثال وما قمت به انت جميل حيث ان اسم الدورية يظهر في مربع التحرير في النموذج بمجرد كتابة الحرف الاول وايضا عند معاينة التقرير يظهر اسم الدورية في الاعلى كعنوان علما ان البحث يتم عبر الارقام وهذا طبيعي لا اعلم ما تقصد في طلبك اعلاه فان كنت تريد تحويل مربع التحرير الى حقل والبحث عن نص فهذ ا يتطلب اعادة تصميم الحقل في الجدول
-
اخي الكريم الموضوع قديم انظر تاريخ المشاركة يغلق ،،،
-
لا يزيد عن عشرة ؟ لانه ما زال حقلا نصيا وفي الحقل النصي التسعة اكبر من العشرة بل الاثنان اكبر من العشرة لذا فالكود يختار اكبر عدد في الحقل النصي وهو التسعة ثم يقوم بتحويله الى رقم ثم يضيف اليه واحد ليصبح عشرة ولكن رقم عشرة موجود فعلا لذا يرفض اكسس تكرار الرقم . ومن هنا يتبين من اين جاءت المشكلة التي تحدث معك . والحل هو ان نقوم بتحويل العدد المقتطع الى رقم قبل اختيار اكبر عدد وهذا ماتم تحقبقه في التعديل أدناه التعديل تم داخل سطرين فقط وقد بينتهما . 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
-
ممكن وهو الافضل في غالب الاعمال ولكن ما عمله الاستاذ ابو عمر هو الأصح لانه محمي عن التعديل تم التعديل في المثال ادناه ولكن يجب الحذر بعدم تغيير الارقام لان الكود مبني على الارقام الثلاثة 1 ، 2 3 ترقيم تلقائي منوع 3.rar
-
هذا كلام جديد جديد : لان ماسبق كنا نتعامل مع بيانات الحقل كرقم بالرغم ان نوع الحقل نص اما اذا ادخلنا الحروف فهنا لا يمكن تطبيق الجمل البرمجية السابقة وسنحتاج الى التعامل مع الحقل بطريقة أخرى وهذا ما تم فعله في المثال المرفق حيث يتم استبعاد الحرف ونتعامل مع بقية النص كرقم 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
-
تفضل وامل ان يفي بحاجتك db6.rar
-
هذا بالضبط ما عملته لك راجع المثال مرة اخرى ابدأ بالترقيم من 1 وان اردت ان تبدأ من اي رقم فغير الدالة Dcount الموجودة في الكود الى DMax هذا كلام جديد
-
يوضع هذا الكود في محرر الفيجوال الخاص بالنموذج او التقرير التطبيق المرفق وضعنا الكود في حدث طباعة التفصيل في التقرير db4.rar
-
تم تحديث الحل حسب طلبك الاخير 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
-
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
-
مداخلة بعد اذن اخي الاستاذ ابا عمر وفي حقل واحد ؟ هذا يعني قبول التكرار اي ان رقم واحد سيتكرر مرتين ورقم 2 مرتين .... وهكذا اذا كان كذلك فيجب ازالة المفتاح من الحقل وضبط الخاصية على قبول التكرار بمعنى انه سيكون للجدول مفتاحا آخر ماذا تقول ؟
-
لوسمحتم اريد برنامج لاداره صيدليه كامل لوسمحتم
ابوخليل replied to Lenegd's topic in قسم الأكسيس Access
-
بعد اذن اخي الاستاذ سمير انظر هنا لعلك تجد فائدة http://www.officena.net/ib/index.php?showtopic=49134&view=findpost&p=298300&hl=%D8%A7%D9%83%D8%B3%D9%84
-
الفرق بين Primary Key, Index , Unique Key
ابوخليل replied to فرهاد كريم's topic in قسم الأكسيس Access
انظر هنا http://www.officena.net/ib/index.php?showtopic=48569&page=2#entry301916 -
هذا الموضوع تجد فيه بغيتك http://www.officena.net/ib/index.php?showtopic=49880
-
التمس لإخوانك عذرا بارك الله فيك وبالنسبة لطلبك فلتفريغ حقل text1 مثلا اكتب في حدث الزر : text1 = "" وهكذا لجميع الحقول المطلوب تفريغها يمكنك وضعها في حدث زر واحد