私は2つのフォームを持っています
最初のフォームは
Public Class frmMain
Friend strBillIDNumber As String
Friend strBillPassword As String
Friend ds As New DataSet
Friend cnn As OleDbConnection
Friend sql As String
Friend adptr As OleDbDataAdapter
Dim attempt As Integer = 1
Private Sub btnSign_Click(sender As Object, e As EventArgs) Handles btnSign.Click
Dim connectionString As String
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\UsersDB.accdb;"
sql = "Select ID, LASTNAME, FIRSTNAME, LOGINSTATUS from TblUser"
cnn = New OleDbConnection(connectionString)
Try
cnn.Open()
adptr = New OleDbDataAdapter(sql, cnn)
adptr.Fill(ds)
For i = 0 To ds.Tables(0).Rows.Count - 1
If ds.Tables(0).Rows(i).Item(0) = txtID.Text Then
MessageBox.Show("UserName Matched")
If ds.Tables(0).Rows(i).Item(1) = txtPassword.Text Then
MessageBox.Show("Password Matched")
If txtPassword.Text = "admin" Then
MessageBox.Show("You are now Logged In as Admin.")
frmFaculty.Show()
Me.Hide()
Else
frmStudent.lblSI.Text = ds.Tables(0).Rows(i).Item(0)
frmStudent.lblLN.Text = ds.Tables(0).Rows(i).Item(1)
frmStudent.lblFN.Text = ds.Tables(0).Rows(i).Item(2)
frmStudent.lblLS.Text = ds.Tables(0).Rows(i).Item(3)
MessageBox.Show("You are now Logged In.")
frmStudent.Show()
Me.Hide()
End If
Else
MessageBox.Show("Invalid Password.")
MessageBox.Show("Please Try Again." & vbNewLine & "ATTEMPT: " & attempt & " out of 3")
attempt = attempt + 1
End If
End If
Next
adptr.Dispose()
cnn.Close()
Catch ex As Exception
MessageBox.Show("Please Try Again!")
End Try
'log-in attempt 3x fail'
If attempt > 3 Then
MessageBox.Show("You have exceeded the number of login attempt." & vbNewLine & "Please Contact the Administrator.")
End If
End Sub
そして私の第二の形態は
Imports System.Data.OleDb
Public Class frmStudent
Dim TimeInHold As String
Private Sub loginBTN_Click(sender As Object, e As EventArgs) Handles loginBTN.Click
Dim cnn2 As New OleDbConnection
Dim Command As OleDbCommand
Dim i As Integer
Dim sql2 As String
Dim status As String
Try
cnn2 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
cnn2.Open()
sql2 = "INSERT INTO Audit ([ID],[TIMEIN]) VALUES('" & frmMain.txtID.Text & "','" & DateTime.Now & "')"
Command = New OleDbCommand(sql2, cnn2)
i = Command.ExecuteNonQuery
Catch ex As Exception
cnn2.Close()
End Try
MessageBox.Show("You have successfully Signed in." & vbNewLine & " Please Don't Forget to Logout.")
frmMain.cnn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\UsersDB.accdb;")
frmMain.cnn.Open()
frmMain.adptr = New OleDbDataAdapter(frmMain.sql, frmMain.cnn)
frmMain.adptr.Fill(frmMain.ds)
If frmMain.ds.Tables(0).Rows(i).Item(0) = lblSI.Text Then
frmMain.sql = "UPDATE TblUser SET LOGINSTATUS = 'SignedIn'"
frmMain.cnn.Close()
End If
Me.Close()
frmMain.Show()
frmMain.txtID.Text = String.Empty
frmMain.txtPassword.Text = String.Empty
End Sub
フォーム 1 からデータ セットを取得する SELECT および UPDATE SQL ステートメントを機能させることができません。ボタンをクリックすると、フィールド "LoginStatus" が "Signed In" の値に更新されます。
PS私は、ユーザーが管理者か学生かを判断し、対応するフォームにリダイレクトするタイムアウト監視システムを作成しています。学生フォームにはサインインとサインアウトのボタンがあり、時間の入力とタイムアウトが記録されます。サインインをクリックするとグレー表示になります。
助けてください..