اذهب الي المحتوي
أوفيسنا

أبو إبراهيم الغامدي

أوفيسنا
  • Posts

    673
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    13

مشاركات المكتوبه بواسطه أبو إبراهيم الغامدي

  1.  

    23 ساعات مضت, Khalf said:

    شاهد المرفق بإمعان، فما قد تستصعب التأمل به لدقائق، قد استغرق ساعات من التفكير والعمل لموضوع غير مسبوق عندي.

    لا أضاع الله تعبك وجهدك أستاذ @Khalf ..

    فعلا حل ذكي! مع بساطته وسهولته.. وأشهد أنه أحد نوادرك.. شكراً لك.. 

     

    • Thanks 2
  2. 11 ساعات مضت, أبو عبدالله الحلوانى said:

    والسؤال هل يمكن ارسال القيمة للـ CheckBox بدلا من معرفتها؟ وهذا كان سؤالي منذ البداية بالموضوع السابق الاشارة اليه

    أهلا بك @أبو عبدالله الحلوانى

    نعم ممكن.. لكن في مثالك لن تكون القيمة ثابتة! بل مجرد تحديث الصفحة سوف يرجع إلى وضعه الطبيعي، لكون الحقول غير مرتبطة بجدول بيانات..

    الشفرة كالتالي 

    -- نقوم بتحديد صفوف الجدول أولا لأن لنا معها أمران:

    الأول القيمة المطابقة للبحث وهي في الحقل الثاني من الصف، وللوقوف على الحقل المطابق يلزمنا عمل دوارة فحص..

    الثاني إذا تطابقت البيانات نحدد الحقل الذي به صندوق الاختيار ومن ثم نعطيه القيمة True 

    Sub IsChecked()
       Dim I As Integer
       Dim tr As Object
       Set tr = WD.querySelectorAll("table tr")
          For I = 1 To tr.length - 1
             '-- check if second cell in the row matched textbox value
             If tr(I).childNodes(1).innerText = Me.Text0 Then
                '-- if true: in fifth cell in the row set checked property true
                tr(I).childNodes(4).childNodes(0).Checked = True
             End If
          Next
    End Sub

    TestCheckBoxOnHtml.zip

    • Like 2
    • Thanks 2
  3. 12 ساعات مضت, jjafferr said:

    لم اغير في الشفرة ، بل اضفت طريقتي للحصول على بيانات نظيفة كما في المربع الاحمر (ونتائجه) ، وتأكدت ان المكتبات كلها موجودة ،

    طلبي كان إعادة تجربة الشفرة بعد إدخال البيانات فقط

    نعم هناك طرق كثيرة لمعالجة البيانات وأبسط بكثير من RegExp  

    إذا كانت البيانات في المقطع الأخير نصية وبها فراغات فإن استخدام Split في الدورة الثانية سوف يحدث خللا في البيانات

    وبما أن السجل التاريخي ذو بيانات ثابتة إلى المقطع الأخير فيمكن استخدام الطريقة التالية

    Sub SplitHistory()
       Dim XHistory
       Dim L, D, T, V
       XHistory = Split(Application.ColumnHistory("Products", "List Price", "id=1"), vbCrLf)
       For Each L In XHistory
          Debug.Print L
          D = Mid(L, 12, 10)   ' Date
          T = Mid(L, 23, 8)    ' Time
          V = Mid(L, 34)       ' Value
          Debug.Print D, T, V
          Debug.Print
       Next
    End Sub

     

    • Like 1
  4. 15 دقائق مضت, jjafferr said:

    والكود الذي ارفقته ، لم تظهر نتائج RegExp !!

    أهلا أستاذ جعفر..

    المثال مطبق على قاعدة البيانات المرفقة..

    أرجو منك تكرماً تعديل بيانات الحقل List Price لسجل معين أكثر من مرة ثم إعادة تجربة الشفرة.. لا تنس تحديد قيمة لمعامل معيار التصفية

  5. 20 ساعات مضت, أبو عبدالله الحلوانى said:

    حاولت ارسال بيانات الي Check Box داخل جدول ولكن لم اوفق في ذلك جربت كل ما اظن انه قيمة صالحة للاتشك 

    كنت أتمنى أن تبدأ مشاركة جديدة حتى أتمكن من مساعدك! 

    هذا مثال آمل أن تتمكن من معرفة آلية عمله وإذا احتجت إلى مزيد من المعلومات أرجو فتح مشاركة جديدة

    HTML Table.accdb

    • Like 2
  6. 6 ساعات مضت, jjafferr said:

    هذه الطريقة من نوادر و درر الاكسس التي يعرفها القلة ، وخصوصا انها مخبأة في الجداول ، وحسب فهمنا القديم للجداول انها لا تُبرمج !!

    من الأشياء المتعلقة بهذا الموضوع (تتبع التغيرات)..

    في الإصدار 2007 البيانات من نوع ( ملاحظات Memo) وما بعده من الإصدارات (النصوص الطويلة Long Text)

    يوجد خاصية ضمن خواص هذا النوع من البيانات اسمها (Append Only)، عند ضبطها على (On) تقوم بتكديس البيانات السابقة للحقل في الخلفية بالتاريخ والوقت

    AppendOnlyField.jpg.3edd363d063582154aeb703740a5b95c.jpg1233088389_Screenshot2022-01-30183555.png.d4ac3e63d1d4e2631e664896ddcf35d9.png

     

     

     

     

     

     

     

     

     

     

     

    ولإعادة طلب البيانات نستخدم التابع Application.ColumnHistory، يأخذ هذا التابع ثلاثة عوامل: العامل الأول اسم الجدول، والثاني اسم الحقل، والثالث معيار التصفية

    ويعيد هذا التابع التاريخ والوقت والبيانات المتغيرة للحقل

    XHistory = Application.ColumnHistory("Products", "List Price", "id=1")
      
    [Version:  30/01/2022 09:55:41 ] 20
    [Version:  30/01/2022 10:07:44 ] 30

    يمكن معالجة البيانات باستخدام الإجراء التالي للحصول على بيانات نظيفة

    Sub XColHist()
       Dim RE As New RegExp
       Dim R, M As Match
       Dim XHistory As String, P As String
       
       '-- Refer to Microsoft Docum for more info
       XHistory = Application.ColumnHistory("Products", "List Price", "id=1")
       
       '-- Data History before processing
       Debug.Print XHistory
       Debug.Print
       
       '-- Data History after processed by RegExp
       P = P & "(\d{1,2}/\d{1,2}/\d{2,4})\s"        ' date of change
       P = P & "(\d{1,2}:\d{1,2}:\d{1,2})\s\]\s"    ' time of change
       P = P & "([A-Z0-9]+)"                        ' value of change
       
       '--Refer to regexp docum for more info
       RE.Pattern = P
       RE.IgnoreCase = True
       RE.Global = True
       '--
       For Each M In RE.Execute(XHistory)
          For Each R In M.SubMatches
             Debug.Print R; Tab;
          Next
          Debug.Print
       Next
    End Sub
            
    Data History before processing
    [Version:  30/01/2022 09:55:41 ] 20
    [Version:  30/01/2022 10:07:44 ] 30
    
    Data History after processed by RegExp
    30/01/2022    09:55:41      20            
    30/01/2022    10:07:44      30            
    

    لمزيد من المعلومات أرجو زيارة الرابط التالي Docs.Microsoft.ColumnHistory

    AppendOnly.accdb

    • Like 2
  7. أهلا بكم..

    DLookup (Expr, Domain, Criteria)

    -- في معامل Expr:  يمكن أن نستخدم Last First Count أو أي تابع من توابع أكسس أو تنشئ دالة تقوم بحساب أو فحص شئ ما.

    -- في معامل Criteria: يمكن أن نمرر إلى الحد الأيسر من المعيار أي من توابع أكسس مثل توابع التاريخ DateDiff أو  Format أو Cstr.

    On Immediate Window
    
    ?Dlookup("UCase(First([Last Name]&', '&[First Name]))","Customers","City='Boston'")
    GRATACOS SOLSONA, ANTONIO
    
    ?Dlookup("UCase(Last([Last Name]&', '&[First Name]))","Customers","City='Boston'")
    AUTIER MICONI, CATHERINE
      
    ?Dlookup("'Count Records: '&Count([Last Name]&', '&[First Name])","Customers","City='Boston'")
    Count Records: 2

     

     

    • Like 3
  8. 7 دقائق مضت, النجاشي said:

    اذا انا بدي افتح نماذجي لنفس الواجه تبعك من اين اعدل بالكود 

    كل ما عليك فعله هو تغيير مصدر السجل للنموذج فقط!

     

    ملاحظة هامة:

    هذى المشاركة والتي قبلها مخالفة لأنظمة وقواعد المشاركة..

    ولذا إذا كنت ستسمر في طرح الأسئلة رجاءً قم بفتح مشاركة جديدة مع الإشارة إلى هذه الجزئة.. 

    • Thanks 1
  9. 4 ساعات مضت, النجاشي said:

    جميل جدا استاذي الفاضل ابو ابراهيم ياليت كان طريقه الازرار علي اليمين للمستخدم العربي وضفت بعض نماذج أما الواجه لا عليها غبار جميله ما شاء الله عليك زادك ربي علما وفخرا لنا   تحياتي اليك استاذي الفاضل

    أهلا بك..

    كانت مدالخلتي في هذه المشاركة لكون اسمي ذكر فيها! والمرفق كانت لغرض محدد فقط وهو توضيح فكرة تجاوب مكونات HTML..

    لتحويل الواجه من اليسار إلى اليمين، كل ماعليك هو تعديل بسيط على التابع  WD ليصبح كالتالي

    Public Property Get WD() As HTMLDocument
       Set WD = Me.WebBrowser0.Document
       "WD.Dir = "rtl
    End Property

     

     

    • Like 2
    • Thanks 1
  10. منذ ساعه, moamen salem said:

    اشكرك استاذي الفاضل انا فقط اريد طريقة عمل التقرير وليس الكيو ار

    أهلا بك..

    مع أني اقتبست مشاركتك وأدرجتها في مشاركتي، إلا أنّ تركيزي كان منصب على QR الوفيديو الذي طلبت.. أعتذر عن ذلك..

    سوف أقوم بعمل مشاركة بهذا الخصوص في أقرب فرصة إنشاء الله..  

     

  11. في ١٠‏/١‏/٢٠٢٢ at 14:21, moamen salem said:

    و حضرتك قدرت تعمل فديو مبسط عن طريقة عرض التقرير بالصورة اللي حضرتك عاملها نكون لك من الشاكرين وان لم تستطع فنحن لك ايضا من الشاكرين

    أهلا بك..

    للأسف لم يسبق لي أن سجلت فيديو من قبل!

    إذا كان تعلم الويب صعبا عليك فيمكنك استخدام أداة QRCodeAX كبديل..

    قم بفك ضغط المرفق التالي في \:C  ومن افتح قاعدة البيانات..

    تسطيع نقل قاعدة البيانات لكن لا تسطيع نقل الأداة أو تغيير اسم المجلد! إلا إذا كنت تريد تسجيل الأداة من جديد 

    Saudi Invoice With QRCodeAX.zip 

  12. 48 دقائق مضت, moamen salem said:

    ياريت حد من الاساتذة يشرحلنا الجملة دي او حتي في موضوع مستقل

       WB.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT
     

    هذه معرفات لقيم رقمية تخص معاملات الإجراء ExecWB في مستعرض الويب. كل معرف من هذه المعرفات له قيمة..

    للاطلاع على الإجراء ExecWB والقيم التابعة له: اضغط بالزر اليمين على المعرف ومن ثم اختر (Definition) لا أدري ما الذي يقابلها بالعربي وسوف تظهر لك جميع المعرفات التي تخص المعامل الذي نقرت عليه....

    1624135007_Screenshot2022-01-10135554.png.70c3bb616c9d0e1bbff63e111f6d4d9d.png563216658_Screenshot2022-01-10133603.png.25110b91b44633970469fbf3259651f5.png691068827_Screenshot2022-01-10134954.png.0fa243269fbee8941759647fb22db749.png

  13. 41 دقائق مضت, ناقل said:

    بعض المواقع عند فتحها عن طريق متصفح الويب في الاكسس تظهر رسالة مفادها ان المتصف غير مدعوم ... فهل يمكن تلافي مثل هذه الرسائل بحيث يمكن فتحها بالمتصفحات المدعومة داخل نموذج الاكسس .... انظر الصور والمرفق كمثال ...

    لم يكون فتح المواقع داخل أكسس هو هدفي، ولا هو مضمون مشاركتي أيضا!

    فأرجو أن لا يكون هذا توقعكم ولا تتطلعاتكم..

    بالنسبة لبرامج التواصل مثل الواتس والتليقرام فهذه لها APIs تعمل من خلاله، وتحتاج منك إلى اشتراك..

     

     

    • Like 1
  14. في ٦‏/١‏/٢٠٢٢ at 16:55, ناقل said:

    ورد في حديث اخونا جفعر عبارات أردت ان استفسر فن طريقة ادائها وخاصة كما ذكر اخي @jjafferr 

    وفي الوقت الذي كانت جميع اعمالنا المستخدمة عن طريق الانترنت اكسبلورر IE كادت ان تموت ، واذا انت تعطيتها الحياة عن طريق المتصفح الجديد ادج Edge

     في ٥‏/١‏/٢٠٢٢ at 14:58, أبو إبراهيم الغامدي said:
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    </head>

    هل من الممكن معرفة الطريقة استاذ @أبو إبراهيم الغامدي @jjafferr ؟؟؟؟

     

     

    أهلا بكم..

    حتى أنا لا أعرف ما الذي يرمي إليه الاستاذ جعفر!

    أما عن الوسم المشار إليه: فهو يؤهل مستعرض ويب للعمل بالتقنيات الجديدة (HTML5) و (CSS3)، في هاتين التقنيتين  أشاء كثيرة منها (تشغيل ملفات الصوت والصورة) دون الحاجة إلى أدوات خارجية.

    معرفة المزيد أرجو مراجعة منظمة مقاييس W3 | ومدرسة W3

    • Thanks 1
  15. 53 دقائق مضت, jjafferr said:

    شكرا جزيلا لك اخي الاستاذ ابو ابراهيم على هذه المعلومات الجديدة لي انا شخصيا 🙂

    في الواقع فتحت علينا باب جديد في الاكسس لم نكن نعرف بوجوده ، واذا بك تشير اليه ، و توضحه بالكامل 🙂

     

    وفي الوقت الذي كانت جميع اعمالنا المستخدمة عن طريق الانترنت اكسبلورر IE كادت ان تموت ، واذا انت تعطيتها الحياة عن طريق المتصفح الجديد ادج Edge

    أهلا بك أستاذ جعفر..

    أشكرك على تشجيعك وأهتمامك..

    وأرجو أن أكون قد وفقت في شرح وتبسيط طريقة الاستخدام
     

    • Like 1
    • Thanks 1
  16. أهلا بكم..

    نأتي الآن على الجزء المهم في هذه المشاركة: الجافا سكربت..

    # سبق الذكر أن رمز الاستجابة السريع يتم إنتاجة بواسطة مكتبة قدمها أحد مطويري جافا سكربت، وقد قمت بتضمينها إلى جدول شفرات الويب WebXCode Table لأتمكن من استخدامها ضمن صفحة الويب، وذلك عن طريق الحقن الصوري! بمعنى أنك لو ضغط بزر الفارة الأيمن على الصفحة ثم نقرت View Source لن ترى هذه المكتبة، لكن في الحقيقة إنها موجودة! لكن تعمل في الخلفية!

    -- يلحق تضمين المكتبة، الأعلان عن متغير غرضي يحمل نسخة من المكتبة يُعرّف بمكان وضع الرمز والخصايص التي يحملها..

    var Xqrcode =new QRCode('qr-stamp',{text:'QR Code',colorDark:'DarkBlue',colorLight:'WhiteSmoke',width:120,height:120});

    وقد تم تضمين المكتبة والتصريح عن المتغير بالطريقة التالية

    WD.getElementById("qr-code").innerHTML = WebCode(3) _
       & ";var Xqrcode =new QRCode('qr-stamp'," _
       & "{text:'QR Code',colorDark:'DarkBlue',colorLight:'WhiteSmoke',width:120,height:120});"

     

    qr-stamp: هو معرف وسم HTML الذي سيوضع فيه الرمز، والبيانات التالية هي الخصائص، هذا المعامل إلزامي

    text: يحمل قيمة نصية تمثل بيانات الرمز؛ قد تكون بيانات نصية بسيطة، وقد تكون بيانات نصية مرمزة. ما يمرر على هذا المتغير؛ هو ماسيظهر على الرمز، سوف نقوم بإدراج الرمز عن طريق وظيفة أخرى..

    colorDark: يحمل قيمة اللون الغامق في الرمز؛ يراعى في هذا مقاييس HTML في تعريف الألوان.. 

    colorLight: يحمل قيمة اللون الفاتح في الرمز؛.....

    width: يحمل قيمة رقمية تمثل عرض الرمز

    height: يحمل قيمة رقمية بالبكسل تمثل طول الرمز

    !! يجب أن تكون قيم الطول والعرض متساوية. أكبر قيمة هي 256 بكسل

    !! جميع هذه الخصائص اختيارية إلا أنها تحمل قيم افتراضية..

    ؟؟ كيف استدعي المتغير وأمرر إلىه القيم، وأين أضعه

    المتغير Xqrcode الذي سبق وأن أعلنا عنه يمثل المكون الأبوي لتابعين هما 

    Xqrcode.makeCode(var) // له معامل نصي واحد يمثل البيانات التي ستظهر في الرمز
    
    Xqrcode.clear() // يقوم بمحو البيانات السابقة
    
    // يتم استدعائها بالطريقة التالية
    
    // من داخل النموذح
    WD.script.Xqrcode.makeCode(var)
    
    // من خارج النموذج
    WF.WD.script.Xqrcode.makeCode()
    
    // WF غرض يمثل النموذج
    // WD غرض يمثل صفحةويب

    يمكن أن تضعه في أي مكان من النموذج. بالنسبة لي وضعته في حدث السجل الحالي..

    !! لتكن على علم أن جافا سكربت حساس لحالة الأحرف..

     

    • Like 2
    • Thanks 1
  17. أهلا بكم..

    من أكثر الأشياء التي تجعل مطوري أكسس يصرفون النظر عن استخدام إداة متصفح الويب؛ تحسسه الشديد للشفرة في الصفحات المحلية..

    ولحل هذه الإشكالية هناك طريقتان فيما أعلم..

    -- الأولى: حفظ الصفحة في مجلد السيرفر المحلي: IIS  أوغيره من السيرفرات المحلية مثل: wamp..

    -- الثانية: نقوم بإنشاء صفحة فارغة بالطريقة التالية..

    Private Sub Form_Open(Cancel As Integer)
       WB.Navigate "about:blank"
    End Sub

    !! من المعلوم أن أداة متصفح الويب تعمل على منصة iefram.dll وهذه المنصة تدعم إلى الإصدر السابع فقط من متصفح Internet Explorer. هذه المنصة لا تدعم HTML5 و CSS3، لكن ميكروسوف قدمت حلا لهذه الإشكالية باضافة المعرف التالي إلى مكون (وسم) <head>..

    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    </head>

    # الخطوة التالية هي حشر (حقن Injection) وسوم HTML و وسوم CSS وشفرة JS إلى صفحة HTML الفارغة باستخدام دالة البيانات DLookup 

    -- الوظيفة التالية تبسط استخدام دالة Dlookup

    Public Function WebCode(ID As Long) As String
       WebCode = DLookup("[Code Content]", "WebCode", "id=" & ID)
    End Function

    -- السجل الأول في جدول WebXCode يحتوي على وسوم HTML المطلوية..

     
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    </head>
    <body>
        <div id="invoice-content" class="invoice-content">
            <div class="qr-result">
                <div id="qr-stamp" class="qr-stamp"></div>
                <div id="info" class="info"></div>
                <div id="menu" class="context-menu"></div>
            </div>
        </div>
        <style id="mycss"></style>
        <script id="qr-code"></script>
        <script id="myscript"></script>
    </body>
     

    وتطلب بهذه الطريقة: WebCode(1) وتوضع في حدث عند الفتح بهذه الطريقة

    Private Sub Form_Open(Cancel As Integer)
       WB.Navigate "about:" & WebCode(1)
    End Sub
     

    -- أما وسوم CSS وشفرة JS فيتم حقنها بعد إكتمال فتح الصفحة بهذه الطريقة

    Sub HTML()
       If WB.ReadyState = READYSTATE_UNINITIALIZED Then
          Exit Sub
       End If
       
       '--  html template
       Call InvoiceInfo
       
       '--  html library
       WD.getElementById("mycss").innerHTML = WebCode(2)
       WD.getElementById("qr-code").innerHTML = WebCode(3) _
       & ";var Xqrcode =new QRCode('qr-stamp'," _
       & "{text:'QR Code',colorDark:'DarkBlue',colorLight:'WhiteSmoke',width:120,height:120});"
       
    End Sub

    !! بهذه الطريقة نتجاوز تحذيرات المتصفح من وجود الشفرة البرمجة، كما أننا قمنا بتأهيل المتصفح للعمل بمواصفات متصفح Edge..

    # فيما يتعلق بجزئيات الشفرة سوف أتحدث عنها لاحقا.. 

     

    !! أجريت بعض التعدلات على المرفق لتحسين أداءه

     

     

     

    • Like 3
  18. أهلا بكم..

    :: نأتي الآن إلى التعريف بالشفرة المشغلة لمتصفح الويب وطريقة عملها.. 

    !! في أكسس الإصدر العاشر وما بعده أصبح إداة متصفح الويب أحد أدوات أكسس الأساسية مع بقاء الأداة ضمن أدوات Microsoft ActiveX، وهذه الأخيرة هي المستخدمة في المشروع، كما أن الأداة المضمنة مع أكسس تختلف برمجتها قليلا عن أداة ActiveX. أرجو التنبه لهذا..

    # مكتبات DLL: حتما إذا كنا نتعامل مع أدوات ActiveX سوف يكون هناك مكتبات DLL، ولذا عند إدراج الأداة في النموذج يقوم أكسس بالتأشير على المكتبات اللازمة للعمل، كما أن هناك مكتبات اختيارية تساعد في تحسين العمل، لكن ليست ضرورية. سوف أعرف بتلك المكتبات عند الحديث عن الشفرة التي تستختتذكردمها..

    الجدير بالذكر؛ أن تكون على علم أن أكسس يفقد الإتصال بهذه المكتبات عند قص ولص الأداة، أو عند نقل النموذج المتضمن لهذه الأداة.. كن على ذكر من ذلك!!

    #  مكتبات DLL: في الصورة التالية المكتبات التي المشار إليها سابقا؛ ذات اللون الأزرق ضرورية يتم التأشير عليها تلقائيا عن أضافة أداة متصفح الويب والتي أسفل منها اختيارية، بمعنى أننا نؤشر عليها باختيارنا من أجل تحسين أسلوب برمجة الشفرة، لكن إذا استخدمتها ضمن الشفرة فإنه يصبح من الضروري إعادة التأشير عليها..

    Capture.PNG.245febe1d3eba4863f625f4c59fdfdc4.PNG

     

     

     

     

     

     

     

     

     

     

     

    # يتضمن النموذج ثلاث خصائص غرضية للتحكم في طبقات أداة المتصفح..

    -- الخصيصة الأولى للتحكم في الطبقة الأولى من الأداة، والتي هي بمثابة متصفح الويب..

    Public Property Get WB() As WebBrowser
       Set WB = Me.WebBrowser0.Object
    End Property

    -- الخصيصة الثانية للتحكم في الطبقة الثانية من الأداة، والتي هي بمثابة صفحة الويب..

        Public Property Get WD() As HTMLDocument
           Set HD = Me.WebBrowser0.Document    
           Set WD = HD    
        End Property

    -- الخصيصة الثالثة للتحكم في الطبقة البينية بين متصفح الويب وصفحة الويب، وهي بمثابة النافذة الأم لصفحة الويب..

        Public Property Get PW() As HTMLWindow2
           Set PW = Me.WebBrowser0.Document.parentWindow    
        End Property

    !! لاحظ أن الإعلان (التصريح) عن هذه الخصائص أخذ الإعلان العام Public وذلك من أجل إظهارها عند استخدامها من خارج النموذج..

    • Like 2
  19. 25 دقائق مضت, ابوخليل said:

    اضافة جميلة وفريدة من نوعها الى مكتبة المنتدى

    المثال يعمل على اكمل وجه

    بارك الله فيك حبيبنا ابو ابراهيم  وجعله في ميزان حسناتك

     

    أهلا بك أستاذ أبو خليل..

    أشكرك على إطرائك، كما أشكرك أيضا على تطمينك لي بسلامة العمل.

  20. أهلا بكم..

    أعلم أن هذا الأسلوب جديد بعض الشيء لكن أعتقد أنه بالإمكان التأقلم معه! خاصة وأن الشفرة ليست بالمعقدة..

    شفرة الجافا سكربت ليست بالصعبة بل في ظني أسهل بكثير من الفيجوال بيسك لأنها تتعامل مع المتغيرات كأغراض (Objects)، والغرض يقوم بخدمة ذاته دون الحاجة إلى وظائف خارجية..

    كان القصد من هذه المقدمة الإطرائية هو إزالة الرهبة من استخدام أسلوب الدمج بين أكسس والويب..

     

    لنعد إلى المشروع ونتعرف على مكوناته وطريقة عمله..

    :: يحتوي الجدول (WebCode) على ثلاث سجلات؛ يحتوي كل منها على نص برمجي يقوم بتهيئة العمل على متصفح الويب..

    -- السجل الأول يحتوي على نص HTML. يقوم هذا النص بتهيئة الصفحة للعمل..

    ما يهمنا في هذا النص هو تبويب <head> الذي يحتوي التعليمات التي تجعل متصفح الويب يعمل كمتصفح Edge.

    -- السجل الثاني يحتوي على نص CSS يقوم هذا النص بتزيين الصفحة وترتيب مكوناتها..

    سوف أشرح في وقت لاحق الفرق بين Id, Class، وعن كيفية الوصول إلى عناصر الصفحة من أجل تزيينها.

    -- السجل الثالث يحتوي على شفرة JavaScript المعني بتكوين رمز QR..

    ما يهمنا من هذه الشفرة هو طريقة استخدامها فقط!..

     

    :: تحتوي قاعدة البيانات على وحدين نمطيتين..

    -- الأولى للتحويل من وإلى النظام العشري TLVModule

    -- الثانية للتحويل من وإلى نظام 64بت UTF8EncodeDecode

    كلتا الوحدتين مستعارة من الويب وليس لي فيها عمل..َ

     

    :: مصدر مكتبة الجافا سكربت: QRCode Library (JavaScript)

    :: مصدر الوحدات النمطية: TLV.QRCode.MSAccess.VBA

    • Like 3
  21. 11 ساعات مضت, الفلاحجى said:

    السلام عليكم جزاك الله خيرا اخى ابو ابراهيم

    لم استطع تجربه المرفق لظهور الاخطاء التاليه

    image.png.700e3ee1b3f211a7d0b9c3fc9682e9a8.png

    image.png.c472dffd5a444c3e7a514551654079c8.png

    تقبل تحياتى ومرورى

     

     

    لتتمكن من نقل هذه الأشياء إلى مشروعك بشكل سليم أنت بحاجة إلى فهم آلية عملها..

    سوف أقوم بشرح ذلك قريبا..

     

×
×
  • اضف...

Important Information