Tạo form đăng nhập

  • Thread starter tung1999
  • Ngày gửi
T

tung1999

Sơ cấp
9/2/09
41
0
0
can gio
Mình có tạo form đăng nhập như sau:
- table NGUOIDUNG gồm: TEN, MATKHAU
- form DANGNHAP gồm: txtAA: dùng gõ tên đăng nhập; txtBB: dùng gõ mật khẩu
- form VAO CHUONG TRINH
- Modul:
Function Kiemtra(ByVal bAA As String, bBB As String) As Boolean
Dim oDB As DAO.Database
Dim oTB As DAO.Recordset
Set oDB = Application.CurrentDb
Set oTB = oDB.OpenRecordset("NGUOIDUNG")
For i = 1 To oTB.RecordCount
If oTB.Fields(0).Value = bAA Then
If StrComp(oTB.Fields(1).Value, bBB, 0) = 0 Then
Kiemtra = True
Exit Function
Else
Kiemtra = False
End If
End If
oTB.MoveNext
Next i
Set oDB = Nothing
Set oTB = Nothing

End Function
- Tại formDANGNHAP tạo 1 nút lệnh đoạn code:
Dim s As Boolean
If IsNull(AA) And IsNull(BB) Then
MsgBox "Ban phai nhap ten va mat khau!", vbCritical, "Thong bao"
Exit Sub
End If
s = Kiemtra(AA, BB)
If s = True Then
MsgBox "Dang nhap hoan tat", vbInformation + vbOKOnly, "Thong bao"
Else
If MsgBox("Dang nhap sai. Ban muon tiep tuc khong?", vbQuestion + vbYesNo, "Thong bao") = vbNo Then
Quit
Else
Exit Sub
End If
End If
Me.Visible = False
DoCmd.OpenForm "VAO CHUONG TRINH"
End Sub

Với cách làm trên mình đã thử thì rất OK, nhưng nếu table NGUOIDUNG mà link từ file khác sang thì chỉ có 1 người đăng nhập thành công, các người khác dù đăng nhập đúng cũng bị báo lỗi.
Xin cho hỏi làm sao để mọi người đều đăng nhập thành công. Nhờ các hảo huynh đệ chỉ giáo, cảm ơn rất nhiều!
 
Khóa học Quản trị dòng tiền
V

vtvt

Guest
25/4/08
5
0
0
HCM
Mình có tạo form đăng nhập như sau:
- table NGUOIDUNG gồm: TEN, MATKHAU
- form DANGNHAP gồm: txtAA: dùng gõ tên đăng nhập; txtBB: dùng gõ mật khẩu
- form VAO CHUONG TRINH
- Modul:
Function Kiemtra(ByVal bAA As String, bBB As String) As Boolean
Dim oDB As DAO.Database
Dim oTB As DAO.Recordset
Set oDB = Application.CurrentDb
Set oTB = oDB.OpenRecordset("NGUOIDUNG")
For i = 1 To oTB.RecordCount
If oTB.Fields(0).Value = bAA Then
If StrComp(oTB.Fields(1).Value, bBB, 0) = 0 Then
Kiemtra = True
Exit Function
Else
Kiemtra = False
End If
End If
oTB.MoveNext
Next i
Set oDB = Nothing
Set oTB = Nothing

End Function

Public Function Kiemtra(ByVal bAA As String, bBB As String) As Boolean
Dim oDB As Database
Dim oTB As DAO.Recordset
Dim reccount As Integer
Set oDB = CurrentDb
Set oTB = oDB.OpenRecordset("NGUOIDUNG")
oTB.MoveLast
reccount = oTB.RecordCount
oTB.MoveFirst

For i = 1 To reccount
If oTB.Fields(0).Value = bAA Then
If StrComp(oTB.Fields(1).Value, bBB, 0) = 0 Then
Kiemtra = True
Exit Function
Else
Kiemtra = False
End If
End If
oTB.MoveNext
Next i
Set oDB = Nothing
Set oTB = Nothing

End Function

hoặc nếu muốn hay hơn thì dùng lệnh Do While

Public Function Kiemtra(ByVal bAA As String, bBB As String) As Boolean
Dim oDB As Database
Dim oTB As DAO.Recordset
Dim reccount As Integer
Set oDB = CurrentDb
Set oTB = oDB.OpenRecordset("NGUOIDUNG")
Do While Not oTB.EOF
If oTB.Fields(0).Value = bAA Then
If StrComp(oTB.Fields(1).Value, bBB, 0) = 0 Then
Kiemtra = True
Exit Function
Else
Kiemtra = False
End If
End If
oTB.MoveNext
Loop
Set oDB = Nothing
Set oTB = Nothing

End Function
 
D

dzung

Guest
18/2/05
18
0
0
49
hcm
:030: Làm gì mà phức tạp quá vậy,

chỉ có 1 line thôi
Kiemtra = (Dcount("*","NGUOIDUNG","user='jose' and pass='123'")>0)

chúng ta có thể làm 1 chương trình kế toán nhỏ mà ko cần phải viết code đâu.
 
V

vtvt

Guest
25/4/08
5
0
0
HCM
:030: Làm gì mà phức tạp quá vậy,

chỉ có 1 line thôi
Kiemtra = (Dcount("*","NGUOIDUNG","user='jose' and pass='123'")>0)

chúng ta có thể làm 1 chương trình kế toán nhỏ mà ko cần phải viết code đâu.

Nếu user lúc nào cũng ='jose' và pass là ='123' thì cần gì xây dựng table NGUOIDUNG cho nặng database.
Đúng là ếch ngồi ...:eek:fftopic:
 
D

dzung

Guest
18/2/05
18
0
0
49
hcm
Trời ah, cũng do tui viết ngắn quá, không chịu giải thích, nên bạn ko hiểu thôi(có lẽ bạn ko phải là dân trong nghề IT).
Ví dụ thôi nên tôi mới hardcode đơn giản vậy.
khi làm thì phải thay thế bằng 2 cái biến(var) chứ?!

Public Function Kiemtra(ByVal bAA As String, bBB As String) As Boolean
Kiemtra = (DCount("*", "NGUOIDUNG", "user='" & bAA & "' and pass='" & bBB & "'") > 0)
End Function







Nếu user lúc nào cũng ='jose' và pass là ='123' thì cần gì xây dựng table NGUOIDUNG cho nặng database.
Đúng là ếch ngồi ...:eek:fftopic:
 
T

tung1999

Sơ cấp
9/2/09
41
0
0
can gio
Cảm ơn các bạn rất nhiều! Mình đã làm được rồi, các bạn đều là anh em tốt.
 

Xem nhiều