Avatar billede capper83 Nybegynder
16. marts 2004 - 12:04 Der er 10 kommentarer og
1 løsning

søg fra database

hejsa

jeg er i gang med at lave et lille login i vb jeg har en database i access.

har en tabel der hedder login inde i den tabel er der en user og et password felt.

hvordan kan jeg tjekke om det som er skrevet i mit login findes i databasen??

På forhånd tak

Venlig Hilsen Jack
Avatar billede kabbak Professor
16. marts 2004 - 12:44 #1
Du skal nok bruge DLookup, her er noget fra hjælpen

The DLookup function returns a single field value based on the information specified in criteria. Although criteria is an optional argument, if you don't supply a value for criteria, the DLookup function returns a random value in the domain.

If no record satisfies criteria or if domain contains no records, the DLookup function returns a Null.

If more than one field meets criteria, the DLookup function returns the first occurrence. You should specify criteria that will ensure that the field value returned by the DLookup function is unique. You may want to use a primary key value for your criteria, such as [EmployeeID] in the following example, to ensure that the DLookup function returns a unique value:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")
Avatar billede kabbak Professor
16. marts 2004 - 12:52 #2
sub TjekLogin()
Dim varX As Variant,varY as Variant
varX = DLookup("[user]", "login", "[login] = " & loginTexstbox)
if varX <> null then
  varX = DLookup("[password]", "login", "[password] = " & passwordTexstbox)
    if varY <> null then
      Msgbox " login og password godkendt"
      exit sub
  else
Msgbox " password er IKKE godkendt"
else
Msgbox " login er IKKE godkendt"
end if
end sub


noget i denne retning
Avatar billede tubber Juniormester
16. marts 2004 - 13:53 #3
Kabbak kan ikke helt lige gennemskue din kode, men du sætter varX 2 gange det går i hvert fald ikke.......

sub TjekLogin()
Dim varX As Variant,varY as Variant
varX = DLookup("[user]", "login", "[login] = " & loginTexstbox)
if varX <> null then
  varY = DLookup("[password]", "login", "[password] = " & passwordTexstbox)
    if varY <> null then
      Msgbox " login og password godkendt"
      exit sub
  else
Msgbox " password er IKKE godkendt"
else
Msgbox " login er IKKE godkendt"
end if
end sub

Så har jeg lige et spg. DLookup hvad gør den ?

En anden løsning kunne være noget i den stil:

Refferencen : Microsoft DAO 3.51 eller 3.6

Dim ws As Workspace
Dim db As Database
Dim rs As Recordset
Dim varLogin as boolean
Set ws = Workspaces(0)
Set db = ws.OpenDatabase(App.Path & "\dinDB.mdb")
Set rs = db.OpenRecordset("SELECT * FROM login")
If Not rs.EOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        If rd!user = text1.text and rs!password = text2.text then
            varLoing = True
            exit do       
        else:   
            rs.MoveNext
        Loop
End If
If varLogin = True then msgbox("Login Acceptet"), vbOkOnly
If varLogin = False then msgbox("Login Not Acceptet"), vbOkOnly
Avatar billede kabbak Professor
16. marts 2004 - 14:19 #4
Tubber >>

(varX 2 gange) , det var en fejl, skal selvfølgelig være.:

varY = DLookup("[password]", "login", "[password] = " & passwordTexstbox)

(Så har jeg lige et spg. DLookup hvad gør den ?)

Den slår op i en tabel og finder den værdi man har under kriterier

DLookup("[Feltnavn]", "Tabel", "[feltnavn som kriteriet skal passe på] = " & Kriterie

den retunerer null, hvis den ikke er fundet.


Jeg gik ud fra at capper83 , skrev login iselve Access, men hvis det er uden for Access, skal den jo kobles op først, som du viser.
Avatar billede capper83 Nybegynder
16. marts 2004 - 14:20 #5
kan det ikke gøres nemmere??
Avatar billede capper83 Nybegynder
16. marts 2004 - 14:27 #6
kan man ikke gøre noget der minder lidt om det bare lidt mere på??


Dim con As String
Dim res As String
Dim mystring

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

   
mystring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Ny mappe\db1.mdb;Persist Security Info=False"
   
con.Open (mystring)
   
Set res = con.Execute(mysql)
   
mysql = "SELECT user, password from login where (et eller andet)"

con.Close
Avatar billede capper83 Nybegynder
16. marts 2004 - 14:27 #7
mysql = mystring
Avatar billede tubber Juniormester
16. marts 2004 - 14:33 #8
Det var et godt spg. men du kan ikke lave det du viser uden at dimme ws og db og rs og du kommer heller ikke uden om den reference, for eller så kender den ikke den connection type......
Avatar billede capper83 Nybegynder
16. marts 2004 - 14:42 #9
jeg finder ud af det!! jeg mener bare at man kan gøre det på den måde jeg skrev!
men jeg takker for hjælpen!!
Avatar billede martin_moth Mester
18. marts 2004 - 08:40 #10
Kan du ikke lukke hvis du har fået hjælp nok
Avatar billede capper83 Nybegynder
23. marts 2004 - 15:22 #11
luk
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

IT-JOB