قيامة المؤسس عثمان

أعلان

test

??? ???????

Post Top Ad

Your Ad Spot

الاثنين، 11 نوفمبر 2019

تصميم النموذج الشجري لدليل الحسابات بالاكسيس






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





من خلال الضغط علي القائمه Create و اختيار منها Table Design
نستعرض حقوله و اهم خصائص هذه الحقول









Fied SizeDate TypeCaptionField Name
15Textكود الحسابAccID
255 Text اسم الحساب ArAccDes
15 Text كود الحساب الاب ParAcc
255 Text اسم الحساب الاب ArParDes
----Yes/NOهل هو حساب رئيسى IsPrimary
15 Text مستوى الحساب AccLevel
25 Text التوجية المحاسبى Accdir
15 Text طبيعة الرصيد Panat
15 Text كود المجموعة الفرعية كود المجموعة الفرعية








لاحظ ان حقل كود الحساب و الذي افترضنا له اسم AccID تم اعطاءه خاصيه متفتاح اساسي Primary Key





نقوم بحفظ الجدول و تعطيه اسم افتراضي accounts





الان نقوم باستخدام معالج النماذج في انشاء نموذج للجدول التكويد





الان نقوم باستخدام معالج النماذج في انشاء نموذج للجدول التكويد





من خلال الضغط علي القائمه Create و اختيار منها Form Wizard



















و بعد الانتهاء من بناء النموذج ندخل الي النموذج في وضع التصميم لاضافه النموذج الشجري









من خلال القائمه Design اضغط علي هذا الزر و اختر ActiveX Control





ومن خلال هذا المعالج ابحث عن Microsoft TreeView Control





سيقوم المعالج باضافه النموذج الشجري للنموذج





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





Private Sub Form_Load()

On Error Resume Next

Dim dbs As dao.Database, rst As dao.Recordset

Dim nodX As Node
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Accounts", dbOpenDynaset)
Set nodX = TreeView2.Nodes.Add(, , "A", "Accounts")
With rst
Do While Not .EOF
Set nodX = TreeView2.Nodes.Add("A" & CStr(Nz(!ParAcc)), tvwChild, "A" & CStr(!AccID), CStr(!AccID) & ":" & (!ArAccDes))
nodX.EnsureVisible
.MoveNext
Loop
End With
rst.Close
Set dbs = Nothing
On Error Resume Next
For Each nodX In TreeView2.Nodes
nodX.Expanded = False
nodX.Sorted = True
Next

End Sub




في هذا الكود قمنا باستدعاء المكتبه البرمجيه dao





هذه المكتبه و هي المكتبه الخاصه بالتحكم في قواعد البيانات حيث تستطيع هذه المكتبه البرمجيه انشاء قاعده بيانات و الدخول الي الصفوف و التحكم بها





قمنا نانشاء متغير من النوع Database و اضفنا له عنصر التحكم dao





Dim dbs As dao.Database 








 rst As dao.Recordse




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










Set rst = dbs.OpenRecordset("Accounts", dbOpenDynaset)
Set nodX = TreeView2.Nodes.Add(, , "A", "Accounts")




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





تم اعطاء راس النموذج الشجري اسم Accounts يمكنك تغير الاسم كيف تشاء





With rst
Do While Not .EOF
Set nodX = TreeView2.Nodes.Add("A" & CStr(Nz(!ParAcc)), tvwChild, "A" & CStr(!AccID), CStr(!AccID) & ":" & (!ArAccDes))
nodX.EnsureVisible
.MoveNext
Loop
End With
rst.Close




من خلال هذا الكود تبدا المكتبه البرمجيه dao في الدوران علي قاعده البيانات علي شكل حلقه تكراريه من النوع Do While و تحديد كل عنصر من عناصر هذه القائمه و تحديد مستوي هذا العنصر تبدا بالدوران بدايه من اول صف في قاعده البيانات





ليظهر في النموذج الشجري في المستوي المناسب مضاف اليه كود الحساب و الوصف الخاص بالحساب ( اسم الحاب ) ثم يدور الكود علي العنصر التالي بالامر MoveNext و هكذا و يتكرر هذا الامر باستخدام الامر Loop حتي تنتقل الي اخر صف و بعد الانتهاء يتم الخروج من هذه الحلقه التكراريه End With





لاستدعاء اسم الحساب من جدول الحسابات نستخدم الداله DLookup حيث تقوم هذه الداله بالبحث في جدول accounts في عمود ArAccDes الخاص باسم الحساب بشرط كود الحساب AccID=ParAcc





Private Sub ParAcc_AfterUpdate()

On Error Resume Next
ArParDes = DLookup("ArAccDes", "accounts", "AccID=ParAcc")
End Sub












Private Sub TreeView2_NodeClick(ByVal Node As Object)
On Error Resume Next
Dim mykey As String
With Node
mykey = Right(.Key, Len(.Key) - 1)
Finder (mykey)
End With
End Sub












Private Sub Finder(Skey)
On Error Resume Next
Dim rs As Object
Me.Filter = ""
Set rs = Me.Recordset.Clone
rs.FindFirst "[AccID] = '" & Trim(Skey) & "'"
Me.Bookmark = rs.Bookmark
End Sub




لتحميل ملف العمل مصمم بالاكسيس مفتوح الكود لسهوله التعديل





رابط التحميل











بعض المشاكل التي قد تواجهك





يجب مراعاه التكويد بشكل صحيح حيث ان التكويد بشكل غير صحيح سيؤدي الي الخلل البرمجي في النموذج الشجري فعلي سبيل المثال يتم ادراج حساب اساسي يندرج تحته حساب فرعي يندرج تحت الحساب الفرعي كود الحاساب فان الكود الاب لكود الحساب هو الحساب الفرعي و ليس الكود الاساسي بينما كود الحساب الاب للكود الفرعي هو كود الحساب الاساسي فاذا حدث خلل في التكويد عن هذا النظام سيحدث مشاكل برمجيه





اي يجب بناء دليل الحسابات بشكل صحيح كامل حتي نتمكن من عرض نظام شجره الحسابات





يمكنك ايضا مشاهده اعداد دليل الحسابات
















هناك تعليقان (2):

  1. جزاكم الله خيرا ممكن طريقة انشاء وبناء برنامج حسابات على الاكسيس خطوة خطوة

    ردحذف
  2. باذن الله في المواضيع القادمه تابعنا في دروس الاكسيس

    ردحذف

Post Top Ad

Your Ad Spot

???????