-
Posts
9975 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
السلام عليكم 🙂 اعتقد بأني توصلت لحل ، وبعد عدة محاولات على الشبكة ، على كمبيوترين 🙂 1. النموذج ، تم حذف الجدول CustomersT من استعلام النموذج : . 2. الكومبوبوكس يقوم بإعطاء قيمة اسم الزبون CustomerName ، 3. تم حذف امر حفظ السجلات من الوحدة النمطية ، لأنها لم تكن على سجل النموذج ، فإنها لا تحفظ السجل المطلوب ، 4. تم استعمال هذا الكود لحفظ الترقيم : Private Sub New_Invoice() On Error GoTo err_New_Invoice Try_Again: If Me.NewRecord Then Me.InvoiceNum = Next_Seq("A") DoCmd.RunCommand acCmdSaveRecord End If Exit_New_Invoice: Exit Sub err_New_Invoice: If Err.Number = 3022 Then Dim PauseTime, Start PauseTime = 0.5 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Resume Try_Again Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_New_Invoice End Sub . ولما البرنامج يلاحظ وجود تكرار في الرقم ، فإنه يذهب الى رقم الخطأ (3022 كما ذكره اخونا حسام) ، وهنا ينتظر 0.5 (نصف ثانية ، ويمكنك تقليلها ، وبالتجربة ستعرف الرقم الاصح ، والافضل ان تتركه كما هو) ، ثم يعاود المحاوله في الحصول على ترقيم جديد غير مكرر (وهذا الكود وضعته في حدثين) ، وتم تجربته عدة مرات واثبت جدارته 🙂 البرنامج بعده طازه وطالع من الشبكة ، فلازم تعمل له ربط للجداول قبل تشغيله ، فهو بدون جداول 🙂 جعفر 1282.1.InvoiceSale_6_FE.accdb.zip -
على حسب ما تراه في التقرير لما يكون في وضع "معاينة الطباعة" ، بعدد صفحاته 🙂 جعفر
-
هل ممكن عمل نافذة بحث لحقل موجود في نموذج فرعي
jjafferr replied to sarah_rose's topic in قسم الأكسيس Access
وعليكم السلام اختي الفاضلة 🙂 هناك العديد من الطرق للبحث ، وموضوعك كان البحث عن طريق "نافذة البحث" ، والتي لها حدودها ، مثل ما شرحت سابقا ، ولا يمكن دمجها مع طريقتك 🙂 نعم ممكن ان نعمل نموذج مخفي ، نبحث فيه ، ونُظهر النتيجة في النموذج الظاهر امامنا ، ولكن الموضوع ما يستاهل كل هذا التعقيد 🙂 والكود الذي يقوم بعمل البحث في المرفق ، هو طريقة اخرى للبحث ، ولكنه يحتاج الى تعديل ، لأنه سيكون جدا بطيء اذا كان عندك آلاف السجلات !! دائما علشان يكون عملك صحيح ، احسبي حساب اسوء الاحتمالات ، واحسبي حساب انك تتعاملين مع 50 الف سجل على الاقل ، وبهذه الطريقة يكون عملك مُتقن 🙂 جعفر -
وعليكم السلام 🙂 رجاء وضع عنوان يدل على الموضوع ، شكرا 🙂 فكرة اخوي حسام هي الافضل ، ولكن ولإثراء الموضوع ، يمكننا استخدام كائن صورة واحد في النموذج الرئيسي (المكان المكتوب عليه "اختر نوع الرقبة") ، ولنسميه img_main والموجود في النموذج الرئيسي "نموذج1" ، . وعند النقر في النموذج الفرعي على الصورة المطلوبة ، على حدث "النقر" يمكننا كتابة الكود التالي : Forms![نموذج1]!img_Main.PictureData = me.t4.PictureData او عمل وحدة نمطية ، وارسال اسم الكائن اليها في المتغير prev_img Forms![نموذج1]!img_Main.PictureData = Forms![نموذج1].PictureData . الفكرة هنا ، انه اذا عندنا شعار المؤسسة في النموذج الرئيسي ، واردنا في كل تقرير نطبعه ، ان نضع هذا الشعار ، فلا يوجد داعي الى الرجوع الى المجلد/الجدول الذي به هذه الصورة وجلبها من هناك ، وانما يمكننا استخدام الامر PictureData (اي نسخ الصورة) لإظهار هذا الشعار في التقارير/النماذج التي نريدها 🙂 جعفر تجربةالصور.zip
-
السلام عليكم اخي احمد 🙂 رجاء الالتزام بقوانين المنتدى ، وعمل موضوع منفصل لكل سؤال 🙂 تمت الاجابة على السؤال اصل الموضوع ، لذلك ، رجاء فتح موضوع جديد لبقية اسئلتك ، ولا مانع من ان يرد الاخ حسام على آخر حيثية من سؤالك 🙂 جعفر
-
هاي سهلة ، برنامجي يدخل تاريخ اليوم عن طريق الدالة Date في الاستعلام الالحاقي ، فبدلا عنه يمكننا استعمال طريقتك ، وشفت ان الحقل TxtUm يعطي اليوم كاملا ، فممكن نستعمل هذا اليوم الهجري من تقويم ام القرى ، ولكن ، شفت ان عندك تواريخ ام القرى وتواريخ ميلادية ، فهل سيكون عندك خلط بينهم ، وكيف؟ ممكن اضافة حقل في الجدول Emp يدل على وجود ان الموظف مداوم لذلك اليوم ، حقل نعم/لا مثلا ، وفي جميع الاستعلامات مثل qry_1 ، نصفي الموظفين المداومين في ذلك اليوم. اشرح لي هذه النقطة وبالتفصيل ، فعسى ان نتوصل الى طريقة سهلة ومرضية ان شاء الله 🙂 جعفر
-
طريقة العمل : عند عمل يوم جديد ، نقوم بإدراج جميع الموظفين من الجدول Emp الى الجدول tbl_Shifts ، ويكون رقم الشفت امام كل سجل = 0 ، في النموذج : كل نموذج فرعي يأخذ بياناته من الجدول tbl_Shifts ، ومن نفس الحقل (لا توجد جقول مختلفة لكل شفت) ، ويعتمد على رقم النموذج الفرعي (رقم الشفت) ، فيُظهر رقم الشفت الخاص به ، او صفر (ومعناه السجلات التي لم يتم اختيارها بعد) ، ولما نختار اسم الموظف في النموذج الفرعي ،فهو يغير رقم الشفت من صفر الى رقم الشفت ، بإستخدام الدالة De_Select(1) مثلا ، والتي تدل على اننا في الشفت 1. هناك الكثير من الاختصارات في الكود ، فمثلا ، بدل ان نعمل كود خاص لكل نموذج فرعي ، عند اختيار الاسم : نغير الشفت من صفر الى رقم الشفت ، نحفظ السجل ، نطلب البيانات من اول وجديد لجميع هذه النماذج الفرعية ، حيت ان الاختيار سيغير مكان الموظف الى شفت الذي ينتمي (وهذه كانت المعضلة في برنامجك السابق) ، ثم نجمع الحقول التي تم اختيارها في كل نموذج فرعي ، ونضع القيمة في الاسفل ، هنا الدالة De_Select تقوم بجميع هذه الخطوات ، ولكل النماذج 🙂 وتلاحظ ان النماذج الفرعيه لا يوجد بها كود اصلا ، وذلك لأننا ننادي الكود من اعدادات الحقل nSelected (بدل ان نعمل حدث بعد التحديث 🙂 ) . جعفر
-
المشكلة عندما يكون عدد الصفوف في الجدول اكثر من 31000 (معدل)
jjafferr replied to alaaldin2010's topic in قسم الأكسيس Access
وعليكم السلام 🙂 اخي الفاضل ، في المرات القادمة ، رجاء مراعاة قوانين المنتدى بوضع عنوان يدل على محتوى السؤال 🙂 اما سؤالك : خطأ Over Flow معناه ان القيمة اكبر من حجم المتغير ، المتغير x و i عندك integer ، فيجب تكبير هم الى Long . جعفر -
وعليكم السلام 🙂 طريقة العمل: 1. انا بعمل حقل جديد ، ونوعه لازم يكون رقم . 2. في النموذج ، نختار نعمل "اختيار مجموعة" . نعمل مربع ، ونلغي بقية العملية . وعندك الاختيار في اختيار احد هذه الاشكال . نلاحظ انه لما يجي الماوس على المربع ، تلقائيا لونه يتغير للأسود ، مما يعني ان المربع تعرف على ان هذا الكائن الجديد هو تابع للمربع . ونعمل تغيير في اسم الكائن ، ونجعله مرتبط بالحقل Paid . الشيء الاخير اللي لازم نعمله هو ، نعطي لكل اختيار رقمه ، والاختيار الثاني ممكن يكون 2 ، والثالث 3 ، والرابع 4 ، ولا يكون لإختيارين نفس الرقم ، ولا يهم الاسم Option36 . نلاحظ الآن عند الاختيار ، فتلقائيا يعطينا اختيار واحد فقط : . وبما اننا في النهاية اخترنا الاختيار الثالث ، نرى في الجدول انه تم حفظ الرقم 3 : . هذه الطريقة تُغنينا عن مجموعة من الحقول 🙂 جعفر 1284.officna_q.accdb.zip
-
السلام عليكم 🙂 في اعتقادي ان هذه اسهل طريقة ، واذا استعملت التنسيق الشرطي لتلوين السجلات اللي تم اختيارها ، سيكون الفت للنظر 🙂 ما بدخل في تفاصيل ، لأنه في الواقع مافي تفاصيل ، جرب ببيانات آخر يوم مثل تاريخ اللي في الصوره ، وبعدها اعمل سجل جديد بواسطة "ادخال سجل جديد لليوم" 🙂 صحيح اني استعملت 5 نماذج فرعيه ، لأنه في الواقع مافي فرق بينها وبين ComboBox و ListBox (في استغلالهم طاقات الاكسس) ، ولكن النموذج فيه امكانيات اكثر ، ونحن متعودين على التعامل معاه اكثر ، فيكون التعامل معاه اسهل ، وكل نموذج فرعي له استعلام 🙂 . هذه احداث النموذج Private Sub cmd_Add_New_Click() 'check if Records exist for this date If DCount("*", "tbl_Shifts", "[nDate]=#" & Date & "#") = 0 Then DoCmd.SetWarnings False DoCmd.OpenQuery "qry_Append_Today" DoCmd.SetWarnings True End If 'go to this Record Me.Requery DoCmd.GoToRecord , , acLast End Sub Private Sub cmd_Requery_Click() 'get the data based on the selected Dates Me.Requery End Sub Private Sub Form_Current() 'Count the Selected Call Count_Selected End Sub . والحدث "بعد التحديث" لزر الاختيار في النموذج الفرعي ، ينادي الوحدة النمطية De_Select ، ويرسل معها رقم الشفت ، اللي يتماشى مع رقم النموذج الفرعي : . وهذه هي الوحدة النمطية : Option Compare Database Option Explicit Dim frm As String Dim sfrm As String Dim ctrl As Control ' Public Function De_Select(sShift As Integer) frm = Screen.ActiveForm.Name 'Main Form name sfrm = Forms(frm).Controls("sfrm_" & sShift).Name 'SubForm name 'change the nShift of the Record, based on the selection of nSelected If Forms(frm)(sfrm)("nSelected") = -1 Then Forms(frm)(sfrm)("nShift") = sShift Else Forms(frm)(sfrm)("nShift") = 0 End If 'save the Record to show the change on other sfrm If Forms(frm)(sfrm).Form.Dirty Then Forms(frm)(sfrm).Form.Dirty = False 'requery all the SubForms to show the correct Selection Call Re_query End Function Public Function Re_query() 'requery all the SubForms on the Main Form For Each ctrl In Forms!frm_Daily_Shift.Form.Controls If ctrl.ControlType = acSubform Then Forms!frm_Daily_Shift(ctrl.ControlName).Form.Requery End If Next 'show the number of Selected Records Call Count_Selected End Function Public Function Count_Selected() As Integer On Error GoTo err_Count_Selected Dim rst As DAO.Recordset Dim i As Integer '5 subForms For i = 1 To 5 Count_Selected = 0 Set rst = Forms!frm_Daily_Shift("sfrm_" & i).Form.RecordsetClone rst.MoveFirst Do Until rst.EOF If rst!nSelected = -1 Then Count_Selected = Count_Selected + 1 End If rst.MoveNext Loop 'show the result of the sfrm Selected Count Forms!frm_Daily_Shift("Sum_" & i) = Count_Selected Next i Exit_Count_Selected: rst.Close: Set rst = Nothing Exit Function err_Count_Selected: If Err.Number = 3021 Then 'no Records Resume Exit_Count_Selected Else MsgBox Err.Number & Err.Description End If Resume Exit_Count_Selected End Function . جعفر 1281.FRm_Refresh.accdb.zip
-
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
انا سأحاول ان اطبق على شبكة بأكثر من كمبيوترين ، وان شاء الله خير 🙂 جعفر -
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
وعليكم السلام 🙂 ممكن تشرح لي كيف عملت التجربة ، خليني اقوم بمثلها ، واجرب 🙂 جعفر -
وعليكم السلام 🙂 جعفر
-
وعليكم السلام 🙂 نعم ممكن ، ولكن ليس الطباعة من الاكسس ، ولكن بتصدير البيانات الى ملف pdf او اكسل ، وهناك تستطيع ان تطبع على صفحة واحدة 🙂 جعفر
-
تفضل 🙂 1. اضفنا الزر ، وحقل آخر ، يأخذ استعلام الالحاقي بأخذ قيمته (اقرأ ملاحظات تفاصيل الكود ) : . 2. هذا كود الحدث على الزر : Private Sub cmd_Append_Click() 'نأخذ اكبر قيمة من الجدول B Me.Which_Invoice_no = DMax("[Invoice_no]", "A") 'نعمل مقارنة بين القيمتين ، ونأخذ الاكبر If Me.Invoice_no > Me.Which_Invoice_no Then Me.Which_Invoice_no = Me.Invoice_no End If DoCmd.SetWarnings False 'نضيف هذه القيمة والتاريخ الى الجدول A DoCmd.OpenQuery "qry_Append_to_tbl_A" 'نحذف هذا السجل من الجدول B DoCmd.OpenQuery "qry_Delete_from_tbl_B" DoCmd.SetWarnings True Me.Requery End Sub . 3. هذا استعلام الالحاقي الى الجدول A . 4. وهذا استعلام الحذف من الجدول B . ولكن اذا تأخذ رأيي ، فلا داعي لوجود جدولين ، واستعلام الحاقي وآخر حذف ، وكود وووو ، فقط استعمل جدول واحد ، مثلا الجدول A ، واضف اليه حقل جديد بإسم "هل تم التدقيق" ، نوع نعم/لا ، بحيث المدقق يعمل اشارة صح على السجل ، بأنه تم تدقيقه ، وبهذه البساطة 🙂 جعفر 1283.New Microsoft Access.accdb.zip
-
المعضلة في طريقة عملك السابقة ، هي السماح بأكثر من اختيار في حقل الكومبوبوكس ، وهو الامر والميزة اللي انت محتاج له ، وفي الواقع ، هذه احد مساوئ الاكسس ، بأن يعطون المستخدم طريقة عمل ، يكون فيها المشاكل في طريقة التعامل معها برمجيا !! لهذا السبب ، ان شاء الله بكرة انظر في الطريقة الجديدة ، وبقية طلباتك يمكن التعامل معاها عن طريق معايير في الاستعلام 🙂 جعفر
-
كود لفتح موقع على قوقل google عن طريق زرامر في نموذج
jjafferr replied to hussein arby's topic in قسم الأكسيس Access
السلام عليكم 🙂 شوف هذا الرابط جعفر -
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
الخطوات اللي اتبعتها : 1. إلغاء اخذ القيمة الافتراضية من اعدادات الحقل : . 2. عملنا وحدة نمطية لعمل التسلسل ، ونناديها كلما احتجنا الى اضافة رقم جديد : . 3. والسر في نجاح هذه العملية ، هي حفظ السجل مباشرة بعد اخذ رقم التسلسل الجديد : . جعفر 1282.InvoiceSale_6.accdb.zip -
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
بهذه الطريقة الطبخة تخترب !! انا عملت على الكود اللي ارفقته انت ، ولكن الآن يجب ان ارى الكود بالكامل ، مع المودل ، وبتسلسل الاحداث ، حتى تتضح الصورة بالكامل 🙂 جعفر -
مساعدة في تصدير جدول الى ملف وورد واكسل معد مسبقاً
jjafferr replied to ٌRayan Zakho's topic in قسم الأكسيس Access
وعليكم السلام 🙂 هذا الرابط في التصدير الى الوورد . اما التصدير الى الاكسل . او . جعفر -
مكشلة في قياس الفورم عندة تغيرة الى حاسبة اخرى
jjafferr replied to yousifja's topic in قسم الأكسيس Access
1. سبب زحف الكائنات من مكانها ، وتغيير حجمها : اذا عندنا هذا النموذج : . وبعد تشغيله يصبح (لاحظ الزرين ليسوا في اماكنهم ، والزر اللي تحت صار حجمه اكبر) : . نشوف مكان تثبيت الزر العلوي ، ونلاحظ انه في اقصى يمين النموذج ، من الاعلى ، وبحجمه العادي : . بينما الزر الآخر ، نرى ان تثبيته في اسفل النموذج ، وفي منتصف النموذج ، وحجمه مسحوب : . علشان نرجعهم يعملوا مثل المكان اللي في وضع التصميم ، نختار جميع كائنات النموذج ، ونجعل تثبيتهم من اليسار الاعلى ، او اي شيء تراه مناسب : . 2. اما اذا اردت تغيير احجام الكائنات ليتناسب مع حجم الشاشة ، فالرابط التالي فيه مقصدك : جعفر -
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
اعذرني اخوي القاضي ، بس خلينا نشوف ايش بالضبط اللي عملته ، وايش هذه الرسائل 🙂 لأني انا شخصيا صادفت هذه المشكلة في احد برامجي (من ايام زمان 🙂 ) والحل اللي اعطيتك كان الحل 🙂 جعفر -
عدم ظهور الشعار او الصورة عند طباعة التقرير
jjafferr replied to ABDELRAHMAN ALFAHOUM's topic in قسم الأكسيس Access
ممكن نعرف ايش كانت المشكلة ، وكيف تم الحل ، حتى يستفيد الجميع 🙂 شكرا جعفر -
السلام عليكم 🙂 شوف هذا الموضوع ، ممكن نستفيد منه كهيئة عامة ، ونعمل على تفاصيله ليتناسب مع طلبك : . جعفر