Avatar billede dogtown Seniormester
09. juni 2016 - 09:30 Der er 22 kommentarer og
1 løsning

Hente vise en værdi betinget av en værdi i en anden celle

Jeg har en form med en underform (tabel visning) hvor man kan i den første celle kan vælge Navn på personer som ligger gemt i en tabel (tbl_personer)
Valget af navn har jeg lavet med guiden opslag.

Når navn er valgt ønsker jeg at det næste felt (Tjnr) skal automatisk blive opdateret med den aktuelle person "Tjnr".

Er det Visual Basic man bruger til det? Og hvilken funktion eller kommando skal jeg så bruge? Så jeg kan Google "læring og løsning"

HP
Avatar billede petersen7913 Forsker
09. juni 2016 - 10:01 #1
Det kommer lidt an på hvordan du har lavet din tabel og hvilke data du bygger din underform på.

Hvis både Navn og Tjnr ligger i tbl_Person og du bygger din underform på tbl_Person kan du hente begge kolonner ind i dit opslag.

Prøv at søge mere på hvordan man bruger/laver opslag. Jeg prøver at finde nogle sider til dig.

Et sidespring - har du bygget din tbl_person op med et unik ID eller bruger du Navn som unik ID? Det kan nemlig give dig problemer senere.
Avatar billede dogtown Seniormester
09. juni 2016 - 11:18 #3
Takker for dit forslag! Men den del har jeg styr på. Det er den funktion jeg benytter når jeg skal hente/slå op navnet. Når navnet er fundet, ønsker jeg at feltet med Tj_nr og så skal blive automatisk opdateret med den rette værdi, og gemt i tabellen.
(Den tabel som navn og tj_nr hentes fra, er ikke samme som den som det skal gemmes i)

Vedr. Spørgsmål om ID. Har jeg unik ID med autonummer. Navn er ikke unik.

Jeg har en kode fra en anden database jeg har fået. Der benyttes en kode som følger:
Private Sub cmdOpslagNavn_AfterUpdate()
' Finn postene som passer til kontrollen.
  Private Sub cmdOpslagNavn_AfterUpdate()
' Finn postene som passer til kontrollen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Tj_nr] = " & Str(Nz(Me![cmdOpslagNavn], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub


Men om der er en kodesætning som mangler, er jeg ikke sikker på. Men den duer ikke.
Avatar billede petersen7913 Forsker
09. juni 2016 - 11:31 #4
Fint med din ID :)

Jeg tænker lidt om du kunne lave en DLookup i din AfterUpdate?

Noget i retning af

Private Sub xxx_AfterUpdate
me.Tjnr = DLookup(......)
End sub

http://www.techonthenet.com/access/functions/domain/dlookup.php
Avatar billede terry Ekspert
09. juni 2016 - 11:42 #5
Why not just add the column Tj_nr to the combo and then all you need to do is copy Tj_nr for selected name into me.Tjnr
Avatar billede terry Ekspert
09. juni 2016 - 11:47 #6
Another idea.
If the sub form is based on a query which also contains tbl_personer.Tj_nr then when you select Navn from combo then Tj_nr should be shown. I'm assuming that table sub form is based on and tbl_person are related.
Avatar billede dogtown Seniormester
19. juni 2016 - 22:02 #7
Jeg har prøvet og fejlet med DLookup!
Jeg har en tabel med Navn og Tj_nr.(tbl_Personer). Som via en combobox henter ind navn fra
f.eks. cmd_personIndsats1 (som henter og gemmer navnet i  tbl_ODIN) ønsker jeg som sagt at Personen tjenestenr. skal gemmes i Tj_nr1.

<b>Private Sub cmd_PersonIndsats1_AfterUpdate()
'Me.Tj_nr1 = DLookup("Tj_nr", "tbl_Personer", "cmd_PersonIndsats1 = " & [Navn])
End Sub</b>

Har forsøgt mig med div. varianter, men lykkes ej! Har også gjort forsøg med en querry.
<b>Tj_nr1: DLookUp("Tj_nr";"tbl_personer";"Navn"="cmd_PersonIndsats1")</b>
Som heller ikke vil. Ændrer jeg den til at vise et given tjenestenr. så duer den!!
Avatar billede petersen7913 Forsker
20. juni 2016 - 07:39 #8
Jeg spekulerer lidt på om du har den rigtige struktur i dine tabeller? Det kan være lidt svært at vurdere ud fra det du beskriver.
Avatar billede dogtown Seniormester
20. juni 2016 - 22:25 #9
Jeg har en tabel hvor navn, tjeneste nr, og type kørekort.
Den anden tabel har alle oplysninger om hændelsen de har været til (rapporten).
Da navn og hvad de må køre er en liste som ofte skal opdateres, valgte jeg at de oplysninger skal ligge i en tabel, så de nemt og hurtigt kan korrigeres.

Jeg kan sagtens få til med en combobox til at vise både Navn og tjeneste nr. Men access tillader jo kun at gemme det ene feltet.
Avatar billede petersen7913 Forsker
21. juni 2016 - 07:57 #10
Hm ... ud fra det du skriver, så ville jeg bruge 3 tabeller

