-
Posts
708 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
13
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه أبو إبراهيم الغامدي
-
-
1 ساعه مضت, بلال اليامين said:
اخي لي عمودين فقط
استاذ هل تسطيع انجز هذا التقرير
أين هي البيانات حتى أصمم لك التقرير؟!
على كل حال أخذت العينة المرفقة من أحد مشاركاتك وكررت فيها البيانات حتي أصل إلى العدد المطلوب!
إليك النتيجة
-
1
-
-
17 ساعات مضت, بلال اليامين said:
اخي اليك صورة تبين التقرير الذي ابحث عنه
اريد ترتيب الارقام من 1 ............ الى 50
و 51 ......................................... الى 100 في ورقة واحدة
اليك الصورة
في الحقيقة أنت محكوم بعرض وطول الورق الذي ستطبع عليه البيانات!
على سبيل المثال لكي تطبع تقريرا مكون من عامودين على ورقة A4 فأنت بحاجة إلى بيانات يمكن عرضها في مساحة أقصى أبعادها (10سم عرضاً) لكل عامود!
وخلاف ذلك لن تستطيع إظهار البيانات بشكل صحيح!
-
في 9/8/2022 at 02:33, النجاشي said:
كود احدد الجدول المطلوب بالاكسس واضهاره بصفحه الويب تحياتي احبتي
وعليكم السلام
أقترح عليك أن ترفق مثالا حتى يتمكن الجميع من فهم ما تريد
-
أهلا @طاهر الوليدي
4 ساعات مضت, طاهر الوليدي said:المطلوب عند حقل الهجري هو ان يظهر التقويم الهجري بجوار الحقل التاريخ الهجري
هذه هي الطريقة
المطلوب اظهار قرب حقل ميلادي تقويم ميلاد وقرب حقل الهجري تقويم هجري .mdb
-
1
-
1
-
-
في 3/8/2022 at 15:45, عبد الله قدور said:
كيف يمكنني اظهار شريط الاجمالي في نهاية ورقة البيانات برمجيا والذي يظهر عادة عند الضغط على الزر في الصورة
جرب المرفق يمكن يناسبك
-
1
-
-
14 ساعات مضت, محمد احمد لطفى said:
يعمل بالفعل أستأذن حضرتك كيف يمكن اخذ البيانات من صفحة مفتوحة بالفعل
نعم يمكن بشرط أن تكون المتصفح هو محرك ChromeDriver، بمعنى أنه يقلع من خلال أكسس..
-
1
-
-
7 ساعات مضت, محمد احمد لطفى said:
تم تنفيذ الخطوات
إداة Selenium تختلف كليا عن (HTML Document Object Model (DOM، وبالتالي من المهم الرجوع إلى موقع المشروع لمعرفة كيفية استخدام الأداة، ومن المهم أيضاً أن نعلم أن لغة VBA لم تكن ضمن المشروع بالأساس، لكن أحد المطورين قام بإلحاقها في مشروع مستقل..
كما تجدر الإشارة أن ملجد Selenium يحتوي على ملف للمساعدة باسم (Selenium.chm). انقر عليه نقراً مزدوجاً وخذ لمحة عن كيفية استخدام الأدة في بيئة VBA..
ستلاحظ أن نموذج Selenium يتأخر في الظهور عند فتحه وذلك لأني جعلت المتصفح يقلع مع النموذج في وضع التخفي.. ولن يظهر النموذج حتى ينتهي المتصفح من تحميل الصفحة..
-
1
-
-
20 ساعات مضت, محمد احمد لطفى said:
أعمل على chrome و تم تحميل Selenium Basic VBA
حسناً لنرى إذا كانت متطلبات العمل على سلينيوم مكتملة لديك..
يتطلب سلينيوم تحميل وتثبيت المحرك (ChromeDriver) التابع للمتصفح Chrome، ولإنهاء هذه المهمة يجب أولا التأكد من أن نسخة المحركة مطابقة لنسخة المتصفح.. كيف
انقر على النقاط الثلاث في متصفح كروم ثم انقر المساعدة ثم نبذة عن قوقل كروم (واجهةالعمل عندي إنجليزية والأسماء التي أضعها بالعربي تقريبية)
إذهب إلى موقع سلنيوم (تثبيت المحركات) Web Browser/Getting Started/Instal Drivers، ثم من الجدول انقر فوق Downloads المحاذية Google Chrome..
اتبع الخطوات ثم اختر النسخة المطابقة لمتصفك مع التأكد من النواة الملائمة..
قم بفك الملف المضغوط وانسخ الملف التنفيذي chromedriver.exe وضعه في المجلد SeleniumBasic.. هذا المجلد ضمن المجلد C:\Users\[UserName]\AppData\Local
أرجو منك إنهاء هذه الخطوات حتى نبدأ باستخدام Selenium مع Access
-
1
-
-
4 ساعات مضت, محمد احمد لطفى said:
كيف يمكن النقل من صفحة الانترنت تعمل على المتصفح يكفى تطبيقها على Score
واذا كانت نفس الطريقة سوف أطبقها على الخلايا الأخرىإذا كنت لاتزال تستخدم متصفح Internet Explorer فالأمر سهل، لكن إذا كان غير ذلك فأن بحاجة إلى الأداة Selenium Basic VBA، ولمعرفة استخدامة اذهب إلى Selenium WebDrive
-
7 ساعات مضت, محمد احمد لطفى said:
عند نقل Score تم نقل ( 8.241 (scored by 14490791,449,079 users) 1 indicates a weighted score. ) هل يمكن نقل الرقم 8.241 فقط
لو فتحت الموقع في أحد المتصفحات لديك وقمت بالنقر بالزر اليمين للفارة على العدد 8.24 وأخترت فحص Inspect من القائمة سوف تظهر لك وسوم هتشمل التي تتحتوي عليها الصفحة مع التأشير على الوسم الذي يحتوي على عدد النقاط. كما في الصورة
الوسم الذي يحتوي على النقاط هو الوسم الثاني ضمن أبناء الوسم الأب المعرف ضمن spaceit_pad، وبما أن الأبناء هي عبارة عن مصفوفة، وترتيب المصفوفة يبدأ بالرقم صفر فسوف يكون رقم الوسم الذي يحتوي على النقاط هو (1) وبناء عليه سيكون تعديل الشفرة على النحو التالي
Case "score" Me.Score = t(1) '' السابقة '---------------------------------------------------- Case "score" Me.Score = el.Children(1).innerText '' التعديل
-
1
-
-
38 دقائق مضت, محمد احمد لطفى said:
حيث جائتنى هذه الرسالة
لمعالجة هذه السبب أنت بين خيارين.
الأول. أن تلغي الإشارة إلى الغرض IHTMLElement
الثاني أن تضيف إلى قائمة المراجع المكتبة التي ينتمي إليها الغرض كما في الصورة
ملاحظة: المكتبة باللون الأصفر يأشر عليها تلقائيا عند إضافة عنصر التحكم WebBrowser، لكنها تلغى عند حدوث القص واللصق.. ولذا يبغي أن تتأكد من أنه مؤشر عليها..
هتان المكتبتان من المكتبات الأساسية في ويندوز ويندر جدا أن لا تكون متوفرة، وبناءً عليه يجب عدم القلق بشأن توفرها عند نقل التطبيق إلى جهاز العميل..
-
1
-
1
-
-
أهلا @محمد احمد لطفى
في 21/7/2022 at 16:38, محمد احمد لطفى said:أحاول أن أتعلم نقل بيانات من صفحة انترنت الى نموذج و لكن افشل
لا يخفى أن مستندات هتشمل 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
أرجو أن يكون بإمكانكم اكتشاف طريقة معالجة البيانات..
-
2
-
1
-
-
12 دقائق مضت, الحلبي said:
الاستاذ / @عبد الله قدور
طيب وماذا عن الراجل الطيب / @عبدالقدوس48 الذى قدم مثالا لك وقال تفضل اخى الكريم
هل المثال لم يقوم بالحل
في الحقيقة نحن لسنا بحاجة لا إلى FormatNumber ولا إلى Round..
يطلب منك أكسس فقط أن تغير المنازل العشرية بعد الفاصلة إلى صفر في الحقل المطلوب
-
2
-
-
وعليكم السلام ورحمة الله وبركاته
أهلا @عبد الله قدور
استخدم التابع FormatNumber بهذه الطريقة
FromatNumber(15.5,0)
-
1
-
-
في 8/3/2022 at 22:26, أبو عبدالله الحلوانى said:
وعند تمرير القيمة من خلال الكود لا يحدث شىء سوي تعليم الاتشك شكليا ولا يتم تمرير القيمة الي الجدول
من هذه المصورة يتضح أن صفحة الويب ضمن خادم الويب (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
إذا أرسل البيانات للخادم وتم قبولها فسوف يقوم بإعادة إرسال البيانات إلى الصفحة وسوف تظهر صناديق الاختيار وقد تم التأشير عليها، والعكس إذا لم تنجح العملية..
هذا ما أستطيع تقديمه لك على ضوء المعلومات التي قدمتها لدعم طلبك..
-
في 3/3/2022 at 21:31, أبو عبدالله الحلوانى said:
وكان الغرض من السؤال منذ البداية هو ايجاد طريقة لارسال هذه البيانات من الاكسس الي صفحة الويب بدلا من البحث و التعليم بشكل يدوي
لقد رجعت إلى أول المشاركة لأتفهم سوالك بعناية وكان ما وجدته هذا الاقتباس
في 30/1/2022 at 23:06, أبو عبدالله الحلوانى said:والسؤال هل يمكن ارسال القيمة للـ CheckBox بدلا من معرفتها؟ وهذا كان سؤالي منذ البداية بالموضوع السابق الاشارة اليه
أيش يعني أرسال القيمة بدلا عن معرفتها؟! ومن أين ترسل؟
في 3/3/2022 at 21:31, أبو عبدالله الحلوانى said:ليأتي دور برنامج الأكسس والذي يتم تخزين بيانات العملاء الذين تم التعامل معهم يدويا -لم يتم ادخال بياناتهم علي جهاز الارسال يعني-
وهذه العبارة أيضا تحتاج إلى توضيح..
في ظني أنك تريد حفظ البيانات على صفحة بعد تحديد السجلات المراجعة.. إذا كان هذا ماتريد الشفرة التالية تقوم بالعمل
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 انظر المرفق
-
18 ساعات مضت, أبو عبدالله الحلوانى said:
الا يوجد حل لتمرير القيمة الي الاتشك كما لو كان هذا يتم بشكل يدوي بدون التعرض الي التعامل مع الجدول
لو أعطيتني فكرة عن كيف وصلت البيانات إلى صفحة الويب وإلى أين ستذهب بعدها..
كان الجواب على قدر السؤال ولو زدتنا زدناك.. لكنك لا تزال تدور حول نقطة واحدة!
-
أهلا بك @أبو عبدالله الحلوانى
23 ساعات مضت, أبو عبدالله الحلوانى said:الحمد لله بعد فحص الكود اتضحت لي سذاجة تلك الاستفسارات السابقة
لعلي تعجلت في السؤال قبل اختبار الكود جيدا
هذا شيء جيد ومبهج صراحة أن تقوم بمعالجة الأخطاء بنفسك!
في 26/2/2022 at 23:34, أبو عبدالله الحلوانى said:2- تظر معي رسالة خطأ ولم استطع معرفة سببها حتي الآن ولا يتم منح الـتشك بكس قيمة - نسيت ان اقوم بتصوير رسالة الخطأ - سأقو بهذا غدا ان شاء الله ولكن الخطأ يظهر عند جملة childNodes ويعطني ان هذه الخاصية غير متاحة لهذا الأوبجكت علي ما اذكر من هذه الرسالة
قم فقط باستبدال childNodes بــ children
أجريت بعض التعديل على الشفرة وجعلتها تقوم بتحديث جدول البيانات
-
1
-
-
في 29/1/2022 at 15:07, Amr Ashraf said:
يجب تفعيل المكتبات الموجودة بالصورة حتى لا تواجه مشاكل .
للتخلص من استخدام مكتبة الأوفس ومشكلة عدم التوافق يمكن عمل التالي
-- الإعلان عن متغير غرضي عام (Object) بدلا من التخصيص لشريط الأدوات أو قائمة الأدوت (CommandBar, CommandBarControl).
-- عمل قائمة دلالية بأرقم خيارات موقع الأدوات أو استخدام الرقم مباشرة..
Public Enum MsoBarPosition msoBarBottom = 3 '..Command bar is docked at the bottom of the application window. msoBarFloating = 4 '..Command bar floats on top of the application window. msoBarLeft = 0 '..Command bar is docked on the left side of the application window. msoBarMenuBar = 6 '..Command bar will be a menu bar (Macintosh only). msoBarPopup = 5 '..Command bar will be a shortcut menu. msoBarRight = 2 '..Command bar is docked on the right side of the application window. msoBarTop = 1 '..Command bar is docked at the top of the application window. End Enum '--- يكون الأعلان بهذه الطريقة Sub MyMenu2() Dim Mnu As Object, Itm As Object Set Mnu = CommandBars.Add("", MsoBarPopUp, , True) Set Itm = Mnu.Controls.Add: Itm.Caption = "Export To PDF": Itm.OnAction = "amr3" Set Itm = Mnu.Controls.Add: Itm.Caption = "Export To Excel": Itm.OnAction = "amr4" Mnu.ShowPopup End Sub
-
2
-
1
-
-
28 دقائق مضت, Amr Ashraf said:
الترقيات عندكم مفاجآت والله 😮 بارك الله فى اعماركم وجزاكم خيرا على ما تقدموه , ولكنى احس اللقب ثقيل جدا على انا مازلت مبتدئ 😔
أعاننا الله عليه .. لى الشرف انى اكون جزء من هذا الطاقم الكريم . تحياتى لكم جميعاً
كيف تحس أن اللقب ثقيلا عليك وأنت من أصحاب المعلقات! عن نفسي كنت أظنك خبيراً فعلا!
-
في 9/2/2022 at 23:36, ابوخليل said:
يا هلا اخوي ابو ابراهيم
لا اخفيك .. كنت آمل مداخلتك وابداء رأيك في الموضوع
جزاك الله خيرا
أعتذر إليك أستاذ أبو خليل لأني لم استطع أن أجد طريقة سهلة يمكن لمبرمج أكسس التعامل معها في تطبيق مفهوم Google Drive API
-
أهلا بكم..
أعتقد أنه يمكن ذلك عن طريق استخدام Google Drive API
أحاول أجهز مثال على أكسس وأشرح طريقته إن شاء الله
-
2
-
1
-
-
في 8/2/2022 at 00:02, jjafferr said:
واتمنى على اخي أبو إبراهيم ان يجعل برنامجه يقبل تغيير انواع الرسومات البيانية كما في البرنامج الآخر
جعلت عملية الاختيار تتم عن طريق مربع التحرير والسرد في صفحة الويب..
إذا أردت أن أجعل الاختيار يتم عن طريق أزرار الاختيار في النموذج فهذا أسهل للفهم..
لكني أفضل أن يكون التعامل مع صفحة البيانات مباشرة!
طريقة عمل التبديل بين المخططات تمرير قيمة نصية باسم نوع المخطط إلى المعامل ChartType ضمن الإجراء CHARTS(ChartLabels, ChartData, ChartType)
Public Sub CHARTS(ChartLabels, ChartData, CharType) Dim J As String ' ------- All these codes implemented in Web browser document '------- Chart container J = J & "var ctx=document.getElementById('chart-bar').getContext('2d');" '------- Chart Type J = J & "var myChart=new Chart(ctx,{type:'" & CharType & "'," '------- Chart Data J = J & "data:{labels: [" & ChartLabels & "]," J = J & "datasets: [{label: 'Count Of Transaction Type',data: [" & ChartData & "]," '------- Styling Chart components J = J & "backgroundColor:" J = J & "['rgba(255, 99, 132, 0.2)','rgba(54, 162, 235, 0.2)','rgba(255, 206, 86, 0.2)'," J = J & "'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)','rgba(255, 159, 64, 0.2)']," J = J & "borderColor:" J = J & "['rgba(255,99,132,1)','rgba(54, 162, 235, 1)','rgba(255, 206, 86, 1)'," J = J & "'rgba(75, 192, 192, 1)','rgba(153, 102, 255, 1)','rgba(255, 159, 64, 1)']," J = J & "borderWidth: 1}]}," '------- Chart options added here,refer to ChartJS documentation for more practicing J = J & "options: {responsive:true,scales:{yAxes:[{ticks:{beginAtZero:true}}]}}});" '--- Execute JScript code WF.PW.execScript (J) End Sub
الإجراء سابق الذكر لا يقوم بتنفيذ رسم المخطط بذاته ولكن يقوم بتجميع شفرة JavaScript وكتابتها في صفحة الويب وهذه الأخيرة تقوم بتنفيذه..
والأفضل أن نقوم بكتابة شفرة JavaScript في بنية الصفحة ضمن الجدول WebCode ثم نقوم باستدعاءها من داخل أكسس بعد تمرير قيم المعاملات إليها..
وسبب كون الخيار الثاني هو الأفضل
.. صعوبة الأول: لأن كتابة شفرة جافا بهذه الطريقه يوقع في الخطأ لا محالة..
.. أما الثاني: سهولة كتابة الشفرة مباشرة، لكونها أسهل شفرة يمكن كتابتها بين الشفرات البرمجية! كما أنه يمكن اقتباسها من الويب ولصقها في الجدول من دون قلق!
أقول هذا لأني وقعت في اشكال بسيط واحتجت معه إلى استدعاء أحد إجراءات الشفرة..
ولتوضيح السبب..
حيث أننا قمنا باستعاء الإجراء CHARTS مرتين: مرة عند إقلاع النموذج، والمرة الثانية عند اختيار نوع المخطط؛ فإن شفرة الجافا تقوم بإشاء رقعة الرسم مرتين، مرة للمخطط الأساسي ومرة للرسم المختار من القائمة.. عند المرور بالمؤشر على رقعة الرسم فسوف نرى أن الصفحة تقوم بالتبديل بين الرسمين! وهذا أمر سيء للغاية، ولذا احتجنا إلى انهاء الأول قبل رسم الثاني وذلك باستخدام إجراء متعلق بالمخطط اسمه Destroy قبل اختيار المخطط الجديد
Private Sub WebBrowser0_TitleChange(ByVal Text As String) If Not Text Like "about:*" Then JS.mychart.destroy ' انهاء الرسم السابق Call CHARTS(TransData.Labels, TransData.Data, Text) End If End Sub
المرفق بعد التعديل..
-
2
-
-
48 دقائق مضت, مستفيد69 said:
فرأيي ان نتركه على مزاجه ونحل مشكلتنا كما قال الأستاذ @أبو إبراهيم الغامدي او بطريقة عكس الرموز يدويا
المسألة متعلقة بخصائص RichBox كونها محدودة؛ حتى مع الألون!
-
1
-
انجاز تقرير
في قسم الأكسيس Access
قام بنشر
التعديل
1384015853_.accdb