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

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

الخبراء
  • Posts

    1,727
  • تاريخ الانضمام

  • Days Won

    5

مشاركات المكتوبه بواسطه أبو عبدالله الحلوانى

  1. 7 دقائق مضت, أكسس وبس said:

    ان توضع المخازن فى رؤوس الفواتير افضل

    نعم علي حد علمي

    7 دقائق مضت, أكسس وبس said:

    بالنسبة لرصيد اول المدة يتم تسجيله على عموم الصنف لم احدد مخزن معين

    وهذا مربط الفرس لذا صدرت اسئلتي به! 

    أعتقد أن الأصح الترصيد علي مستوي المخازن يعني رصيد أول المدة من الصنف 1 في المخزن 1 = كذا  ورصيد أول المدة من الصنف 1 في المخزن 2 = كذا 

    أما في الحساب الختامي يتم تجميع الأرصدة حسب الصنف وليس المخازن

    وهذا سيسهل جرد كل مخزن علي حدي (وتنتهي مشكلتك أيضا) ان شاء الله 

    السؤال هنا هل سيتم ادخال الصنف أكثر من مرة بعدد المخازن بالطبع لا اذا انشأنا جدول مستقل لعملية الترصيد يعني عندنا 

    1- جدول الأصناف يحوي المعرف واسم الصنف وسعره و....

    2- جدول الأرصدة ويحوي كود الصنف كود المخزن رصيد أول المدة و الفترة المحاسبية (الفترة المحاسبية المعتمدة في عمليات الجرد مثلا سنة كذا أو الربع الأول من سنة كذا ان كان الجرد ربع سنوي) وبناءا علي معلومة الفترة المحاسبية يمكننا تحويل رصيد أول المدة الي آخر المدة في نهاية الفترة والعكس صحيح

    هذا من وجهة نظري المحاسبية  أما البرمجية فان كان هذا غير صحيح برمجيا فليفدنا اساتذتنا بالجواب الصحيح :biggrin:

    هذا والله أعلم

    تمنياتي بالتوفيق

     

    • Like 1
  2. منذ ساعه, أبو عبدالله الحلوانى said:

    وهذا هو الباترن الذي أردت "[d \W\]"

    يبدو ان سعادتي جعلتني اتسرع بالحكم علي الأمور

    هذا الباترن منع كل الادخال بما فيه الأحرف العربية والانكليزية والأرقام والرموز :biggrin: :blink:

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

     

  3. وهذا هو الباترن الذي أردت "[d \W\]"

    هذا يمنع وجود الأرقام أو الرموز أيا كانت داخل الاسم.

    وهذا رابط آخر يشمل العديد من الـ pattrens 

    https://www.vbsedit.com/html/ab0766e1-7037-45ed-aa23-706f58358c0e.asp

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

    ولكن بفتحكم لهذا الموضوع اختصرت علي الطريق كثيرا

    وجزاكم الله خيرا

     

  4. وجدت هذا الرابط لشرح الرموز المستخدمة في كتابة الـ Pattrens 

    https://www.tutorialspoint.com/vbscript/vbscript_reg_expressions.htm

    شاكر لحضرتك هذه المعلومات القيمة 

    طريقة التحقق هذه ستختصر أكواد كثيرة كنا نستخدمها لفرز وتنقية النص 

    جزاكم الله خيرا

  5. 7 ساعات مضت, SEMO.Pa3x said:

    لن اتطرق لكيفية كتابة الـ patterns نضرة لصعوبته على البعض لانه يحتاج اساسيات ومقدمات.

     

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

    مثلا لو أردت أن يتحقق الفانكشن من وجود الأرقام أو العلامة العشرية أو علامة التنصيص المفردة والمزدوجة والفاصلة والفاصلة المنقوطة

    كيف سيكون البترن هنا

    وجزاكم الله خيرا

  6. 26 دقائق مضت, أكسس وبس said:

    عند تسجيل الاصناف فى جدول Names  يتم تسجيل رصيد اول المدة

    1- عند تسجيلك لرصيد أول المدة هل تقوم بتسجيل الرصيد الموجود من الصنف في كل مخزن علي حدي أم الرصيد الموجود بكلا المخزنين

    2- ماذا تعني بتكرار الرصيد هل تقصد أنه يجمع الرصيد بكلا المخزنين أي ان بمخزن 1 رصيد أول المدة 25 وبالمخزن 2 رصيد أول المدة 25 فيظهر الرصيد 50 مثلا

    اعذرني لم اطلع علي مرفقك لضيق الوقت

  7. السلام عليكم ورحمة الله وبركاته 

    من خلال استخدام الكائن comandbars  والذي من خلاله يمكن أن نصنع قوائم منبسقة كالتي تظهر عند الضغط علي زر الفأرة الأيمن نستدعيها من أي موضع نريد 

    وقد تم نقاش الموضوع سابقا هنا

    السؤال الآن

    هل يمكن التحكم بخصاص هذا الكائن أو انشاء خصائص جديده له كما نريد

    1- كتغيير اتجاه هذه القوائم من اليسار الي اليمين. 

    2- او اظهارها بالعرض مثل الصورة التالية بدلا من ظهورها بالشكل المعتاد.

    وشاكر لكم حسن تعاونكم - وجزاكم الله خيرا

    123456.png

  8. السلام عليكم ورحمة الله وبركاته

    حقيقة أشعر اليوم بالاحباط فسأحاول أن أستعير الوجه الباسم حتي لا أزعجكم :smile: بكآبتي اليوم 

    بعد أن أنهيت العمل علي المشروع الذي ارهقني وأقلق منامي، وبدأت بعمل التجربة النهائية قبل التسليم فوجئت بهذا الخطأ الغريب :blink:

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

    حتي لا أطيل عند تجربة فتح البرنامج وتغير مسار قاعدة البيانات وتنفيذ الكود يتم الارتباط بالجداول وتظهر لوحة التبديل (navigation pane)  ولا أدري لماذا تظهر لوحة التبديل بعد اعادة الارتباط بالجداول قمت بعدت محاولات وضعت كود اخفاء تلك اللوحة بعد استيراد كل جدول ووضعت الكود عند فتح النافذة التالية بعد الارتباط ووضعته مرة أخري عند تحميل نفس النافذة ولكن دون جدوي :wallbash: لا أدري أين الخلل 

    ملاحظة: المشكلة ظهرت بعد عمل الملف التنفيذي للبرنامج وتسطيبه ولم تكن تظهر عند كتابة الكود لأول مرة وتجربته:blink:

    هذا هو كود الارتباط  

    Public Sub CreateTableLink(strBEPath, strSourceTableName, Optional strPassword = "")
    
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim strConnect As String
    Dim strLinkName As String
    On Error GoTo errLink
    strLinkName = strSourceTableName
    
    strConnect = "MS Access;PWD=" & strPassword & _
        ";DATABASE=" & strBEPath
    Debug.Print strConnect & " " & strLinkName
    Set db = CurrentDb
    Set tdf = db.CreateTableDef
    tdf.Connect = strConnect
    tdf.SourceTableName = strSourceTableName
    tdf.Name = strLinkName
    'tdf.Attributes = dbHiddenObject
    Recreate:
    db.TableDefs.Append tdf
    db.TableDefs.Refresh
    Set tdf = Nothing
    Set db = Nothing
    DisplayHideNavPane False
    
    Exit Sub
    errLink:
        If Err.Number = 3012 Then
        'this conniction is created before this time
            db.TableDefs.Delete strSourceTableName
            DisplayHideNavPane False
            GoTo Recreate
        Else
            MsgBox Err.Number & vbCrLf & Err.Description
        End If
    End Sub

    وهذا كود لاخفاء الـ (navigation pane) 

    Sub DisplayHideNavPane(Optional Visible As Boolean = True)
        DoCmd.SelectObject acForm, , True
        If Visible = False Then DoCmd.RunCommand acCmdWindowHide
    End Sub
    
    'and call it like this:
    DisplayHideNavPane False

    وهذا فيديو للمشكلة التي تحدث 

     

     

  9. ايه اللغبطة دي انت بتحط افضل اجابة علي السؤال ولا الجواب :biggrin:

    هذا سحر الأكسس يمكنك فعل اشياء بدون أكواد ولا شىء :rol:

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

    ملاحظة: هذا أول فديو تعليمي أنشره (فستري أنه غير احترافي ولكنه يفي بالغرض ان شاء الله)

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

    تمنياتي بالتوفيق

     

     

  10. اخبرني احد الأخوة أن المرفق لا يعمل ويبدو وكانه فيرس سأقوم بتحميل المرفق بصيغة accdb

    أشكر أخوتي أ/ @kanory  و أ/ @abouelhassan  علي مروهم الكريم وكلماتهم الطيبات

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

    هذا

    MenuAndShortCutMenu.accdb

    • Like 2
    • Thanks 2
  11. أولا-  المرفق لا يوجد به كود ولا بيانات لا يوجد سوي نموذج واحد ومجموعة تقرير

    ثانيا- فكرتي المقترحة ما دام لا يوجد لديك مرفق:

    أنت بحاجة لوجود عمودين للقراءات داخل الجدول الخاص باستهلاكات العملاء احدهما يسمي القراءة السابقة والأخر القراءة الحالية

    وعمود ثالث يسمي القراءة الجديدة. هذا العمود يتم ملأه وفقا لآلية العمل لديكم وفي نهاية الدورة المحاسبية يتم تشغيل استعلام اجرائي يقوم بما يلي:

    1- التأكد من كون القراءة الجديدة موجودة وغير خالية وفي حالة خلوها يتم اعتبار القراءة الحالية هي القراءة الجديدة

    2- التأكد من بعض الأمور وفقا لطبيعة العمل لديكم مثل وجود عداد لا يعمل وطريقة محاسبته في مثل هذه الحالة أو لا يمكن قراءته لوجود مانع ما وكيف سيتم المحاسبة في هذه الحالة.

    3- يقوم بتحويل القراءة الحالية الي عمود القراءة السابقة 

    4- يقوم بتحويل القراءة الجديدة الي عمود القراءة الحالية تمهيدا لبدأ عملية احتساب قيم الفواتير

    هذا والله اعلم

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

     

    • Like 1
  12. حقيقة لا أذكر كيف تم حل المشكلة لدي عند وقوعي بهذه المشكلة من قبل ولعله بعد تحديث نسخة الوندوز الي ويندوز 10 أو تحديث نسخة الأوفس الي أوفيس 16 ربما ولكن لا أذكر تحديدا ما حدث بالضبط 

    ولكن لعل هذه المشكلة تنذرك بكبر حجم قاعدة البيانات لديك وأنها لم تعد تستطيع الصمود لاكمال المسيرة الي النهاية :biggrin:

    أو هنالك مشكلة أكبر قد تحدث بعد 

    لذي جئت ناصحا بـ:

    1- أخذ نسخة احتياطية بشكل يومي الي حين الوصول الي حل ان شاء الله

    2- حاول تكبير قاعدة البيانات (أقصد التعامل مع الـ SQL server) حقيقة ستجد به متسع من الأمان وسعة التخزين وبعدا عن مشكلات الأكسس كهذه التي بين يديك.

    أعرف أن الاقتراح الثاني ليس سهلا للغاية ولكنه لا يصعب علي أبي جودي

    تمنياتي بالتوفيق وحل المشكلة بأجل قريب ان شاء الله.

    • Like 1
    • Thanks 1
  13. 12 ساعات مضت, nacer_alger said:

    اكواد التفقيط موجودة المشكل في الظهور يعني يجب ظبط الجهاز عربي او فرنسي هده هي المشكلة

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

    جزا الله كاتبها الاستاذ نور الدين ولا زلت أحتفظ باسمه عليها عند استخدامها بأي تطبيق خاص بي جرب هذا المرفق ووافنا بالنتائج

    NumberToArabic.accdb

    • Like 2
  14. هذا هو المرفق أرجو أن ينفع الله به أحدا من المسلمين

    المرفق يحتاج اضافة مرجع كما بالصورة

    المراجع والمصادر:

    1- من شركة مايكروسوفت

    2- لمزيد من الشرح والتوضيح من معلمنا أ/ جعفر

     

    MenuAndShortCutMenu.rar InsertReference.rar

    • Like 4
  15. يبدو أني تعجلت في كتابة الموضوع 

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

    Application.CurrentObjectName
    وهذا أيضا يجلب اسم التقرير النشط
    Screen.ActiveReport.Name

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

    وجزاكم الله خيرا

    • Like 2
  16. اضافة الي ما تفضل به استاذنا جعفر

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

    ملاحظة هامة:  المرفق للأستاذ أبو جودي جزاه الله خيرا

    ويمكنك استخدام نفس الفكرة بالنسبة للغة الفرنسية أو أي لغة أخري غير الانكليزية

     

    Converter Arabic and Unicode.mdb

    • Like 2
  17. السلام عليكم ورحمة الله وبركاته

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

    وهذا الكود بالكامل للقائمة المختصرة

     

    Public Sub CreateShurtRepMenu()
        Dim cmbRightClick As Office.CommandBar
        Dim cmbControl As Office.CommandBarControl
    On Error Resume Next
           ' Create the shortcut menu.
        Set cmbRightClick = Application.CommandBars.Add("MyRepRightClkMenu", msoBarPopup, False, True)
    
        With cmbRightClick
            
            ' Add the fast Print command.
    '        Set cmbControl = .Controls.Add(msoControlButton, 2521, , , True)
    '        cmbControl.Caption = ChrW(1591) & ChrW(1576) & ChrW(1575) & ChrW(1593) & ChrW(1577) & ChrW(32) & ChrW(1587) & ChrW(1585) & ChrW(1610) & ChrW(1593) & ChrW(1577)
    '
            ' Add the Print command.
            Set cmbControl = .Controls.Add(msoControlButton, 15948, , , True)
            cmbControl.Caption = ChrW(1578) & ChrW(1581) & ChrW(1583) & ChrW(1610) & ChrW(1583) & ChrW(32) & ChrW(1589) & ChrW(1601) & ChrW(1581) & ChrW(1575) & ChrW(1578) & ChrW(32) & ChrW(1575) & ChrW(1604) & ChrW(1591) & ChrW(1576) & ChrW(1575) & ChrW(1593) & ChrW(1577)
            
           
            ' Add the Excel command.
            '(msoControlButton, 11723, , , True)
            Set cmbControl = .Controls.Add
            'add line for export group
            cmbControl.BeginGroup = True
            With cmbControl
            .Caption = "Excel" & " " & ChrW(1578) & ChrW(1589) & ChrW(1583) & ChrW(1610) & ChrW(1585) & ChrW(32) & ChrW(1573) & ChrW(1604) & ChrW(1610)
            .FaceId = 11723
            .OnAction = "=ExportExcelSb(me.name)"
            End With
            
            ' Add the PDF or XPS command.
            Set cmbControl = .Controls.Add(msoControlButton, 12499, , , True)
            cmbControl.Caption = "PDF/XPS" & " " & ChrW(1578) & ChrW(1589) & ChrW(1583) & ChrW(1610) & ChrW(1585) & ChrW(32) & ChrW(1573) & ChrW(1604) & ChrW(1610)
            
            ' Add the Zoom command.
            Set cmbControl = .Controls.Add(4, 1733, , , True)
            cmbControl.BeginGroup = True
            cmbControl.Caption = "Zoom:"
            Cmdcontrol.FaceId = 202
            ' Add the Close command.
            Set cmbControl = .Controls.Add(msoControlButton, 923, , , True)
            ' Start a new group.
            cmbControl.BeginGroup = True
            cmbControl.Caption = ChrW(1573) & ChrW(1594) & ChrW(1604) & ChrW(1575) & ChrW(1602)
        End With
        
        Set cmbControl = Nothing
        Set cmbRightClick = Nothing
    End Sub

    وهذا روتين التصدير الي الاكسل

    Public Sub ExportExcelSb(ByVal repname As String)
    Dim savPas As String
    savPas = calFilDilog(2, "Expor To Excel")
    DoCmd.OutputTo acOutputReport, repname, "Excel97-Excel2003Workbook(*.xls)", savPas, True, "", , acExportQualityPrint
    End Sub

    السؤال الآن كيف أمرر اسم التقرير الحالي هنا في هذا الكود الي الروتين الخاص بالتصدير.

    .OnAction = "=ExportExcelSb(me.name)"

    ملاحظة: أعلم أن هناك أمر مستقل داخل الـ commandbars للتصدير بدون الحاجة الي اجراء خاص ولكن هذا الأمر يظهر الفورم الخاص بأكسس لعملية تصدير التقرير ولا أريد اظهار هذه الشاشة.

    وجزاكم الله خيرا

     

    • Like 2
×
×
  • اضف...

Important Information