Tabel 1 med stamdata - ID, navn, tjenestenr
Tabel 2 med kørekort - ID, StamdataID, type-kørekort
Tabel 3 med hændelser - ID, StamdataID, hændelse
Avatar billede petersen7913 Forsker
21. juni 2016 - 08:02 #11
Avatar billede petersen7913 Forsker
21. juni 2016 - 08:04 #12
Det her ser også fornuftigt ud:

http://holowczak.com/database-normalization/
Avatar billede terry Ekspert
21. juni 2016 - 09:12 #13
"Jeg kan sagtens få til med en combobox til at vise både Navn og tjeneste nr. Men access tillader jo kun at gemme det ene feltet."

That's why I'm suggesting you use a query which also contains fields from other tables. So after you have chosen navn then  tjenestenr will be show too.
Avatar billede dsj1972 Juniormester
08. august 2016 - 17:58 #14
Ved ikke om der er kommet en løsning på spørgsmålet, men jeg havde selv lidt af samme problem, og fandt gavn af denne video https://www.youtube.com/watch?v=rSPS24EfijI

og den gemmer fint alle data i alle felter i formular ind i den tabel.
Avatar billede dsj1972 Juniormester
25. august 2016 - 10:50 #15
dogtown,

Kunne du ikke lige kommentere hvad din løsning blev, således andre også kan få gavn af indlægs herinde. :)
Avatar billede dogtown Seniormester
29. august 2016 - 09:11 #16
Jeg fulgte rådene i den video  https://www.youtube.com/watch?v=rSPS24EfijI
Som du/dsj1972 kom med.
Kun tabel- og postnavn blev ændret i forhold til eksemplerne.
Avatar billede terry Ekspert
29. august 2016 - 12:26 #17
You may have found a solution from that video but at the same time you have introduced redundancy in your relational database.

"Data redundancy is a condition created within a database or data storage technology in which the same piece of data is held in two separate places. This can mean two different fields within a single database, or two different spots in multiple software environments or platforms. "
Avatar billede dsj1972 Juniormester
30. august 2016 - 13:39 #18
Ja, jeg har desværre også fundet ud af at det nok ikke er rette løsning. Der bliver ballade når man arbejder videre med det, Desværre
Så en løsning er det ikke!!

men terry,
er det så korrekt at lave Query baseret på sine tabeller og derefter lave subform baseret på sin Query hvor kombi boks er. Antager at man så på denne måde ikke får lavet skader på sine tabeller, som førnævnte løsning kan lave.

Nu har jeg indtastet en hel del data på denne måde, mister jeg dem hvis jeg laver om på mine forms/subforms så de bliver baseret på forspørgsler?
Men jeg bliver jo bl.a nød til at ændre felterne i de opringelige tabeller, hvis det skal virke rigtigt......Eller er det muligt at lave helt nye tabeller og derefter kopiere data fra gamle over i nye tabeller???

UPS.....skulle måske oprette et nyt spm med det her..

dsj
Avatar billede terry Ekspert
30. august 2016 - 14:54 #19
"er det så korrekt at lave Query baseret på sine tabeller og derefter lave subform baseret på sin Query hvor kombi boks er ..."

Yes, it should be possible and I would also think it possible to continue using the tables you have with just a few alterations.
You dont need the fields which duplicate your data but the information will be in the query.
Avatar billede terry Ekspert
30. august 2016 - 15:05 #20
Lets take the example you gave from YouTube.

If we used a query which contained the fields which were duplicated using code, then once the record was created the data from these fields should be visible in the sub form without having to move anything from one table to another.
Avatar billede dogtown Seniormester
31. august 2016 - 13:30 #21
Ja, jeg har desværre også fundet ud af at det nok ikke er rette løsning. Der bliver ballade når man arbejder videre med det, Desværre
Så en løsning er det ikke!!

Så aner jeg ikke hvad galt jeg har gjort! For det kører for mig!?!?!
Avatar billede terry Ekspert
31. august 2016 - 13:47 #22
"Så aner jeg ikke hvad galt jeg har gjort! For det kører for mig!?!?! "
??
If you can accept that you have redundancy (same data in more than one table) then OK. I was just pointing out that the solution found in the YT link gives redundancy.
Avatar billede dsj1972 Juniormester
07. september 2016 - 10:34 #23
Ja det virkede først også umiddelbart fint hos mig, indtil jeg fandt ud af problemmer hen af vejen. bl.a så bliver der oprettet opslags felter i de tabeller hvor kombi boks er lavet, og det skaber problemer for data typen så det pludselig ikke er ens til de andre relateret felter. Det resultere også i at det ikke er samme data som vises i tabel som i form, hvilket jeg syns er meget underligt. Jeg har så godt nok også en del flere tabeller , hvor jeg har oprettet forms på baggrund af disse tabeller.
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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Azure Architect

Center Denmark Fonden

Cloud Engineer

Capgemini Danmark A/S

Cloud Architect