Avatar billede cgleerup Nybegynder
07. december 2001 - 11:36 Der er 32 kommentarer og
2 løsninger

Tælle bestemte brugere

Jeg har lavet en simpel tæller på min startfomular som ligger værdien \"1\" til i et tabelfelt når denne åbnes - på den måde kan jeg tælle hvor mange gange databasen har været åbnet. Men er det muligt at dele brugerne op. Jeg bruger access egen gruppeadministration og tænkte om det var muligt at sige: hvis bruger \"x\" åbner start ligger den \"1\" til i tabellen \"brugerens navn\" og hvis den anden og så fremdeles?
Avatar billede puppetmaster Nybegynder
07. december 2001 - 11:53 #1
Ja, du laver en SQL update på det felt hvor brugernavnet matcher den aktivebruger.
Hvis du f.eks. har en tabel med navnet Taeller og felterne bruger og antal, kan du bruge følgende SQL:
UPDATE taeller SET antal = antal + 1
WHERE (((taeller.Bruger)=currentuser()));

Koden checker hvem der er logget på og tæller vedkommendes tæller op med 1.
Avatar billede puppetmaster Nybegynder
07. december 2001 - 11:54 #2
Glemte at sige, at ovenstående kode kræver at brugerne ER oprettet i tabellen! ;)
Avatar billede cgleerup Nybegynder
07. december 2001 - 11:54 #3
kan du uddybe det lidt?
Avatar billede puppetmaster Nybegynder
07. december 2001 - 11:56 #4
Gerne. Er det SQL delen eller det logiske i det?
Avatar billede cgleerup Nybegynder
07. december 2001 - 11:56 #5
Min plan gik på at hvis man lavede et felt til hver enkelt brugernavn, og har defineret brugere ved hjælp af access indbyggede funktion, om jeg så kunne sig get.user eller noget i den stil for at se hvem der er på og så sige, læg 1 til i tabellen der svarer til brugeren
Avatar billede cgleerup Nybegynder
07. december 2001 - 11:56 #6
lidt af hvert tror jeg
Avatar billede puppetmaster Nybegynder
07. december 2001 - 11:57 #7
ok.
Ved du hvor du indtaster kode i VBA editoren?
(altså, hvordan du \"hægter\" kode på f.eks. en knap?)
Avatar billede puppetmaster Nybegynder
07. december 2001 - 12:03 #8
Nedenstående kode oodaterer antallet af gange en bruger har åbnet en given formular (forudsætter at brugeren allerede er indtastet i tabellen):

Private Sub Form_Open(Cancel As Integer)
On Error GoTo Formular_Open_Err

DoCmd.SetWarnings False
DoCmd.RunSQL \"UPDATE taeller SET antal = antal + 1 WHERE (((taeller.Bruger)=currentuser()))\"
DoCmd.SetWarnings True

Formular_Open_Exit:
  Exit Sub
Formular_Open_Err:
  MsgBox Error$
  Resume Formular_Open_Exit
End Sub
Avatar billede cgleerup Nybegynder
07. december 2001 - 12:06 #9
Tjaaa, jeg har lavet en primitiv tæller, så jeg tror godt lige at jeg kan finde kodedelen, vba altså. :0)

Jeg er rimeligt godt inde i tingene men jeg kunne sgu ikke lige greje den her, men det er jo også ved at være weekend!
Avatar billede puppetmaster Nybegynder
07. december 2001 - 12:07 #10
:)
(heldigvis!)
Avatar billede cgleerup Nybegynder
07. december 2001 - 12:07 #11
med oprette i tabellen, mener du bare at der skal være et felt til hver bruger ikke. og så skal det vel bare have samme navn som brugerens brugernavn
Avatar billede puppetmaster Nybegynder
07. december 2001 - 12:12 #12
YES! sådan, lige præcis!
Avatar billede cgleerup Nybegynder
07. december 2001 - 12:14 #13
det vil jeg prøve men du må lige have tålmodighed til mandag. Databasen er en større sag, så det tager lidt tid!
Avatar billede puppetmaster Nybegynder
07. december 2001 - 12:14 #14
:) (så vil jeg ønske god weekend)
Avatar billede ugotabe_kidding Nybegynder
07. december 2001 - 18:42 #15
Jeg har et \"lignende\" problem..
Jeg ønsker at registrere de brugere, der opretter og ændrer felter i tabellerne i DB\'en. Jeg har erfaret at jeg ikke kommer udenom VB, men jeg kan ikke helt lure hvordan jeg får datoer og brugerID smidt ned i en tabel, så jeg kan hente det derfra????
Avatar billede puppetmaster Nybegynder
10. december 2001 - 08:22 #16
Ok, ugotabe kidding, this one\'s for free!

