-
Posts
1,727 -
تاريخ الانضمام
-
Days Won
5
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو أبو عبدالله الحلوانى
-
السلام عليكم ورحمة الله وبركاته ليس بعد كلام أستاذنا جعفر كلام - ولكن أطرح فكرة أخري من وجهة نظري القاصرة أفظل أستخدام اسكربت يقوم بهذه المهمة بسبب: أولا- حجمه الصغير الذي يكاد يكون معدوم ، ثانيا- لكونه لا يحتاج لاعدادات اضافية لتشغيله؛ بمعني لو قمت بتنفيذ هذا الكود من قاعدة بيانات علي قاعدة بيانات أخري كان لزاما أن يتم تخفيض الأمان لتعمل قاعدة البيانات الأولي أولا حتي تعمل. (خاصة اذا كان هذا الكود سيعمل علي جهاز العميل) ؛ وهذا الشئ غير موجود مع الاسكربت. وأخيرا- هذا هو الكود داخل الاسكربت يمكنك التعديل عليه وفقا لاحتياجاتك. Rem This is the beginning of the code: Call Createadbe Sub Createadbe() On Error Resume Next dim fso dim mePath Set fso = CreateObject("Scripting.FileSystemObject") mePath = fso.GetAbsolutePathName(".") Rem here we test if accde file is exist And delete it if it is exist Rem==================================================================== if fso.FileExists(mePath & "\Write Here Your accde file Name")= True then fso.DeleteFile mePath & "\Write Here Your accde file Name" end if Rem Here Test if our accdb file is Exist and get started Rem====================================================== If fso.FileExists(mePath & "\Write Here Your accdb file Name")= True then With Createobject("Access.Application") .AutomationSecurity = 1 .SysCmd 603, mePath & "\Write Here Your accdb file Name", mePath & "\Write Here Your accde file Name" .Quit End With MsgBox "Conversion Done Successfully!" fso.DeleteFile mePath & "\Write Here Your accdb file Name" Else msgbox "Conversion Not Done; Some file Not Exists!" End If Rem Now kill My silf: Rem================== if err.number <> 0 then with fso If .FileExists(mePath & "\Write Here Your accdb file Name") then .DeleteFile(mePath & "\Write Here Your accdb file Name") If .FileExists(mePath & "\Database.accdb") then .DeleteFile(mePath & "\Database.accdb") If .FileExists(mePath & "\Database.mdb") then .DeleteFile(mePath & "\Database.mdb") If .FileExists(mePath & "\ConversionAccdbToAccde.vbs") then .DeleteFile(mePath & "\ConversionAccdbToAccde.vbs") end with end if End sub اذا كنت لا تدري عن صناعة الاسكربت فهو ملف txt عداي تقوم بنسخ الكود بأعلاه مع تغير الجمل Write Here Your accdb file Name الي اسم الملف الخاص بحضرتك Write Here Your accde file Name الي اسم الملق الخاص بحضرتك ثم تقوم بحفظ الملف txt بصيغة vbs وفقط وانتهي الأمر لحظة ضع ملف الاسكربت مع الملف المراد تحويله في نفس الفولدر ثم قم بالضغط عليه مرتين وانظر ماذا يحدث ولا تنسي تأخذ نسخة احتياطية من ملف الاسكربت لأنه سيقوم بحذف نفسه بعد الانتهاء. هذا كل شىء مع تمنياتي بالتوفيق هذا هو الاسكربت ConversionAccdbToAccde.rar
-
اين المشكلة في الكود .. مساعدة ...
أبو عبدالله الحلوانى replied to نبراس كاظم's topic in قسم الأكسيس Access
الحمد لله أولا وآخرا ليس هذا كل ما تم تعديله بالكود هل لاحظت كتابة الكود داخل Trim ولكن أين تمت الاجابة -
طلب مساعدة فى ايجاد معادلة لتطبيقها
أبو عبدالله الحلوانى replied to moohamed's topic in قسم الأكسيس Access
ما أري بين الأول والثاني فرق سوي أنك وضعت نسبة الخصم بجوار نسبة الربح انظر العملية الحسابية وفقا لما ذكرته لك بالمشاركة الأولي ستكون بهذا الشكل 3000 * (1+(0.4*0.25))=3300 6000* (1+(0.30*0.25))=6450 2000* (1+(0.10 *0.25))=2050 وبذلك يكون المجموع=11800 ولكن علي ما فهمت من كلام حضرتك أن الاشكالية الآن في حال ارتجاع صنف داخل فاتورة مستفيدة من خصم معين (اليس كذلك) بأي سعر سوف يتم ارتجاع هذا الصنف!! وفقا لتجربتي الشخصية ولربما لاساتذتي رأي آخر: 1- يتم خصم نسبة الخصم من اجمالي الفاتورة. 2- يتم تخزين نسبة الخصم بالفاتورة ضمن بيانات فاتورة البيع 3- عند ارتجاع الصنف يتم تحديد رقم الفاتورة التي سيتم منها ارتجاع الأصناف 4- اذا كان هناك نسبة خصم بالفاتورة يتم خصم نفس النسبة من سعر بيع الصنف وارتجاع باقي قيمة الصنف للعميل. يعني بمثال رقمي: الصنف1 قيمته الشرائية 3000 + 0.4 هامش ربح = قيمة البيعية للصنف = 4200 الصنف2 قيمته الشرائية 6000 + 0.3 هامش ربح = قيمة البيعية للصنف = 7800 اجمالي قيمة الفاتورة(رقم الفاتورة10101) هو 12000 لنفترض الأن انه تم منح العميل خصم 0.25 اذا صافي ما سيتم استلامه من العميل هو 9000 جنيه (أليس كذلك) لو افترضنا ان العميل قام بارجاع الصنف 1 من الفاتورة (10101) تري كم سنرد له!! في فاتورة الارتجاع رقم (20201) عن فاتورة بيع رقم (10101) يتم تسجيل قيمة الصنف 1 بقيمته البيعية 4200 - نسبة الخصم بفاتورة البيع 0.25 اذا صافي قيمة المبلغ المسترد هو 3150 وفقط هذا كل شئ الخلاصة: يجب أن يتم ربط فاتورة الارتجاع بفاتورة البيع عند ادخال البيانات. -
اين المشكلة في الكود .. مساعدة ...
أبو عبدالله الحلوانى replied to نبراس كاظم's topic in قسم الأكسيس Access
تفضل جرب هذا ووافنا بالنتائج الادارية - Copy.rar -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو عبدالله الحلوانى replied to عفرنس's topic in قسم الأكسيس Access
جرب هذا اذا ووافنا بالنتائج تجربة.rar -
اين المشكلة في الكود .. مساعدة ...
أبو عبدالله الحلوانى replied to نبراس كاظم's topic in قسم الأكسيس Access
ممكن مرفق للتوضيح فلا علاقة بين اختبار خلو الحقل من البيانات ونوع البيانات التي من المحتمل أن توضع به (سواء نص أو رقم) علي حسب فهمي أنك تريد أن تقول لو أن الحقل كذا أو الحقل كذا أو ... فارغ فاخبر المستخدم الرسالة كذا والا فافعل كذا أليس هذا هو مضمون الكود -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو عبدالله الحلوانى replied to عفرنس's topic in قسم الأكسيس Access
جرب هذا ووافنا بالنتائج تجربة.rar -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو عبدالله الحلوانى replied to عفرنس's topic in قسم الأكسيس Access
يبدو أن الكود معكوس فأعتقد أن التحديد قبل النسخ جرب هذا أولا: With Rst1 If .RecordCount <> 0 Then .MoveFirst objWorkbook.Sheets(shetNo).range("C5").Select objWorkbook.Sheets(shetNo).range("C5").CopyFromRecordset Rst1 End If End With أو أرفق المرفق النهائي بعدالتعديل للاتمكن من رؤية المشكلة تمنايتب بالتوفيق -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو عبدالله الحلوانى replied to عفرنس's topic in قسم الأكسيس Access
أخي أنا كتبت Text0 ,text1 أسماء وهمية لحقل النص الذي به مسار الشيت والذي لا أدي ماذا تسميه أنت وكذلك حقل اسم الشعبة والذي لا أدري ما اسمه لديك غير كلمتي Text0 ,text1 باسماء مربعات النص التي لديك أنت ملاحظة: يجب أن يكون حقل الشعبة رقم -
اين المشكلة في الكود .. مساعدة ...
أبو عبدالله الحلوانى replied to نبراس كاظم's topic in قسم الأكسيس Access
السلام عليكم الخطأ علي ما أعتقد هو في استخدام OR داخل دالة Trim فالأخيرة تتعامل مع نص ولا لايصلح معها العوامل المنطقية عدل الكود بهذا الشكل: If len(text0 & "") =0 OR len(text1 & "") =0 OR len(text3 & "") =0 Then عدل اسماء الـ Text الي ما تريد تمنايتي بالتوفيق أو ان كنت مصمما علي استخدام Trim فليكن بهذا الشكل If IsNull(Trim(text0)) OR IsNull(Trim(text1)) OR IsNull(Trim(text2)) Then رغم أني أري أن الكود الأول أقصر 😁 -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو عبدالله الحلوانى replied to عفرنس's topic in قسم الأكسيس Access
مرحبا بك اخي أبي عبدالرحمن هل سيتم تصدير الشعب بشكل متتالي اليا أم أنك ستقوم بتصدير البيانات بعد تحديد الشعبة أولا مبدأيا سأفترض أنك ستقوم بتحديد الشعبة ثم تقوم بالضغط علي زر ترحيل البيانات. أولا - سنقوم باضافة البرمتر الجديد رقم الشيت في تعريف دالة التصدير بهذا الشكل Public Function barnaExcelFile(sXlsFile As String, ByVal ShabaNo as Integer) ثانيا - لا حظت أنك تصدر الشعبة 2 في شيت 4 وكذلك شعبة 3 في شيت 6 أي أن رقم الشيت المستهدف ضعف رقم الشعبة علي هذا سيكون التعديل داخل الكود بهذا الشكل: dim shetNo as Integer shetNo = ShabaNo*2 objWorkbook.Sheets(shetNo).range("B1").Value = "اسماء طلاب الصف " & "(" & [Forms]![FORM2]![text1] & ")" & " -- " & "(" & [Forms]![FORM2]![text2] & ")" & " المادة " & "(" & [Forms]![FORM2]![text3] & ")" & " معلم المادة / " & "(" & [Forms]![FORM2]![text4] & ")" With Rst1 If .RecordCount <> 0 Then .MoveFirst objWorkbook.Sheets(shetNo).range("C5").CopyFromRecordset Rst1 objWorkbook.Sheets(shetNo).range("C5").Select End If End With وعند مناداة دالة الترحيل لا تنسي تحديد بارمتر الشعبة الي اسم الحقل الذي ستختار منه الشعبة هكذا: Call barnaExcelFile(text0,text1) تمنايتي بالتوفيق -
طلب مساعدة فى ايجاد معادلة لتطبيقها
أبو عبدالله الحلوانى replied to moohamed's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته أولا- لاختصار عملية الجمع والضرب لاستخراج ناتج الربح يمكنك اختصار العمليتين في هذه العملية (3000* 1.4 =4200) ثانيا- ان كنت تعني أنك تريد الخصم من ربح كل سلعة علي حدي يمكنك استخدام هذا (3000 * (1+(0.4*0.25))) = 3300 هذا علي قدر ما فهمت من السؤال ان كان طلبك غير هذا فرجاء تفضل علينا بمزيد من التوضيح -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو عبدالله الحلوانى replied to محمود حاتم احمد's topic in قسم الأكسيس Access
بعد البحث عن سبب المشكلة التي ظهرت لدي وبعد تنبيهي من أخي أبي جودي هنا ظهر معي الخلل بهذا الكود المستخدم في فتح البرنامج With accessApp .Visible = True .UserControl = True .RunCommand acCmdAppMaximize DoCmd.RunCommand acCmdAppMaximize Set db = .DBEngine.OpenDatabase(strPathAppDB, False, False, ";PWD=" & strPasswordDB) .OpenCurrentDatabase strPathAppDB End With وقد قمت بتعديل الكود بهذا الشكل وانتهت المشكلة بفضل الله تعلي With accessApp .Visible = True .UserControl = True .RunCommand acCmdAppMaximize .OpenCurrentDatabase strPathAppDB, False, strPasswordDB End With وجزاكم الله عنا خيرا -
اظهار الأسماء حسب القسم المحدد فقط
أبو عبدالله الحلوانى replied to Shaka's topic in قسم الأكسيس Access
انظر الرد هنا -
مناداة المتغير في الاستعلام عن طريق موديول آخر
أبو عبدالله الحلوانى replied to ابو جودي's topic in قسم الأكسيس Access
جزاكم الله عنا خيرا هل من شرح مبسط لها وطريقة استعمالها أيضا لعموم الفائدة فيكون قد تم الجمع بين الطريقتين في هذا الموضوع شكرا أبا جودي متميز دوما كالعادة فليس هذا عليكم بجديد -
عدم توافق الأكواد بين اصدارات الأكسس
أبو عبدالله الحلوانى replied to متعلم أكسس's topic in قسم الأكسيس Access
أعلم أن الموضوع قديم ولكن فعلا لا أذكر أني رأيت سؤالك هذا إلا الآن!!! بعد أن جائتني رسالة علي البريد الالكتروني من الموقع بنشاط الموقع خلال الأيام الماضية. نعم ربما تم حل المشكل بالنسبة للسائل ولكن لتعم الفائدة ويصير الأمر أوضح بالنسبة لمبتدأ مثلي مر من هنا يوما اليك خطوات الوصول الي شاشة المراجع بالصور: هذا والله أعلم وله وحده الحمد والمنة -
طلب تعديل على موديول اعادة الربط ااجداول تلقائيا
أبو عبدالله الحلوانى replied to ابو جودي's topic in قسم الأكسيس Access
كان لأستاذنا @jjafferr كلمة مميزة لطالما أثرت بي حيث يقول: في اعتقادي ، مشاركة أكثر من شخص في الرد على السؤال ، يفتق الاذهان ويدمج التجارب ويبلور الافكار وفائدة للجميع ، فمنه نتعلم الطرق الاخرى للإجابة على السؤال. أخي أرجو أن يكون أجر ما كتبت في موازين حسناتك ولا تنسي أن ما عند الله أعظم أجرا فلا تبتئس. فلعل صاحب الموضوع كان منشغلا بالبحث عن الحل بأماكن أخري وكذلك أنا كنت منشغلا بامور أخري بالاضافة لوضع حل للموضوع ، فلم نلحظ حلك للموضوع عن غير قصد ولابد والا فقد وفرت علينا عناء البحث والرد والكتابة شكرا لك مجددا ونأسف لجعلك تحزن ولو قليلا - ابتسم فان الحياة قصيرة -
السلام عليكم ورحمة الله وبركاته الحمد لله وحده تم حل المشكلة وجدت هذا الكلام 2 Missing primary key or timestamp Make sure the SQL-Server table has a primary key as well as a timestamp column. The timestamp column helps Access to determine if the record has been edited since it was last selected. Access does this by inspecting all fields, if no timestamp is available. Maybe this does not work well with null entries if there is no timestamp column (see 3 Null bits issue). The timestamp actually stores a row version number and not a time. Don't forget to refresh the table link in access after adding a timestamp column, otherwise Access won't see it. (Note: Microsoft's Upsizing Wizard creates timestamp columns when converting Access tables to SQL-Server tables.) في هذا الرابط https://stackoverflow.com/questions/13993301/editing-record-issues-in-access-sql-write-conflict وخلاصة الموضوع أنه كان يجب وضع عمود يسمي الطابع الزمني بالجدول الموجود بالسرفر يبدو أن التحول الي الـ SQL server ليس بالأمر السهل كما كنت أتوقع - ربنا يستر علي اللي جاي 😀 🙃 - وأشكر جميع أساتذتي الأفاضل وجزاكم الله عني خيرا
-
ياهلا ويا مرحبا بأخي وأستاذي وجعل الله أجر ما سطرتم وما تعبتم في موازين حسناتكم ومن باب الاعتراف بالحق أني أنا هنا طالب العلم بساحة أساتذتي الكرام الأفاضل وبعد أخي النموذج الذي به المشكلة لا يوجد به نموذج فرعي بل هو كما ذكرت بوصف المشكلة بالمشاركة الأولي هو نموذج مستمر فقط وكما ذكرت بالمشاركة الأخيرة أني تفاجأت عند تحويل مصدر الفورم من جدول السرفر الي جدول محلي أن المشكلة قد حلت فيبدو أن هناك مشكلة ما في تعامل السرفر مع النماذج المستمرة وجزاكم الله عنا خيرا أتعبتاكم كثيرا معي.
-
نعم المشكلة كما هي والخطأ يظهر علي سطر كود العملية الحسابية تظهر رسالة تعارض الكتابة ملاحظة: قمت باستخلاص النموذج الذي به المشكلة والجدول والاستعلام المرتبط به بقاعدة فارغة لأرفقه بالموضوع ثم قمت بالتجربة فعمل الكود بدون أي مشاكل فهل هذا يعني أن المشكلة بالسرفر فقط !! آسف علي تعب حضرتك كنت أريد رفع مرفق ولكن الظاهر أني محتاج أرفع الجهاز كله 😀 🤔
-
جزاكم الله عنا خيرا ولكن كما أسلفت سابقا أن النموذج واحد والزر الذي يتم من خلاله تعديل القيمة موجود علي نفس النموذج والكود المستخدم خلف الزر هو كود بسيط بهذا الشكل Me.EnzarKbl = Val(Nz(Me.EnzarKbl, 0)) + 1 فاعتقدت أنه لا يوجد جهات متعددة تعدل البيانات علي حسب ظني ولكن مصدر بيانات النموذج هو استعلام فهل يعتقد الأكسس أن الاستعلام داخل النموذج جهة والنموذج الذي يحوي الاستعلام جهة أخري!! سأطلع علي الموضوع الذي أشرتم اليه وأوافيكم بالنتائج ان شاء الله