Avatar billede towlie Nybegynder
02. november 2004 - 14:19 Der er 5 kommentarer og
1 løsning

Login system i Visual Basic og Access

Hej, jeg sidder og prøver at lave et loginsystem i VB hvor brugernavnene og passwords er gemt i en access database, men da jeg er rimelig meget n00b til VB, kan jeg ikke helt finde ud af det... Jeg har fået skrevet flg. kode:


Private Sub cmdEnter_Click()

Dim con As ADODB.Connection
Dim res As ADODB.Recordset

Dim myString As String
Dim strName As String
Dim strPass As String
Dim Message As String

Set con = New ADODB.Connection
Set res = New ADODB.Recordset

myString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"

con.Open (myString)
res.Open "UsrData", con, adOpenDynamic

UsrData.Refresh
strName = txtUser.Text
strPass = txtPwd.Text


Do Until UsrData.Recordset.EOF
If UsrData.Recordset.Fields(UserName).Value = strName And UsrData.Recordset.Fields(Password).Value = strPass Then
Me.Hide
frmUdlejning.Show
End Sub

Else
UsrData.Recordset.MoveNext
End If
Loop

MsgBox "Invalid password, try again!"

Login_Form.Show
txtUser.Text = ""
txtPwd.Text = ""

End Sub

__________________________________________________

Den bliver ved med at komme med en fejl om "Run time error 3265, elementet kan ikke findes i den samling der svarer til det anmodede navn eller ordenstal"

Og jeg fatter simpelthen ikke hvorfor det ikke virker, det er uanset om jeg skriver brugernavn og password rigtigt eller forkert, eller slet ikke noget...

Håber der er nogen der kan hjælpe ;-)
Avatar billede overchord Nybegynder
02. november 2004 - 14:28 #1
Jeg er ikke helt 100% paa om det er dette men jeg mener der skal anfoerselstegn omkring dine Fields navne eller ogsaa skal du brige idex vaerdier istedet.
Hvis UnserName er foerste kolonne og Passwrod er anden kolonner:
skriv feltet UserName som UsrData.Recordset.Fields(0) og password som UsrData.Recordset.Fields(1)
Avatar billede terry Ekspert
02. november 2004 - 20:00 #2
Try

Do Until Res.EOF
If res!UserName = strName And res!Password = strPass Then
Me.Hide
frmUdlejning.Show
End Sub

Else
res.MoveNext
End If
Loop
Avatar billede kdje Nybegynder
02. november 2004 - 20:44 #3
Her er et eks. som jeg har brugt før
Den bruger ikke OLEDB.4.0 Jet men "Data Objects 2.8"
Man kalder den med checkLogin("hans", "password1") og retur er True eller false

Private Function checkLogin(Username As String, Password As String) As Boolean

                'Husk at Add. References 'Microsoft ActiveX Data Objects 2.8 Library'

                    Dim OConn As ADODB.Connection
                    Dim ORs As ADODB.Recordset
                    Dim SQLExc As String
                    Dim Connstring As String

                    Connstring = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\db1.MDB;UID=;PWD=;"
 
                    Set OConn = New ADODB.Connection
                    OConn.ConnectionTimeout = 1
                    OConn.CommandTimeout = 1
                    OConn.Open Connstring
                   
                    SQLExc = "SELECT username,password from UsrData where username ='" & Username & "' and '" & Password & "'"
                    Set ORs = OConn.Execute(SQLExc)
                    If ORs.EOF And ORs.BOF Then
                    checkLogin = False
                    Else
                    checkLogin = True
                    End If
                                       
                    ORs.Close
                    Set ORs = Nothing
                    OConn.Close
                    Set OConn = Nothing
End Function
Avatar billede terry Ekspert
10. november 2004 - 08:42 #4
status?
Avatar billede towlie Nybegynder
11. november 2004 - 08:23 #5
Virker fint nu... Tusind tak for hjælpen... undskyld jeg er lidt lang tid om at svare, er rimelig presset for tiden ;-)
Avatar billede terry Ekspert
11. november 2004 - 18:16 #6
tak, no problem in the delay :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester