27-07-18, 04:53 PM
الصفحات : 1 2
27-07-18, 08:25 PM
السورس + البرنامج مرفق
يمكنك الاطلاع على الاكواد داخل السورس
وقم باستخدام الاستعلام بهذه الطريقة
ثانياً والاهم القى نظرة لشكل الجداول بقاعدة البيانات
حيث الاعندة فى كلاهما يجب ان تكون متشابه
من حيث المستدعى والمستخدم فى عرض البيانات
فيمكنك تذيد اى منهما كما تشاء لكن فى حالة الاستعلام وعرض البيانات لـ 3
وهما ( Name - Dose - Route ) فيجب ان يكون كلااهما متواجد فى كل جدول
مع تعبئة اول صف بالبيانات الرئيسية ولا يلزم تعبئة الباقي
تحياتى لك
وتمنياتى لك التوفيق
27-07-18, 11:51 PM
أشكرك على مجهودك ولكن مازال هناك مشكلتين
لقت قمت بتعديل قاعدة البيانات لك حتى تفهم قصدى
أولاً كما أوضحت لك عندما أختار النوع من combobox الأول المسمى MedType
يظهر items فقط فى ال combobox المسمى MedName والبقية فارغون كما هم
وهذا قمت بتعديله كما سترى فى البرنامج المرفق
الآن أريد عندما أختار الدواء Catafast مثلاً فى MedName
يظهر لى فى MedDose ال items بالترتيب 4-5-6
وهذا لا يحدث وإنما يظهر 1-2-3 دائماً مهما كان نوع الدواء المختار
فالكود يستحضر الصف الأول من العمود دائماً ولا غيره
المشكل الآخر أننى عندما أختار الدواء السابق وفرضاً سأختار الجرعة 5
أريد أن تظهر طريقة تعاطى هذه الجرعة فقط (وهى فى هذا المثال E)
فهذه كما أخبرتك فائدة البرنامج هى تحديد الجرعة وطريقة تعاطيها أوتوماتيكياً وليست ضمن اختيارات
وأرجو أن تفيدنى ما إذا كان إلغاء عمود ID داخل قاعدة البيانات ممكن أم لا
ومعه بالطبع سيتم إلغاء ال primary key فهل سيؤثر هذا على البرنامج أم لا؟؟
وأشكرك كثيراً وأعتذر على إزعاجك
لقت قمت بتعديل قاعدة البيانات لك حتى تفهم قصدى
أولاً كما أوضحت لك عندما أختار النوع من combobox الأول المسمى MedType
يظهر items فقط فى ال combobox المسمى MedName والبقية فارغون كما هم
وهذا قمت بتعديله كما سترى فى البرنامج المرفق
الآن أريد عندما أختار الدواء Catafast مثلاً فى MedName
يظهر لى فى MedDose ال items بالترتيب 4-5-6
وهذا لا يحدث وإنما يظهر 1-2-3 دائماً مهما كان نوع الدواء المختار
فالكود يستحضر الصف الأول من العمود دائماً ولا غيره
المشكل الآخر أننى عندما أختار الدواء السابق وفرضاً سأختار الجرعة 5
أريد أن تظهر طريقة تعاطى هذه الجرعة فقط (وهى فى هذا المثال E)
فهذه كما أخبرتك فائدة البرنامج هى تحديد الجرعة وطريقة تعاطيها أوتوماتيكياً وليست ضمن اختيارات
وأرجو أن تفيدنى ما إذا كان إلغاء عمود ID داخل قاعدة البيانات ممكن أم لا
ومعه بالطبع سيتم إلغاء ال primary key فهل سيؤثر هذا على البرنامج أم لا؟؟
وأشكرك كثيراً وأعتذر على إزعاجك
28-07-18, 03:44 AM
بخصوص قيام عرض نتائج الـ لكل علاج طبقاً للصورة الاخيرة
اليك السورس + البرنامج مع التعديل واضافة الاكواد اللازمة
ستلاحظ الفرق بين القديم والجديد حتى توضح لك الصورة كاملاً
بخصوص خذف عمود الـ ID
لا مشكلة اذا تم حذف لان حتى هذه اللاحظة وجوده مثل عدمه
لكن عند خذف هذا المود من كلا الجدولين ستحتاج الى تعديل بسيط فى الاكواد
والتعديل سيكون على كلا من
كود :
Dim doses As String = dt2(0)(2)
و
Dim routes As String = dt2(0)(3)عند حذف عمود الـ ID
ستحتاج ان تجعلهم بهذا الشكلكود :
Dim doses As String = dt2(0)(1)
و
Dim routes As String = dt2(0)(2)مع العلم وجود العمود للترقيم هو لا يكون عائق لك
وقد تستفاد منه فيما بعد خصوصاً اذا كان يوجد بعض الادوية تتشابه
فسيكون هو العامل الرئيسيى للتعديل والحذف اذا قمت بعمل ذلك فى البرنامج
اتمنى ان تكون الصورة كاملة لديك والامور بسيطة ولا توجد بها اى تعقيد
تحياتى لك
وتمنياتى لك التوفيق
28-07-18, 04:32 AM
اقتربنا كثيراً وأشكرك على تعبك ومجهودك الكبير
تم حل المشكلة الأولى وهى ظهور ال dose بشكل صحيح
وأيضاً ظهور ال route المقابل لها بشكل صحيح
ولكن كما سبق وقلت لك يظهر جميع ال route
وأنا أريد أن يظهر النتيجة المقابله فقط لما تم اختياره من dose
المشكل الآن فى هذه الجزئية فقط ويكون الأمر منتهى
كما تلاحظ أخى فى جملة
أن المقارنة مع MedName.SelectedItem وهذا ما يسبب المشكلة
أنا أريده مع MedDose.SelectedItem التى تم اختيارها بعد split
وقد أرفقت لك الكود بعد تعديله قليلاً
ولا تتعب نفسك فى جزء Antibiotics فأنا سأكتبه بعد حل المشكلة فلا تضيع وقتك معه
وشكراً لك مجدداً
تم حل المشكلة الأولى وهى ظهور ال dose بشكل صحيح
وأيضاً ظهور ال route المقابل لها بشكل صحيح
ولكن كما سبق وقلت لك يظهر جميع ال route
وأنا أريد أن يظهر النتيجة المقابله فقط لما تم اختياره من dose
المشكل الآن فى هذه الجزئية فقط ويكون الأمر منتهى
كود :
Private Sub MedDose_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MedDose.SelectedIndexChanged
If MedType.SelectedItem = ("Analgesics") Then
Dim dt2 As New DataTable
dt2.Clear()
Dim sql2 As String = "SELECT * FROM Analgesics WHERE Analgesics = '" & MedName.SelectedItem & "' ORDER BY ID ASC"
da = New OleDbDataAdapter(sql2, cnn)
cm = New OleDbCommandBuilder(da)
da.Fill(dt2)
Dim routes As String = dt2(0)(3)
Dim route As String() = routes.Split("-")
For ii As Integer = 0 To route.Count - 1
MedRoute.Items.Add(route(ii))
Next
End If
End Subكما تلاحظ أخى فى جملة
كود :
Dim sql2 As String = "SELECT * FROM Analgesics WHERE Analgesics = '" & MedName.SelectedItem & "' ORDER BY ID ASC"أن المقارنة مع MedName.SelectedItem وهذا ما يسبب المشكلة
أنا أريده مع MedDose.SelectedItem التى تم اختيارها بعد split
وقد أرفقت لك الكود بعد تعديله قليلاً
ولا تتعب نفسك فى جزء Antibiotics فأنا سأكتبه بعد حل المشكلة فلا تضيع وقتك معه
وشكراً لك مجدداً
28-07-18, 04:58 AM
قم بتعحميل المرفق بعد اتمام التعديل
حيث انه فى الـ Route يقوم بعرض ناتج واحد بدلاً من الـ 3
ويتم عرض واحد طبقاً للخيار المختار فى الـ Dose
مرفق بالمرفقات السورس + برنامج للمعينة
تحياتى لك
وتمنياتى لك التوفيق
28-07-18, 05:22 AM
سلمت يداك أخى
الآن كل شىء يعمل كما أردته
ولكن عند حذف عمود ID كما سبق وأخبرتك أظهر رسالة الخطأ هذه
حتى بعد تعديل النصين الذين اقترحتهما
ولذا أعدت الكود كما كان وأرفقته لك لتعاينها
ومعه قاعدة البيانات بعد الحذف
وأشكرك كثيراً على مجهودك
الآن كل شىء يعمل كما أردته
ولكن عند حذف عمود ID كما سبق وأخبرتك أظهر رسالة الخطأ هذه
حتى بعد تعديل النصين الذين اقترحتهما
ولذا أعدت الكود كما كان وأرفقته لك لتعاينها
ومعه قاعدة البيانات بعد الحذف
وأشكرك كثيراً على مجهودك
28-07-18, 05:30 AM
مرفق السورس + برنامج للاختبار التعديل
بعد اتمام حذف عمود ID
تحياتى لك
وتمنياتى لك التوفيق
28-07-18, 06:25 PM
بارك الله فيك أخى الكريم
وأشكرك كثيراً على هذا المجهود والصبر
وأشكرك كثيراً على هذا المجهود والصبر
الصفحات : 1 2