02-05-20, 05:43 AM
هذه هى الواجهة الرئيسية فى برنامجى:
عند كتابة ID والضغط على زر View يبحث البرنامج فى قاعدة البيانات التالية:
بواسطة هذا الكود:
ثم يفتح Form التالية:
وعندما يجد رقم ID مسجل فى قاعدة البيانات يتحول تلقائياً لليوم المسجل به
ويغير label backcolor للمكان الذى تم به الحجز للون البنفسجى
عن طريق هذا الكود:
حتى الآن كل شىء على ما يرام ولكن إذا لاحظتم بالأعلى فى صورة قاعدة البيانات
إذا كتبت ID رقم 5 مثلاً سيتحول لتاريخ 9 ابريل ويغير لون ال label الثالث
ولكن هناك حجز آخر بتاريخ 9 ابريل وذلك للمكان الأول ولكنه لا يغير لونه
أى أن reader يقرأ نتيجة واحدة فقط ولا أعرف الخطأ الذى لا يجعله يبحث فى الكود كله
البرنامج فى المرفقات
عند كتابة ID والضغط على زر View يبحث البرنامج فى قاعدة البيانات التالية:
بواسطة هذا الكود:
كود :
Imports System.Data.OleDb
Public Class Form1
Dim cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Reservation.accdb")
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
cnn.Open()
Dim sql As String = "SELECT * FROM Appointments WHERE PersonID=@id"
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.AddWithValue("@id", TextBox1.Text)
dr = cmd.ExecuteReader()
If dr.Read = False Then
User_ID.DateTimePicker1.Value = Date.Now
Else
User_ID.DateTimePicker1.Value = dr.Item(0).ToString
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
If (cnn.State = ConnectionState.Open) Then cnn.Close()
End Try
User_ID.Show()
End Sub
End Class
ثم يفتح Form التالية:
وعندما يجد رقم ID مسجل فى قاعدة البيانات يتحول تلقائياً لليوم المسجل به
ويغير label backcolor للمكان الذى تم به الحجز للون البنفسجى
عن طريق هذا الكود:
كود :
Imports System.Data.OleDb
Public Class User_ID
Dim cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Reservation.accdb")
Dim cmd As OleDbCommand
Dim da As OleDbDataAdapter
Dim cm As OleDbCommandBuilder
Dim dr As OleDbDataReader
Dim dt As DataTable
Private Sub User_ID_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DateTimePicker1.Format = DateTimePickerFormat.Custom
DateTimePicker1.CustomFormat = "dd-MMMM-yyyy"
Try
cnn.Open()
Dim sql As String = "SELECT * FROM Appointments WHERE AppDate=@date"
Dim cmd As New OleDbCommand(sql, cnn)
cmd.Parameters.AddWithValue("@date", DateTimePicker1.Value.ToShortDateString)
Using dr As OleDbDataReader = cmd.ExecuteReader()
If dr.HasRows Then
Do While dr.Read()
If dr.Item(2).ToString = "Yes" Then
Label1.BackColor = Color.Violet
Else
Label1.BackColor = SystemColors.Control
End If
If dr.Item(3).ToString = "Yes" Then
Label2.BackColor = Color.Violet
Else
Label2.BackColor = SystemColors.Control
End If
If dr.Item(4).ToString = "Yes" Then
Label3.BackColor = Color.Violet
Else
Label3.BackColor = SystemColors.Control
End If
If dr.Item(5).ToString = "Yes" Then
Label4.BackColor = Color.Violet
Else
Label4.BackColor = SystemColors.Control
End If
Loop
End If
dr.Close()
End Using
Catch ex As Exception
MsgBox(ex.Message)
Finally
If (cnn.State = ConnectionState.Open) Then cnn.Close()
End Try
End Sub
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
Try
cnn.Open()
Dim sql As String = "SELECT * FROM Appointments WHERE AppDate=@date"
Dim cmd As New OleDbCommand(sql, cnn)
cmd.Parameters.AddWithValue("@date", DateTimePicker1.Value.ToShortDateString)
Dim dr As OleDbDataReader = cmd.ExecuteReader()
If dr.HasRows Then
Do While dr.Read()
If dr.Item(2).ToString = "Yes" Then
Label1.BackColor = Color.Violet
Else
Label1.BackColor = SystemColors.Control
End If
If dr.Item(3).ToString = "Yes" Then
Label2.BackColor = Color.Violet
Else
Label2.BackColor = SystemColors.Control
End If
If dr.Item(4).ToString = "Yes" Then
Label3.BackColor = Color.Violet
Else
Label3.BackColor = SystemColors.Control
End If
If dr.Item(5).ToString = "Yes" Then
Label4.BackColor = Color.Violet
Else
Label4.BackColor = SystemColors.Control
End If
Loop
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
If (cnn.State = ConnectionState.Open) Then cnn.Close()
End Try
End Sub
End Class
حتى الآن كل شىء على ما يرام ولكن إذا لاحظتم بالأعلى فى صورة قاعدة البيانات
إذا كتبت ID رقم 5 مثلاً سيتحول لتاريخ 9 ابريل ويغير لون ال label الثالث
ولكن هناك حجز آخر بتاريخ 9 ابريل وذلك للمكان الأول ولكنه لا يغير لونه
أى أن reader يقرأ نتيجة واحدة فقط ولا أعرف الخطأ الذى لا يجعله يبحث فى الكود كله
البرنامج فى المرفقات