15-01-17, 11:48 PM
(14-01-17, 05:41 PM)ابراهيم النعيمي كتب : السلام عليكم
تابع الرابط التالي
http://vb4arb.com/vb/thread-17997.html
المشاركة اعلاه لتوضيح كيفية عمل شاشة تسجيل اما لضبط عملية تسجيل الدخول و الخروج و منع المستخدمين المتواجدين فعلاً من تسجيل الدخول مرة اخرى فهي كما ياتي:
تحتاج جدول باسم (Users_Access_TB) يتكون من لحقل التالية:
1. (ID) (معرف)
2. (User_ID) (معرف المستخدم)
3. (User_Status) (حالة المستخدم)
4. (Login_Date) (وقت تسجيل الدخول)
5. (Logout_Date) (وقت تسجيل الخروج)
البروسيجر التالي يقوم بضبط عملية توثيق دخول و خروج المستخدمين في الجدول اعلاه و كما ياتي
PHP كود :
Public Shared Sub useraccesssub(ByVal formname As String, ByVal Frm As Form, ByVal con As SqlConnection, ByVal userid As Integer)
Try
Frm.Cursor = Cursors.WaitCursor
Dim useraccesscmd As New SqlCommand()
Select Case formname
Case "LoginFrm"
With useraccesscmd
.Connection = con
.CommandText = "insert into users_access_tb (user_id , user_status , login_date) values (@userid,@userstatus,@logindate)"
.Parameters.AddWithValue("@userid", userid)
.Parameters.AddWithValue("@userstatus", 1)
.Parameters.AddWithValue("@logindate", Now())
If con.State = ConnectionState.Closed Then con.Open()
Try
.ExecuteNonQuery()
con.Close()
Catch ex As Exception
If con.State = ConnectionState.Open Then con.Close()
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End With
Case "MainFrm"
Dim whereclause As String = "SELECT TOP 1 [ID] FROM [Users_Access_TB] " _
& " where user_id = " & userid & " order by id desc"
With useraccesscmd
.Connection = con
.CommandText = "update users_access_tb set logout_date = @currentdatetime , user_status = 0 where id = (" _
& whereclause & ")"
.Parameters.AddWithValue("@currentdatetime", Now)
Try
If con.State = ConnectionState.Closed Then con.Open()
.ExecuteNonQuery()
con.Close()
Catch ex As Exception
If con.State = ConnectionState.Open Then con.Close()
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End With
End Select
Frm.Cursor = Cursors.Default
Catch ex As Exception
If con.State = ConnectionState.Open Then con.Close()
Frm.Cursor = Cursors.Default
If ex.Message.ToString = "Object reference not set to an instance of an object." Then
Exit Sub
End If
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
في حدث (MainFrm_FormClosing) للنافذة الرئيسية ضع السطور التالية
PHP كود :
Try
If (MessageBox.Show("هل تريد مغادرة البرنامج ", "برنامج الكاشير", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading) = Windows.Forms.DialogResult.Yes) Then
useraccesssub(Me.Name, Me, con, userid)
Me.Dispose()
End
Else
e.Cancel = True
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
ارجو ان يكون الشرح بسيط و واضح
تحياتي ..
جزاك الله خير شكرآ اخى على الشرح
