-
Posts
685 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
13
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو أبو إبراهيم الغامدي
-
تعديل معادلة حسابية الى الافضل
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
-
تعديل معادلة حسابية الى الافضل
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
عزيزي @محمد احمد لطفى القيم السالبة ناتجة عن الاشتراطات المتعارضة بين الشرائج، وأتوقع وجود المزيد منها مع تنوع الإدخالات! يمكن معالجة هذا القصور باستخدام عبارة ()IIF كما في الحالات السابقة.. finish .mdb -
تعديل معادلة حسابية الى الافضل
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
آسف على هذا القصور.. هناك حالة لم أقوم بعالجتها في الشريحة الألى.. Option Compare Database Option Explicit Public Const SP1 = #1/1/1990# Public Const EP1 = #9/6/2016# Public Const SP2 = #9/7/2016# Public Const EP2 = #9/30/2020# Public Const SP3 = #9/30/2020# Public Const EP3 = #1/1/2050# Public Function DatePeriod(StartDate, EndDate, Interval) Dim Periods(1 To 3) As Variant If (StartDate >= SP1) And (EndDate <= EP1) Then Periods(1) = DateDiff("w", StartDate, EndDate) ElseIf (StartDate < SP1) And (EndDate <= EP1) Then Periods(1) = DateDiff("w", SP1, EndDate) ElseIf (StartDate < SP1) And (EndDate > EP1) Then Periods(1) = Abs(DateDiff("w", SP1, EP1)) ElseIf (StartDate >= SP1) And (EndDate > EP1) Then Periods(1) = IIf(DateDiff("w", StartDate, EP1) < 0, 0, DateDiff("w", StartDate, EP1)) Else Periods(1) = 0 End If If (StartDate >= SP2) And (EndDate <= EP2) Then Periods(2) = DateDiff("m", StartDate, EndDate) ElseIf (StartDate < SP2) And (EndDate <= EP2) Then Periods(2) = DateDiff("m", SP2, EndDate) ElseIf (StartDate < SP2) And (EndDate > EP2) Then Periods(2) = DateDiff("m", SP2, EP2) ElseIf (StartDate >= SP2) And (EndDate > EP2) Then Periods(2) = DateDiff("m", StartDate, EP2) Else Periods(2) = 0 End If If (StartDate >= SP3) And (EndDate <= EP3) Then Periods(3) = DateDiff("m", StartDate, EndDate) ElseIf (StartDate >= SP3) And (EndDate > EP3) Then Periods(3) = DateDiff("m", StartDate, EP3) Else Periods(3) = 0 End If DatePeriod = Periods(Interval) End Function finish .mdb أرجو التأكد من صحة البيانات مع مزيد من الإدخالات حتى يتسنى مععالجتها -
تعديل معادلة حسابية الى الافضل
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أهلا محمد... أعتذر منك لأني لم استجب لنداءك قمت بالتوفيق بين أفكار الزملاء بالحل المرفق.. Option Compare Database Option Explicit Public Const SP1 = #1/1/1990# Public Const EP1 = #9/6/2016# Public Const SP2 = #9/7/2016# Public Const EP2 = #9/30/2020# Public Const SP3 = #9/30/2020# Public Const EP3 = #1/1/2050# Public Function DatePeriod(StartDate, EndDate, Interval) Dim Periods(1 To 3) As Variant If (StartDate >= SP1) And (EndDate <= EP1) Then Periods(1) = DateDiff("w", StartDate, EndDate) ElseIf (StartDate < SP1) And (EndDate <= EP1) Then Periods(1) = DateDiff("w", SP1, EndDate) ElseIf (StartDate < SP1) And (EndDate > EP1) Then Periods(1) = DateDiff("w", SP1, EP1) Else Periods(1) = 0 End If If (StartDate >= SP2) And (EndDate <= EP2) Then Periods(2) = DateDiff("m", StartDate, EndDate) ElseIf (StartDate < SP2) And (EndDate <= EP2) Then Periods(2) = DateDiff("m", SP2, EndDate) ElseIf (StartDate < SP2) And (EndDate > EP2) Then Periods(2) = DateDiff("m", SP2, EP2) ElseIf (StartDate >= SP2) And (EndDate > EP2) Then Periods(2) = DateDiff("m", StartDate, EP2) Else Periods(2) = 0 End If If (StartDate >= SP3) And (EndDate <= EP3) Then Periods(3) = DateDiff("m", StartDate, EndDate) ElseIf (StartDate >= SP3) And (EndDate > EP3) Then Periods(3) = DateDiff("m", StartDate, EP3) Else Periods(3) = 0 End If DatePeriod = Periods(Interval) End Function finish .mdb -
وعليكِ السلام ورحمة الله وبركاته لنقم بتغيير طريقة السؤال على النحو التالي.. ماهو المبلغ الذي إذا أضفنا عليه الضريبة (%15) صار (1000)؟ وللإجابة على هذا السؤال؛ يجب أن نفهم أنه لا يمكن أن نضرب النسبة المجردة (0.15) في (1000) لسببين الأول أن هذه العملية تعيد (%15) بالنسبة إلى (1000) وليس إلى المبلغ المطلوب إضافة النسبة إليه ليصبح ألفا.. الثاني أن ناتج هذه العملية يعيد مبلغ النسبة إلى الأف، وحاصله (150). وهنا لا يمكن بتاتا القول أن المبلغ المطلوب هو (1000-150)! هذا فضيع.. إذا ماذا نعمل؟! وكيف نجيب على السؤال؟! في العمليات المحاسبية لا نستخدم النسبة المجردة (0.15) بل نستخدم (1.15)! إذا أردنا أن نعيد مبلغ 1000 مضافاً إليه ضرييبة %15 فستكون العملية الحسابية: 1000*1.15 إذا أردنا أن نعرف المبلغ الذي إذا أضفنا إليه %15 صار 1000 فستكون العملية الحسابية: 1.15/1000 أرجو أن تكون الفكرة وصلت!
-
ملء آلي ديناميكى للسجلات فى التقربر
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله و بركاته يمكن وضع هذه القيمة في المحدد الأخير لتابع فتح التقرير Dim stDocName As String stDocName = "Q1" DoCmd.OpenReport stDocName, acViewPreview, , , , 16000 '** يمكن أخذ القيمة من مربع نص وفي التقرير في خدث عند الفتح أضف النص التالي في الأعلى Private Sub Report_Open(Cancel As Integer) Dim Allrecords As Integer If Not IsNull(Me.OpenArgs) Then Allrecords = Me.OpenArgs End If -
-
أين هي البيانات حتى أصمم لك التقرير؟! على كل حال أخذت العينة المرفقة من أحد مشاركاتك وكررت فيها البيانات حتي أصل إلى العدد المطلوب! إليك النتيجة السجل.accdb
-
في الحقيقة أنت محكوم بعرض وطول الورق الذي ستطبع عليه البيانات! على سبيل المثال لكي تطبع تقريرا مكون من عامودين على ورقة A4 فأنت بحاجة إلى بيانات يمكن عرضها في مساحة أقصى أبعادها (10سم عرضاً) لكل عامود! وخلاف ذلك لن تستطيع إظهار البيانات بشكل صحيح!
-
كيف اظهر جدول الاكسس بصفحه الويب
أبو إبراهيم الغامدي replied to النجاشي's topic in قسم الأكسيس Access
وعليكم السلام أقترح عليك أن ترفق مثالا حتى يتمكن الجميع من فهم ما تريد -
إداة Selenium تختلف كليا عن (HTML Document Object Model (DOM، وبالتالي من المهم الرجوع إلى موقع المشروع لمعرفة كيفية استخدام الأداة، ومن المهم أيضاً أن نعلم أن لغة VBA لم تكن ضمن المشروع بالأساس، لكن أحد المطورين قام بإلحاقها في مشروع مستقل.. كما تجدر الإشارة أن ملجد Selenium يحتوي على ملف للمساعدة باسم (Selenium.chm). انقر عليه نقراً مزدوجاً وخذ لمحة عن كيفية استخدام الأدة في بيئة VBA.. ستلاحظ أن نموذج Selenium يتأخر في الظهور عند فتحه وذلك لأني جعلت المتصفح يقلع مع النموذج في وضع التخفي.. ولن يظهر النموذج حتى ينتهي المتصفح من تحميل الصفحة.. تعليمى.mdb
-
حسناً لنرى إذا كانت متطلبات العمل على سلينيوم مكتملة لديك.. يتطلب سلينيوم تحميل وتثبيت المحرك (ChromeDriver) التابع للمتصفح Chrome، ولإنهاء هذه المهمة يجب أولا التأكد من أن نسخة المحركة مطابقة لنسخة المتصفح.. كيف انقر على النقاط الثلاث في متصفح كروم ثم انقر المساعدة ثم نبذة عن قوقل كروم (واجهةالعمل عندي إنجليزية والأسماء التي أضعها بالعربي تقريبية) إذهب إلى موقع سلنيوم (تثبيت المحركات) Web Browser/Getting Started/Instal Drivers، ثم من الجدول انقر فوق Downloads المحاذية Google Chrome.. اتبع الخطوات ثم اختر النسخة المطابقة لمتصفك مع التأكد من النواة الملائمة.. قم بفك الملف المضغوط وانسخ الملف التنفيذي chromedriver.exe وضعه في المجلد SeleniumBasic.. هذا المجلد ضمن المجلد C:\Users\[UserName]\AppData\Local أرجو منك إنهاء هذه الخطوات حتى نبدأ باستخدام Selenium مع Access
-
موضوع تعليمى لنقل البيانات من موقع الى نموذج
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
لو فتحت الموقع في أحد المتصفحات لديك وقمت بالنقر بالزر اليمين للفارة على العدد 8.24 وأخترت فحص Inspect من القائمة سوف تظهر لك وسوم هتشمل التي تتحتوي عليها الصفحة مع التأشير على الوسم الذي يحتوي على عدد النقاط. كما في الصورة الوسم الذي يحتوي على النقاط هو الوسم الثاني ضمن أبناء الوسم الأب المعرف ضمن spaceit_pad، وبما أن الأبناء هي عبارة عن مصفوفة، وترتيب المصفوفة يبدأ بالرقم صفر فسوف يكون رقم الوسم الذي يحتوي على النقاط هو (1) وبناء عليه سيكون تعديل الشفرة على النحو التالي Case "score" Me.Score = t(1) '' السابقة '---------------------------------------------------- Case "score" Me.Score = el.Children(1).innerText '' التعديل -
موضوع تعليمى لنقل البيانات من موقع الى نموذج
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
لمعالجة هذه السبب أنت بين خيارين. الأول. أن تلغي الإشارة إلى الغرض IHTMLElement الثاني أن تضيف إلى قائمة المراجع المكتبة التي ينتمي إليها الغرض كما في الصورة ملاحظة: المكتبة باللون الأصفر يأشر عليها تلقائيا عند إضافة عنصر التحكم WebBrowser، لكنها تلغى عند حدوث القص واللصق.. ولذا يبغي أن تتأكد من أنه مؤشر عليها.. هتان المكتبتان من المكتبات الأساسية في ويندوز ويندر جدا أن لا تكون متوفرة، وبناءً عليه يجب عدم القلق بشأن توفرها عند نقل التطبيق إلى جهاز العميل.. تعليمى.mdb -
موضوع تعليمى لنقل البيانات من موقع الى نموذج
أبو إبراهيم الغامدي replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أهلا @محمد احمد لطفى لا يخفى أن مستندات هتشمل HTML مبنية على وسوم مترابطة هرمياً، وأن لهذه الوسوم رتب في هذا الهرم، وهي الآباء والأبناء والإخوة، وهذه الرتب قد تتداخل في بعضها البعض.. والمقصود من هذه التقدمة هو تسهيل الوصول إلى البييانات المضمنة داخل هذه الوسوم بطريق سهلة ومبسطة.. يمكن الوصول إلى البيانات بأحد الخصائص التالية Dim Tag,Class,Name,Id With WebBrowser1.Document ' أكثر هذه الخصائص تحديد Id=.getElementById("...") ' أقلها اتساعا وأقربها تحديدا For Each Name in .getElementsByName("...") Name Next ' تتوسع أفقيا أي في رتبة الأخوة For Each Class in .getElementsByClassName("...") Class Next ' أكثرها إنتشار For Each Tag in .getElementsByTagName("...") Tag Next end with أغلب هذه الخصائص تعيد مصفوفة غرضية ماعدا الأولى منها... نأتي على تطبق هذا على قاعدة البيانات Private Sub أمر11_Click() Dim el As IHTMLElement Dim t For Each el In WD.getElementsByClassName("spaceit_pad") t = Split(el.innerText, ":") Select Case t(0) Case "score" Me.Score = t(1) Case "rating" Me.Rating = t(1) Case "genres" Me.Genres = t(1) Case "theme" Me.Theme = t(1) End Select Next End Sub أرجو أن يكون بإمكانكم اكتشاف طريقة معالجة البيانات.. -
مشكلة في التقريب باستخدام الدالة round
أبو إبراهيم الغامدي replied to عبد الله قدور's topic in قسم الأكسيس Access
في الحقيقة نحن لسنا بحاجة لا إلى FormatNumber ولا إلى Round.. يطلب منك أكسس فقط أن تغير المنازل العشرية بعد الفاصلة إلى صفر في الحقل المطلوب -
مشكلة في التقريب باستخدام الدالة round
أبو إبراهيم الغامدي replied to عبد الله قدور's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته أهلا @عبد الله قدور استخدم التابع FormatNumber بهذه الطريقة FromatNumber(15.5,0) -
من هذه المصورة يتضح أن صفحة الويب ضمن خادم الويب (Web Server) وليست صفحة ويب منفردة! كما كنت أتوقع! وبناء عليه أصبح الوضع معقدا بعض الشيء لأنه ينقصني الآن معرفة كيف يتخاطب الخادم مع صفحة الويب، وكيف يرسل ويتسقبل البيانات.. وأياً كان البروتوكول المستخدم ؛ يمكن اختبار أرسال البيانات بالطريقة التالية.. التأكد من أن صندوق الإختيار ضمن الوسم <Form> (النموذج في صفحة الويب) التأكد من وجود معرف للنموذج يمكن استخدامه للوصول للنموذج، أو يمكن استخدام رقمه التأكد من أن البيانات ترسل عن طريق نموذج الويب وطريق عرض مصدر الصفحة أو عن طريق أدوات المطورين بعد ذلك يمكن استخدام الشفرة التالية Sub PostCheckBox() Dim I As Integer Dim TC_ID With WD.querySelectorAll("table tr") For I = 1 To .length - 1 Dim WC_ID WC_ID = Val(.Item(I).Children(1).innerText) TC_ID = DLookup("View", "Customers Accounts", "Account_No=" & WC_ID) If TC_ID Then .Item(I).setAttribute "class", "checked" .Item(I).Children(4).Children(0).Checked = True .Item(I).Style.background = "skyblue" WD.Forms(0).submit '//يرسل البيانات للخادم بعد كل اختيار Else .Item(I).removeAttribute "class" .Item(I).Children(4).Children(0).Checked = False .Item(I).Style.background = "" End If Next End With End Sub إذا أرسل البيانات للخادم وتم قبولها فسوف يقوم بإعادة إرسال البيانات إلى الصفحة وسوف تظهر صناديق الاختيار وقد تم التأشير عليها، والعكس إذا لم تنجح العملية.. هذا ما أستطيع تقديمه لك على ضوء المعلومات التي قدمتها لدعم طلبك.. TestCheckBoxOnHtml.zip
-
لقد رجعت إلى أول المشاركة لأتفهم سوالك بعناية وكان ما وجدته هذا الاقتباس أيش يعني أرسال القيمة بدلا عن معرفتها؟! ومن أين ترسل؟ وهذه العبارة أيضا تحتاج إلى توضيح.. في ظني أنك تريد حفظ البيانات على صفحة بعد تحديد السجلات المراجعة.. إذا كان هذا ماتريد الشفرة التالية تقوم بالعمل Private Sub cmdSavePage_Click() Dim FileName FileName = SaveAs() If IsEmpty(FileName) Then Exit Sub Open FileName For Output As #1 Print #1, LCase(WD.documentElement.outerHTML) Close #1 End Sub مكان هذه الشفرة تحت زر الأمر cmdSavePage انظر المرفق TestCheckBoxOnHtml.accdb