-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
آسف ، ما اعرف!! عندك نسختي ونسختك ، واعمل مقارنه بينهما جعفر
-
تفضل ، المرفق بطريقة اخي رمهان جعفر 724.1.55.accdb.zip
-
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
تفضل تم الاستغناء عن كود xsql بالكامل ، واستخدام الاستعلام Qry_T1 بدلا عنه جعفر 722.1.up.accdb.zip -
وعليكم السلام الرابط التالي يوضح طريقة الحساب ، والتي توضح صورتك المرفقه: http://egyptera.org/ar/t3reefa.aspx جعفر
-
شكرا اخي رمهان بالفعل ، يمكن الاستغناء عن الكود ، واستعمال المعادلة التاليه في الحقل مباشرة: =IIf(IsError([تابع15]![نص13]),0,[تابع15]![نص13]) جعفر
-
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
تفضل جعفر 722.1.up.accdb.zip -
السلام عليكم الطريقة التي اقترحتها لم تفلح ، لذا استخدمت الكود التالي لعمل اللازم Private Sub Sub_Values() On Error GoTo err_Sub_Valuest Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From [مساعد يوميه]") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'a pause is required PauseTime = 0.5 Start = Timer Do While Timer < Start + PauseTime DoEvents Loop If RC > 0 Then Me.نص130 = Me.[تابع15]![نص13] Me.نص228 = Me.[تابع15]![نص23] Me.نص28 = Me.[تابع15]![نص17] Me.نص132 = Me.[تابع15]![نص29] End If rst.close: Set rst = Nothing Exit Sub err_Sub_Valuest: If Err.Number = 3021 Then 'No Records in SubForm Me.نص130 = 0 Me.نص228 = 0 Me.نص28 = 0 Me.نص132 = 0 ElseIf Err.Number = 3061 Then 'parameter required Set db = CurrentDb Set qdf = db.QueryDefs("[مساعد يوميه]") For Each prm In qdf.Parameters prm.Value = Eval(prm.name) Next prm Set rst = qdf.OpenRecordset(dbOpenDynaset) Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . ونناديها مرتين ، مرة في الحالي للنموذج الرئيسي ، ومرة عند تغيير التاريخ: Private Sub Form_Current() Me.[تابع15].Requery Call Sub_Values End Sub Private Sub n2_Exit(Cancel As Integer) Call cmd_Search2_Click Call Sub_Values End Sub . جعفر 724.55.accdb.zip
-
السلام عليكم الظاهر انك ارفقت البرنامج الخطأ !! جعفر
-
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
طيب لو تكمل جميلك وترد على باقي السؤال لوسمحت: جعفر -
وعليكم السلام أهلا بك في المنتدى سؤالك غير واضح ، فرجاء توضيحه اكثر بمرفق ، وتوضح لنا من المرفق ما تريده ، وياريت تعمل لنا الشكل الاخير لما تريده ، سواء في ملف وورد او حتى صورة جعفر
-
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
أخي الفاضل 1. سؤالك غير واضح ، 2. الجدول sales لا يوجد به هذه الحقول !! لذا ، رجاء الاخذ من وقتك ، واعطنا شرح وافي ومثال واضح وارقام من برنامجك ، والنتيجة التي تريد الوصول اليها (ولو عن طريق برنامج الاكسل او وورد او صورة). جعفر -
وعليكم السلام اخي وضاح هذا الخطأ ينتج لما تكون عندك معادلة لحقل ومافيه بيانات ، لذا تقدر تستعمل iif الشرطية: اذا في بيانات ، فقم بالمعادلة ، واذا مافي بيانات فاعطنا "" ، مثلا من http://allenbrowne.com/RecordCountError.html : =IIf([Form].[Recordset].[RecordCount] > 0, Sum([Amount]), 0) وهناك شرح اكثر في الرابط اعلاه. جعفر
-
وعليكم السلام انت تريد ان تفتح النموذج MONTH TARGET ، ولكن بتصفيته حسب التاريخ الذي في الحقل Text21 DoCmd.OpenForm "MONTH TARGET", , , "[ProdPlanDate]=#" & Me.Text21 & "#" جعفر
-
السلام عليكم اخي bahnay انا اتفق مع اخي co2002co ، ولكن وكما قلت انت ، قد يكون برنامجك له خصوصية تتطلب هذا العمل!! اقتراحي: 1. العمل على جدول واحد فقط ، ويمكنك توضيح المعادلات والنسب التي تريد تنفيذها ، فقد نستطيع عملها عن طريق استعلام ، وحفظ البيانات على اساسها في الجدول ، 2. اذا اردت المُضي قُدما بطريقة الجدولين ، فكل اللي تجتاج له هو استعلام تحديث (لتحديث بيانات الجدول الآخر) ، حسب بيانات النموذج جعفر
-
تقرير بأكثر من عمود ، وتسلسل من اليمين الى اسفل ، ثم عمود جديد
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام اخي شفان مبدئيا أقول لك لا اعرف، فالطريقة التي استعملتها من نافذة إعدادات الصفحة لا تعطينا هذا الخيار!! ولكن رجاء ان تجرب ان تعمل إعدادات التقرير الرئيسي والفرعي من اليمين إلى اليسار، ثم أخبرنا عن النتيجة ، لأني سأكون بعيدا عن الكمبيوتر لعدة أيام جعفر -
السلام عليكم هذا رابط جواب التسلسل جعفر
-
السلام عليكم كان المفروض ان يكون هذا الموضوع كجواب للموضوع والمشكلة هي ان ارقام التسلسل بالعربي ، في كل من التقارير الفرعية ليست بالتسلسل المطلوب ، ولا السنه بالتسلسل الصحيح . نعرف اذا اردنا ان نعمل اكثر من عمود في التقرير ، فاننا نستعمل اعدادات الصفحة في التقرير . اذا التقرير بالانجليزي ، فكل شيء تمام وبالترتيب/التسلسل المطلوب ، ولكن للأسف لما نريد الاعمدة بالتسلسل العربي ، من اليمين الى اسفل ، ثم يُكمّل العمود الثاني من حيث انتهى الاول ، هكذا . فهنا يجب ان نقوم بمعالجة الموضوع بطريقتنا الخاصة استعنت بالبرنامج من الروابط اعلاه ، وعملت تجارب على عدة اعمدة: 2 الى 6 اعمدة ، وكتبت نتائجها في الاكسل ، لأرى النتائج بصورة مباشرة ، الحالي معناه ما يعطينا الاكسس ، والمفروض هو التسلسل الذي نسعى لعمله . وبعد التمعن في الارقام لعدة ايام ، توصلت الى ان هناك لوغاريثم معين يتماشى مع ارقام الاعمدة وتسلسلها ، وبعد تجربة عدة طرق توصلت لطريقة تعرض هذه الاعمدة بالطريقة التي نريدها 1. سنحتاج الى حقلين اضافيين في الجدول (لكل تقرير فرعي) ، حقل تسلسل الاعمدة (وسيكون مخفي ، باللون البرتقالي في الصورة ادناه) والذي سيعتمد عليه التقرير في فرز البيانات ، rpt2_Seq مثلا، وحقل للتسلسل الذي سنراه في التقرير ، Seq2 مثلا (الحقل الآخر في التقرير) ، 2. في التقرير ، هكذا نجعل فرز البيانات ، على اساس الحقل rpt2_Seq . وبما ان التقرير الرئيسي يحتوي على 3 تقارير فرعية (في برنامج الرابط اعلاه) ، . فوضعت الكود على حدث "التنسيق" لرأس التقرير Page Header ، وهذا هو الكود ، والذي نراه انه ينادي الدالة ("Call Seq_Records(2, "rpt2_Seq", "Seq2") ، لكل تقرير فرعي ، ويرسل عدد الاعمدة المطلوبة ، واسم حقلي التسلسل في الجدول للتقرير الفرعي: Option Compare Database Dim rst As DAO.Recordset Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) 'Seq the subform Records 'rpt2 Set rst = CurrentDb.OpenRecordset("Select * From qry_2 Where nationalty=" & Me.nationalty) Call Seq_Records(2, "rpt2_Seq", "Seq2") 'rpt3 Set rst = CurrentDb.OpenRecordset("Select * From qry_3 Where nationalty=" & Me.nationalty) Call Seq_Records(2, "rpt3_Seq", "Seq3") 'rpt4 Set rst = CurrentDb.OpenRecordset("Select * From qry_4 Where nationalty=" & Me.nationalty) Call Seq_Records(2, "rpt4_Seq", "Seq4") End Sub . وهذا كود الدالة ، والتي يمكن إخراجها من التقرير وجعلها وحدة نمطية مستقلة) : Function Seq_Records(N As Integer, Seq_fName As String, Seq_n As String) On Error GoTo err_Seq_Records 'N = Number of columns 'Seq_fName = Seq Field Name 'Seq_n = Seq rst.MoveLast: rst.MoveFirst RC = rst.RecordCount c_Columns = N 'Number of columns in the report r_Records = RC 'Number of Records in the report j_First = c_Columns 'Start rtp_Seq with this number Counter = 0 'each time reduce c_Columns by this Counter For i = 1 To RC rst.Edit rst(Seq_fName) = j_First rst(Seq_n) = i 'Debug.Print "rtp_Seq=" & j_First & vbTab & "Seq=" & i rst.Update 'rtp_Seq j_First = j_First + c_Columns 'rpt_Seq cannot be > RC If j_First > RC Then 'start Counter Counter = Counter + 1 'rpt_Seq re-calculate j_First = c_Columns - Counter End If rst.MoveNext Next i Exit_Seq_Records: rst.Close: Set rst = Nothing Exit Function err_Seq_Records: If Err.Number = 3021 Then Resume Exit_Seq_Records Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . والنتيجة: . كما عملت تقرير للتجربة وبه 4 اعمدة ، والذي ينادي الدالة هكذا ("Call Seq_Records(4, "rpt2_Seq", "Seq2") ، والنتيجة . جعفر 680.4.الاجازات.accdb.zip
-
وعليكم السلام نصيحة: الطريقة التي تقوم بها بكتاية الكود ، هي احد اسباب حصول خلل في برنامج الاكسس ابدا لا تكتب الكود او تغير فيه والنموذج ليس في وضع التصميم او وضع LayOut اما سبب مشكلتك: فعندك حدث على Timer التوقيت او ساعة او شيء من هذا القبيل ، والكود كلما اراد ان يشتغل بالطريقة الطبيعية ، واذا بالـ Timer يريد ان يقرأ الكود ، فيتلخبط الكود الذي تكتبه وما يلحق يأخذ نفس جعفر
-
وانا ارحب بأخي رمهان ، واشاركه الرأي بطلب الكود ، للفائدة جعفر
-
هل التعليمات البرمجية في الاكسس هي نفسها في البيسك ام هناك اختلاف
jjafferr replied to f16's topic in قسم الأكسيس Access
هذا نقلا عن الرابط https://www.pcreview.co.uk/threads/basic-difference-between-visual-basic-6-and-microsoft-access-vba.3034726/ 1. طريقة المعادلات والوحدات النمطية هي نفسها ، وبسبب ظهور vb للعالم قبل الاكسس ، فهناك الكثير من حلول vb والتي نستفيد منها في الاكسس ، 2. طريقة التعامل مع كائنات النموذج تقريبا نفسها ، ولكن الحدث يوجد فيه فرق ، وطريقة قراءة اعدادات كائنات النموذج تختلف قليلا ، وvb لا يملك نماذج فرعية كما في الاكسس ، والتعامل مع هذه البيانات الفرعية ليست بسهولة الاكسس ، 3. لا توجد تقارير في vb ، 4. لا تحتوي على وضع التصميم للجدول والاستعلام كما في الاكسس ، 5. الاكسس مهيأ ليتعامل مع البيانات ، ولكني الذي فهمته من سؤالك والذي جوابه النقطة 1 من جوابي اعلاه جعفر