10-03-20, 04:24 PM
أصمم برنامج لتسجيل الأدوية الطبية بهذا الشكل
حيث Type هو نوع الدواء و Name هو إسم الدواء و Dose هى جرعته وRoute هو طريقة تعاطيه
ووضعت له قاعدة بيانات بهذ الشكل
فعند اختيار النوع وهو Antibiotics فى ال Combobox المسمى Type
تظهر قائمة بأسمائها فى ال Combobox المسمى Name وعند اختيار أحد الانواع وليكن Augmentin منها
تظهر الجرعات المتاحة لهذا الدواء والمسجلة بقاعدة البيانات ويفصل بينها (-) كما بالصورة:
وعند اختيار أحد الجرعات من Combobox المسمى Dose ولتكن 20 تظهر طريقة تعاطيه المقابله له فى قاعدة البيانات
فى نفس موقع فواصل (-) كما بالصورة:
المشكلة التى أواجهها هى أنه قد يوجد لجرعة واحدة طريقتين للتعاطى لذا أود أن أضيف علامة فاصلة أخرى كما بالصورة:
بحيث عند اختيار الجرعة من Combobox المسمى Dose ولتكن 20 تظهر طريقتى التعاطى كل واحدة فى خانة
كما بالصورة:
وهذا هو الكود الخاص بهذه الوظيفة وعذراً للإطالة
حيث Type هو نوع الدواء و Name هو إسم الدواء و Dose هى جرعته وRoute هو طريقة تعاطيه
ووضعت له قاعدة بيانات بهذ الشكل
فعند اختيار النوع وهو Antibiotics فى ال Combobox المسمى Type
تظهر قائمة بأسمائها فى ال Combobox المسمى Name وعند اختيار أحد الانواع وليكن Augmentin منها
تظهر الجرعات المتاحة لهذا الدواء والمسجلة بقاعدة البيانات ويفصل بينها (-) كما بالصورة:
وعند اختيار أحد الجرعات من Combobox المسمى Dose ولتكن 20 تظهر طريقة تعاطيه المقابله له فى قاعدة البيانات
فى نفس موقع فواصل (-) كما بالصورة:
المشكلة التى أواجهها هى أنه قد يوجد لجرعة واحدة طريقتين للتعاطى لذا أود أن أضيف علامة فاصلة أخرى كما بالصورة:
بحيث عند اختيار الجرعة من Combobox المسمى Dose ولتكن 20 تظهر طريقتى التعاطى كل واحدة فى خانة
كما بالصورة:
وهذا هو الكود الخاص بهذه الوظيفة وعذراً للإطالة
كود :
Dim cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Medication.accdb")
Dim da As OleDbDataAdapter
Dim cm As OleDbCommandBuilder
Dim cmd As OleDbCommand
Dim itemRoute As String()
Private Sub MedType1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MedType1.SelectedIndexChanged
MedName1.Items.Clear()
MedDose1.Items.Clear()
MedRoute1.Items.Clear()
If MedType1.SelectedItem = ("Antibiotics") Then
Dim dt1 As New DataTable
dt1.Clear()
Dim sql As String = "SELECT * FROM Antibiotics"
da = New OleDbDataAdapter(sql, cnn)
cm = New OleDbCommandBuilder(da)
da.Fill(dt1)
For ii As Integer = 0 To dt1.Rows.Count - 1
MedName1.Items.Add(dt1(ii)(0))
Next
End If
End Sub
Private Sub MedName1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MedName1.SelectedIndexChanged
MedDose1.Items.Clear()
MedRoute1.Items.Clear()
If MedType1.SelectedItem = ("Antibiotics") Then
Dim dt2 As New DataTable
dt2.Clear()
Dim sql2 As String = "SELECT * FROM Antibiotics WHERE Antibiotics = '" & MedName1.SelectedItem & "'"
da = New OleDbDataAdapter(sql2, cnn)
cm = New OleDbCommandBuilder(da)
da.Fill(dt2)
Dim doses As String = dt2(0)(1)
Dim dose As String() = doses.Split("-")
For ii As Integer = 0 To dose.Count - 1
MedDose1.Items.Add(dose(ii))
Next
Dim routes As String = dt2(0)(2)
Dim route As String() = routes.Split("-")
itemRoute = route
End If
End Sub