Toon posts:

[Access & VBA] 1 record uit de tabel halen

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Heb volgende code om een record uit de tabel te halen:
Dim dbDatabase As Database
Dim dsGebruiker As Recordset
Dim x As String

Set dbDatabase = DBEngine.Workspaces(0).Databases(0)
Set dsGebruiker = dbDatabase.OpenRecordset("SELECT Users.Password FROM Users Where Users.Username = Forms![Users1]!Username!", dbOpenDynaset)

Dit wil ik gebruiken om een inlog form te maken. Ik wil het password behorend bij de username vergelijken met het password op het form.

Maar bovenstaande werkt al niet, iemand enig idee?????

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
En wat werkt er niet dan ? Is je recordset .eof ?

Verwijderd

moet je het niet zo doen :

"SELECT Users.Password FROM Users Where Users.Username = " & Forms![Users1]!Username

omdat je form textboxen niet in je sql mag gebruiken .... toch ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:31
Waarom zorg je er niet voor dat je SQL query al rekening gaat gaan houden met het password en de username.

Zo dus:
code:
1
select * from users where username = bla and password = bla

Als je query dan een row teruggeeft, dan is de combinatie username/passwoord goed; anders niet.

Trouwens, wat is niet werken?
Geeft ie een fout?
Wat lukt er niet?
etc....

[ Voor 13% gewijzigd door whoami op 23-04-2003 12:21 ]

https://fgheysels.github.io/


  • Kama
  • Registratie: Mei 2002
  • Laatst online: 22-08 12:00

Kama

Aritifical Intelligenticus

Je krijgt een recordSET terug, niet een record. Dus je krijgt een lijst terug met 0, 1 of meer items. Je zult door die recordset moeten browsen om evt. records uit te lezen.

Niels


Verwijderd

Topicstarter
ok,
ben net even bezig geweest en een en ander gewijzigd:
Public Sub Command6_Click()

Dim dbs As Database
Dim dsUser As Recordset


Set dbs = DBEngine.Workspaces(0).Databases(0)
Set dsUser = dbDatabase.OpenRecordset("Users", dbOpenDynaset)

strSQL = "SELECT * " & _
"FROM Users " & _
"WHERE Username = " & Forms![Users1]!Username & _
"AND Password = " & Forms![Users1]!Password

DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True


MsgBox ("test")

End Sub

Deze code zit gekoppeld aan een knop en het lijkt mij dat ik i.i.g. een popup moet krijgen met test erin.

Of heb ik dat nu helemaal mis. Werk overigens met Access XP.

Verwijderd

Topicstarter
Code bleek niet meer gekoppeld te staan aan die knop, krijg nu de volgende foutmelding bij:

Dim dbs As Database

De foutmelding is:
User-defined type not defined.

Iemand enig idee????

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Je moet een reference aan zetten van DAO of ADO. Dit kun je doen door naar de code-editor te gaan en dan kiezen voor Tools - References (Extra - Verwijzingen?) en daar een vinkje te zetten voor de database-toegang die je wil gebruiken.

My personal website


Verwijderd

Topicstarter
Ok,

heb het nu op een geheel andere manier opgelost.
if Password <> DLookup("Password", "Users", "Username = '" & Username & "'") then
<do this>
else
<do that>
end if

Dit werkt tot mijn verbazing wel gewoon.

I.i.g. bedankt

Verwijderd

je bent in de sql vergeten de username en het pwd tussen quotes te zetten. Het zijn nl textvelden
dus het moet iets worden als
select * from tabel where username=' " & form!username & " ' and pwd=' " & form!pwd & " '"
Pagina: 1