Avatar billede n_riber Nybegynder
09. juni 2001 - 01:39 Der er 4 kommentarer og
1 løsning

VBA-kode,

If Me![kode] = Table!Password.kode then

hvad skal denne linie hedde for at access sammenligner med feltet [kode] i tabellen password
Avatar billede nih Novice
09. juni 2001 - 07:23 #1
Hvis formularens data kilde er tabellen password bør denne virke

if me.kode = me!kode

. referere til tekstbokse og lign.
! referere til felter i aktuel tabel

Niels
09. juni 2001 - 10:39 #2
Hej Niels (begge 2 :),

Jeg går ud fra, at du er ved at lave et login-billede?
Dvs, at formularen formentlig ikke er knyttet til tabellen Password.

Derved er du nok nødt til at bruge recordsets eller DLookup for at finde det rigtige password.

If Me!Kode = DLookup(\"Kode\", \"Passwords\", \"BrugerID = \" & Me!BrugerID) then ...

Denne sætning tager udgangspunkt i at du skal sammenligne en given brugers password med det indtastede.
Hvis du bare har én post i tabellen Password (og derved ikke skal sammenligne på BrugerID), så er det nok at skrive:

If Me!Kode = DLookup(\"Kode\", \"Passwords\") then ...

/Thomas

ps: . (punktum) sættes kun foran egenskaber og metoder, mens ! sættes foran alle former for objekter.
Eks på egenskaber og objekter:
Me!Kode.DefaultValue
Forms!MinFormular!txtFelt.BackColor

og metoder:
Me!Kode.Requery
Me.Undo
Avatar billede nih Novice
10. juni 2001 - 15:40 #3
> Thomas

Jeg er enig i at .(punktum) bruges til egenskaber og metoder.

Hvorimod ! er en måde at vælge et bestemt objekt i en samling af objekter (collektion).

Forms(\"kode\") 
Forms(2)      (nr 3 formular i samlingen)
Forms!kode

er 3 måder at referere til én formular i samlingen Forms.
I forb. med VBA kode synes jeg det er upraktisk med ! fordi man ikke kan bruge variabler.

Er jeg helt galt på den ????

Niels
11. juni 2001 - 12:27 #4
Hej nih,

Slet ikke!
Syntaksen Forms(Variabel) er nødvendig, netop hvis man skal benytte et variabelt objektnavn.
Men i det daglige er syntaksen med Forms!Formnavn kortere, hvorfor jeg fortrækker den.

Endvidere er det kun Forms!Formnavn-syntaksen, som kan bruges i f.eks forespørgsler og på formularer.

Mht om man skal bruge punktum eller udråbstegn, så er der situationer, hvor du direkte får en fejl, hvis du bruger punktum i stedet for udråbstegn. Bla. når du arbejde med Recordsets:
Hvis du skriver Rs.Feltnavn får du en fejl. Denne syntaks var tilladt i tidligere versioner af Access, hvorfor VBA-kode, som er konvereteret kan give fejl i disse linier.

Faktisk mener jeg, at Microsoft har begået en fejl, ved at lade autocomplete af objekter virke på punktum istedet for udråbstegn. Når man skriver Me! burde man få en liste over tilgængelige objekter og når man skriver Me. burde man få en liste over tilgængelige egenskaber og metoder.

Min konklusion må være, at da alle metoder har deres eksistensberettigelse i forskellige situationer, så bør (skal) man kende alle variationer - og ellers vælge hvad man bedst kan lide.

Enig?
Avatar billede nih Novice
11. juni 2001 - 20:35 #5
Thomas

Du skriver punktum eller udrupstegn - Det er en sammenblanding. \"!\" bruges til at vælge objekt mens \".\" bruges ved egenskaber og metoder.

Rs.fields(\"feltnavn\").value = \"Test\"
Rs!feltnavn = \"test\"

Det er som du siger default egenskaber og metoder der tit er meget forvirende.
Derfor bruger jeg somregel den fulde syntaks for at jeg kan se hvad der sker.

Mit første indlæg kunne også være skrevet sådan:
if me.controls(\"kode\").value = me!kode then

I hjælpfilen skriver access at koden bliver lidt langsommere, men jeg synes at jeg har mere styr over hvad der sker - Selvom det ikke er sandt.

Læsevenligheden af koden vil også øges betydeligt hvis der bruges \"præfix\'er\" altså navngive tekstboksen \"txtKode\" istedet for \"Kode\". Og bruge firkantede paranteser ved feltnavne [kode].

n_riber -> Undskyld diskutionen har vist bevæget sig lidt fra emnet :o)

Niels

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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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