**************************************************Private Sub Form_Open(Cancel As Integer)
On Error GoTo Formular_Open_Err
DoCmd.SetWarnings False
DoCmd.RunSQL \"INSERT INTO adgang (dato,bruger) Values (now(),CurrentUser())\", -1
DoCmd.SetWarnings True
Formular_Open_Exit:
    Exit Sub
Formular_Open_Err:
    MsgBox Error$
    Resume Formular_Open_Exit
End Sub

**************************************************
DoCmd.SetWarnings False og DoCmd.SetWarnings True
forhindrer at brugeren får at vide, at der er indsat de felter som står beskrevet i:
DoCmd.RunSQL \"INSERT INTO adgang (dato,bruger) Values (now(),CurrentUser())\", -1

Ovenstående linie indsætter dags dato og nuværende bruger i en tabel ved navn \"adgang\".
Husk at denne måde at gøre det på, kræver at alle brugere af systemet allerede er indtastet i tabellen \"adgangs\"\'s felt kaldet \"bruger\".

Mvh.
Avatar billede cgleerup Nybegynder
10. december 2001 - 13:44 #17
hvilket felt var det jeg skulle ligge koden på, bare i \"ved start\"
Avatar billede puppetmaster Nybegynder
10. december 2001 - 13:46 #18
I min ligger den i Form - Open
Avatar billede cgleerup Nybegynder
10. december 2001 - 13:46 #19
tjaa, det var vidst også det jeg mente!
Avatar billede puppetmaster Nybegynder
10. december 2001 - 13:47 #20
:)
Avatar billede cgleerup Nybegynder
10. december 2001 - 13:59 #21
nu har jeg oprettet feltnavne svarende til de enkelte brugernavne under tabellen \"bruger\" eksempelvis et feltnavn som \"bruger1\" i tabelle \"bruger\". Men det virker ikke!
Avatar billede terry Ekspert
10. december 2001 - 14:00 #22
whats wrong with th efirst answer you got from puppetmaster?
Avatar billede cgleerup Nybegynder
10. december 2001 - 14:01 #23
sikkert ingen ting, men jeg kan ikke få den til at virke, numemr 2 \"lange\" svar givet her på siden er givet til en \"gratis\" adspørgelse fra en anden bruger.

Avatar billede terry Ekspert
10. december 2001 - 14:02 #24
DoCmd.RunSQL \"UPDATE taeller SET antal = antal + 1 WHERE taeller.Bruger = \'\" & currentuser() & \"\'\"

Avatar billede puppetmaster Nybegynder
10. december 2001 - 14:02 #25
cgleerup:
Der ER noget du har misforstået!
Der skal egentlig kun være to felter i tabellen: brugernavn og antal (gange en given bruger har været logget på)
Det jeg mente er, at alle brugere skal indtastes i tabellen før du begynder at bruge den. dvs. feltet \"bruger\" skal indeholde alle de kendte brugere.
Avatar billede terry Ekspert
10. december 2001 - 14:03 #26
Place the code in the forms on load event
Avatar billede puppetmaster Nybegynder
10. december 2001 - 14:05 #27
Lidt a la:
Bruger        Antal
puppetmaster    0
cgleerup    0
terry            0
Avatar billede cgleerup Nybegynder
10. december 2001 - 14:06 #28
dohhh, naturligvis, det kan jeg jo se ud fra den kode du har lavet!

;0)

jeg vender lige tilbage om to minutter, efter at have testet det!
Avatar billede puppetmaster Nybegynder
10. december 2001 - 14:06 #29
:)
Avatar billede cgleerup Nybegynder
10. december 2001 - 14:15 #30
for lige at skære det ud i pap, jeg tror ikke helt jeg er med alligevel.

den tabel jeg skal i heder \"bruger\"
det ene felt hedder \"navn\"
det andet felt hedder \"antal\"

jeg har sat dem som jeg mener de skal men får en fejl, altså hvor skal jeg sætte hvad ind?
Avatar billede terry Ekspert
10. december 2001 - 14:17 #31
DoCmd.RunSQL \"UPDATE bruger SET antal = antal + 1 WHERE navn = \'\" & currentuser() & \"\'\"

Avatar billede puppetmaster Nybegynder
10. december 2001 - 14:18 #32
Har du en mailaddresse, så vil jeg sende dig et skærmdump af tabellen.
Avatar billede cgleerup Nybegynder
10. december 2001 - 14:19 #33
ok, jeg så havde jeg fanget den, jeg havde bare glemt et enkelt \". Tak!

Avatar billede terry Ekspert
10. december 2001 - 14:21 #34
: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
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