السلام عليكم و رحمة الله و بركاته
فضلا لا أمرا هل من الممكن شرح لكيفية ربط datalist مع حقل في جدول باستخدام ADO ؟
السلام عليكم و رحمة الله و بركاته
فضلا لا أمرا هل من الممكن شرح لكيفية ربط datalist مع حقل في جدول باستخدام ADO ؟
الـ DataList أو الـ ComboList ، يحتويان علي مجموعتين من الخصائص :
المجموعة الأولي :
هي المجموعة التي تستخدم في تحديد جدول وحقل المصدر الذي سيتم التخزين فية ، وهي :
1- خاصية DataSource الذي يحتوي علي الـ Recordset إذا كنت تتعامل مع آداة Adodc أو ADODB . أما في حالة التعامل مع DataEnvironment فهنا يجب تحديد إسم ملف الـ DED .
2- خاصية DataMember ، وهي الخاصية المسئولة عن تحديد إسم الأمر Command المصمم داخل ملف DED ، وهذه الخاصية لا تستخدم سوي مع DataEnvironment .
3- خاصية DataField ، وفي هذه الخاصية يتم تخزين إسم الحقل الذي سيتم التخزين والتعديل علية . وتمثل الحقل المخزن بإحدي الجداول التي تمثل FK من جدول آخر .
المجموعة الثانية :
وهي المسؤولة عن مصدر تعبئة الكومبو بالبيانات Lists و بيانات المفتاح الرئيسي ListItem :
1- RowSource ، مثل DataSource .
2- RowMember ، مثل DataMember .
3- ListField ، وهو الحقل الذي يقوم بعرض العناوين للمستخدم مثل ( الحسابات - شئون العاملين - المخازن - العلاقات العامة - .... الي آخرة ) .
4- BoundColumn ، هذه الخاصية بمثابة ItemData الموجودة بآداة ComboBox أو ListBox ، فيتم تخزين بيانات الـ PK بداخلها كقائمة يتم تخزين القيمة المختارة في حقل الـ FK .
بالتوفيق
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
جزاك الله خيرا على سرعة الرد أخي الحبيب
أعلم أني سأزيد عليك الحمل
و لكن هل من الممكن أن توضح لي بالأكواد كيف يتم ذلك مع استخدام ADO
أنا فمت بالتالي
في موديل
Global Cn As ADODB.Connection Public DB As New ADODB.Connection Public rss As New ADODB.Recordset Declare Function LoadKeyboardLayout Lib "User32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long Private Sub main() Set Cn = New ADODB.Connection Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=aa; Data Source=" & App.Path & "\Data.so" frmlogin.Show End Sub
و في الفورم لود
Dim rs As New ADODB.Recordset If rs.State = 1 Then rs.Close rs.Open users, Cn, adOpenDynamic, adLockOptimistic DataList1.DataMember = Cn DataList1.DataSource = rs DataList1.ListField = "Name"
و لكن يظهر لي خطأ
اقتباسcompile error :Method or Data Member Not found
و يقوم بتظليل
اقتباس.DataSource =
أرجو المساعدة
أولاً ، لا تقوم بتحديد DataMember في حالة التعامل مع مكتبة ADODB ، ولكن هذه الخاصية تستخدم مع تطبيقات DED كما ذكرت لك من قبل .
ثانياً ، لكي يتم تحميل Recordset علي DataSource يجب إستخدام الكلمة المحجوزة Set لأنك بإختصار تقوم بتحميل كائن علي كائن آخر
Set DataList1.DataSource = rs
للإختصار ، أنظر الي المثال المرفق
بالتوفيق
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
جزاك الله خيرا اخي الحبيب و بارك الله فيك
هذا الموضوع مغلق.