Avatar billede NVMO Nybegynder
20. april 2014 - 15:10 Der er 7 kommentarer

Gem værdien fre en combobox til senere brug

Hej
Jeg bruger access 2010.
Jeg har lavet en login via en combobox således at navne og password ligger i en tabel "tblUser". Hver bruger har således forskellige rettigheder i databasen.
I forbindelse med viderebehandling af posterne har jeg brug for at den person, som er logget på skal kvitterer forskellige poster baseret på en forespørgsel.
Her vil jeg gerne have at, f.eks. bogholderen, kvitterer ved at sætte flueben ud for den pågældende post og at hans login navn herefter automatisk indsættes i tabellen i en kolonne der hedder "godkendt". Han har jo allerede valgt navnet da han loggede på - så det må være muligt at "huske" dette navn fra valget i comboboxen.
Jeg kan ikke finde ud af hvordan jeg gemmer/husker valget fra login comboboxen til senere brug (når der logges ud skal valget naturligvis ikke længere huskes).
Avatar billede MSchlamovitz Mester
20. april 2014 - 15:51 #1
Logger dine brugere på et netværk?
Er det det samme login brugeren vælger fra comboboxen?

Du kan fange brugerens login med denne kode:

Dim Bruger as string
Bruger = Environ("User")

eller i dit tilfælde:
Me.Godkendt = Environ("User")
placeret som en after update event på fluebensfeltet
Avatar billede NVMO Nybegynder
20. april 2014 - 16:46 #2
Alle har adgang til databasen på et fælles drev.
Hvor skal jeg sætte koden ind I forbindelse med comboboxen?
Avatar billede MSchlamovitz Mester
20. april 2014 - 18:18 #3
Jeg antager, at comboboxen og Godkendfeltet er på samme formular?

Så skal du placere koden i fluebensfeltets AfterUpdate /Efter
Opdatering hændelse.
Comboboxen hvor brugeren skal vælge login bliver overflødig.
Avatar billede NVMO Nybegynder
21. april 2014 - 07:43 #4
Nej det er netop ikke samme formular.
Når f.eks. bogholderen "Jens Jensen" har logget på med valget af hans navn i Comboboxen i login formularen, kommer han ind i det område af databasen hvor han har ret til at arbejde. Her vil han på et givet tidspunkt skulle godkende diverse poster ved af sætte flueben. Det er på dette tidspunkt hans navn automatisk skal indsættes.

Jeg kender ikke den nødvendige kode men i "logisk sprog" kunne de se således ud:

Ved Login:
ved valg (klik?) af navn (Jens Jensen)  i comboboks sættes NAVN = Jens Jensen.

Sener:
Ved klik (flueben) indsættes Jens Jensen i feltet "godkendt af":
f.eks. "Ved klik: Godkendt af = NAVN"
Avatar billede MSchlamovitz Mester
21. april 2014 - 09:47 #5
Så er løsningen lidt anderledes:
Når valget er foretaget, skal det gemmes i registreringsdatabasen og når det skal bruges igen læses det herfra.
På comboboxens AfterUpdate event laver du en SaveSettings statement, fx
  SaveSetting "Databasenavn","Godkendt","Bruger", Me.combobox

og på fluebensfeltets AfterUpdate event laver du en getsetting statement, fx:
  Me.Navnefelt = GetSetting "Databasenavn","Godkendt,"Bruger"

"Databasenavn" erstatter du med navnet på din database.
Avatar billede NVMO Nybegynder
21. april 2014 - 23:20 #6
Jeg tror vi er inde på noget af det rigtige, men jeg kan stadig ikke få det til at fungerer. Du får lige lidt flere informationer:
Min combobox til login hedder cboUser og den henter navnene fra en tabel, der hedder tblUser. I tabellen tblUser ligger alle navne som kan logge på i en kolonne, der hedder Lname.

Tabellen hvor navnet fra login skal bruges hedder tblInvoice og kolonnen hvor navnet skal indsættes i hedder Name. Jeg har lavet en formular til dette, hvor forskellige koloner fra tabellen tblInvoice fremgår - sammen med en checkbox (flueben).

Kan du mon hjælpe med en lidt nærmer kodning?
Avatar billede MSchlamovitz Mester
22. april 2014 - 18:21 #7
Jeg antager, at formularen indeholder cboUser, feltet Name samt checkbox (flueben). Formularfeltet Name har tblInvoice.Name som kontrolelementkilde. Checkbox (flueben) bør også have en kolonne i tblInvoice (et felt af typen Ja/Nej) som kontrolelementkilde.

Jeg antager, at brugeren vælger et (sit eget) navn på listen i comboboxen.

På comboboxen på formularen kan du, på hændelsen Efter Opdatering / After Update - afhængig af hvilket sprog din Access er - placere ovenstående SaveSetting kode.
Denne kode vil gemme det valgte navn i registreringsdatabasen på den maskine der arbejdes på.

Du placerer ligeledes ovenstående GetSetting kode i checkboxens Efter Opdatering / After Update hændelse. Den skal så lyde således:
  Me.Name = GetSetting "Databasenavn","Godkendt","Bruger"

På denne måde kan flere brugere arbejde samtidigt uden at genere hinanden - bare de ikke arbejder i samme faktura samtidigt.

Det kan være hensigtsmæssigt, måske nødvendigt, at ændre kolonnenavnet til noget anden end "Name" - som er et reserveret ord i Access.
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

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