-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
المشكلة عندما يكون عدد الصفوف في الجدول اكثر من 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
ممكن نعرف ايش كانت المشكلة ، وكيف تم الحل ، حتى يستفيد الجميع 🙂 شكرا جعفر -
السلام عليكم 🙂 شوف هذا الموضوع ، ممكن نستفيد منه كهيئة عامة ، ونعمل على تفاصيله ليتناسب مع طلبك : . جعفر
-
وعليكم السلام 🙂 رجاء ارفاق مثال بسيط بقاعدة بيانات ، وسيكون ذو فائدة كبيرة للحل 🙂 جعفر
-
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
وعليكم السلام 🙂 الحل بأن تضع هذا الكود في حدث ، وبعد اخذ الرقم التالي مباشرة تحفظ السجل ، وعلى افتراض ان اسم الحقل هو Sinf ، يصبح الكود هكذا : بدلا عن =IIf(IsNull(DMax("[id]";"items")+1);1;DMax("[id]";"items")+1) استخدم if len(me.Sinf & "")=0 then me.Sinf = nz(DMax("[id]","items"),0) +1 docmd.runcommand accmdsaverecord end if . جعفر -
قد يكون الاخ عبدالعليم cckills2010 لم يأخذ النسخة الاخيرة من الملف ، من هنا : https://www.officena.net/ib/topic/63134-احضار-محتويات-فولدر-خارجى-الى-البرنامج/?do=findComment&comment=505661 فقد تم تعديل مجموعة اشياء فيه ، وكود الحصول على امتداد الملف يقرأ الاسم من النهاية بإستخدام الدالة InStrRev : FileExt = Mid(strFileNames(i), InStrRev(strFileNames(i), ".") + 1) . وصورة الملف الذي به خطأ ، الاسم ليس به نقاط ، مما يجعلنا ننظر الى امرين آخرين ، هل اسم الملف/المسار : 1. فيه الخطأ الموجود كما تم شرحه هنا : . 2. بسبب وجود مسافات فارغة في الاسم/المسار ، ولحل هذا الخطأ ، يجب علينا وضع المسار/الاسم بين "" ، هكذا : File_Path = chr(34) & File_Path & chr(34) حيث ان Chr(34) = " . جعفر
-
مكشلة في قياس الفورم عندة تغيرة الى حاسبة اخرى
jjafferr replied to yousifja's topic in قسم الأكسيس Access
وعليكم السلام اخي يوسف 🙂 واهلا وسهلا بك في المنتدى 🙂 رجاء مراجعة قوانين المنتدى للإستفادة القصوى من المنتدى : https://www.officena.net/Tips/Questions.htm لوسمحت تشرح طلبك اكثر ، فالطلب غير واضح ، وياريت صورة من المكان اللي فيه المشكلة 🙂 جعفر -
1. كيف تقوم بربط الاكسس بعدة محافظات ؟ في حال ان جميع هذه المحافظات تخزن البيانات في نفس قاعدة البيانات "الاكسس" ، اي انها مشتركة بينهم بطريقة ما ، فنعم الافضل لك الانتقال الى SQL Server ، لأن الاكسس معمول لشبكة صغيرة متصلة بأسلاك الشبكة ، ولا يكون الاتصال عن طريق wifi ولا الانترنت ، ولكن وقبل الانتقال الى SQL Server ، قم بتغيير القرص الصلب الى SSD سريع وشوف اذا السرعة اصبحت معقولة ، فهذا الخيار هو الاسرع والاقل تكلفة (وقتا وقيمةً) ، وانا اقول لك هذا من تجربة ، في عمل مثل العمل الذي تقوم به شركتك ، بحوالي 10-15 مستخدم ، ولم يكن هنا اي بطئ في البرنامج ، 2. اذا لم تغير الاستعلامات الى stored procedures ، فلن تستفيد من سرعة الـ SQL Server ، وقد يكون البرنامج ابطأ ، 3. هذا صحيح ، حتى ولو تم وضع الاكسس على السيرفر ، فسيكون في مجلد مشاركة كذلك ، ولكن السيرفر الحقيقي فيه قوة في اجهزته وطريقة عمل التخزين Raid ويكون المعالج CPU بطاقة كبيرة وبه يتفرغ اكثر للبرامج ، والمستخدمين. لا تفهم من كلامي اني احاول احباطك من الانتقال الى SQL Server ، ولكني لا اريدك ان تعتقد بأنك ممكن تنتقل بسهوله وكل شيء سيكون مثل ما حلمت به !! نصيحتي هو ان يواصل المستخدمين العمل على الاكسس (بعد تغيير قرص الجداول الى SSD) ، وتبدأ العمل على برنامجك على SQL Server ، وتحل المشاكل اللي تظهر لك ، الى ان تصل الى مرحلة تكون راضي عنها ، وخلالها تكون قد تعرفت على طريقة عمل SQL Server والسيرفر 🙂 جعفر
-
وعليكم السلام 🙂 الرابط التالي فيه مجموعة روابط لربط الاكسس بالـ SQL : . ولو اني غير مؤهل للرد على هذا السؤال ، بسبب اني لم اقم بالربط ، ولكن عندي معلومات قد تفيدك 🙂 1. أ. اذا كانت بيانات SQL Server على سيرفر حقيقي على الشبكة ، بينما بيانات وجداول الاكسس على كمبيوتر في مجلد مشاركة على الشبكة ، فهذه المقارنة غير عادلة ، فعمل السيرفر يكون افضل بكثير من مجلد مشاركة ، ولو وضعت الاكسس على سيرفر حقيقي فستلاحظ ان الاكسس اصبح اسرع ، ب. حتى اذا استعملت مجلد مشاركة ووضعت فيه بيانات وجداول الاكسس : تأكد بأن المجلد ليس على القرص الذي به تنصيب الوندوز (انا قلت القرص وليس البارتيشن) ، لذا يجب ان تكون الجداول على قرص آخر في الكمبيوتر ، واذا اردت افضل الاقراص ، فعليك بقرص SSD ، فالسرعة ستكون واضحة ، وهناك بعض انواع الـ SSD الاسرع من الأخرى ، ج. معظم مشاكل بطئ الاكسس تكون بسبب عدم وجود فهرسة للحقول: اللي فيها علاقة بين الجداول : سواء في نافذة العلاقات ، او في الاستعلام ، او في ربط النموذج الرئيسي بالنموذج الفرعي ، او التقرير الرئيسي بالتقرير الفرعي ، اللي تستعمل كمعيار ، سواء في الاستعلام ، او في الكود ، د. نقل البيانات من جداول الاكسس الى جداول الـ SQL Server : لن يجعل برنامجك اسرع ، بل قد يجعله ابطأ ، لذلك يجب عليك عمل استعلاماتك على SQL Server بـ stored procedures ، يجب حذف اوامر الاكسس من الاستعلام ، والاوامر التي لا تعمل في SQL Server ، مثل NZ ، واخواتها Dlookup ، و اوامر اخرى ، الـ SQL Server لا يعطيك جميع سجلات الجدول في الاستعلام (الاكسس يعطيك جميع السجلات) ، لذا يجب عمل تغيير في البرنامج ليتناسب مع هذا السياق ، 2. نعم : في الاكسس: باستعمال SSMA الذي يأتي مع SQL Server ، تنصيب برنامج SSMA :https://docs.microsoft.com/en-us/sql/ssma/access/sql-server-migration-assistant-for-access-accesstosql?view=sql-server-ver15 انت تعمل جداولك في SQL Server ثم تستورد البيانات فقط من الاكسس ، سواء بالنسخ/لصق (يجب التأكد من هذه الخطوة) ، او عن طريق استعلام الحاقي ، ولكن وقبل نقل البيانات بين البرنامجين ، يجب ان تكون البيانات في جداول الاكسس متماشية مع تلك في الـ SQL Server . ولكن سؤالي هو ، ليش تريد ان تنتقل الى SQL Server ؟ هناك اسباب جوهرية ومهمة للنقل ، ولكن بطئ البرنامج في الشبكة ليس واحد منهم ، فالاكسس قد يكون اسرع 🙂 جعفر