Avatar billede t-johansen Juniormester
19. juni 2006 - 23:50 Der er 21 kommentarer og
2 løsninger

kopier værdi til kombiboks

Jeg har et registeringsnr der indtastes i en formular (lejekontrakt)  derefter har jeg to følgende kombibokse der slår værdien op i en konto database, hvor den ene er  bruger og den anden er betaler. disse er i denne formular ikke direkte tilkyttet registreringsnummeret.

Til selve registreringsnummeret og dens database er der tilgengæld et bruger konto nr og et betaler konto nr tilkyttet.

Kan man automatisk få kopieret de værdier ind i min formular når man har indtastet registeringsnummeret, hvor man så selv bagefter  kan ændre dem hvis nu betaler pludselig i et tilfælde er en anden.
 
formularen starter følgende:

indtast regnr
indtast bruger kontonr
indstast betaler kontonr


det er så i de sidste to den skal kopiere værdierne fra registreringsdatabasen, og det er vigtigt at den kun kopiere og ikke bare hvor den automatisk henter værdierne, da den ikke må hænge sammen med registreringsdatabasen.


Nøj det er lidt snørklet forklaret, men ved ikke ellers hvordan det skal forklares.

pointen er altså kopiere værdien fra et felt i registringsdatabasen til et felt i formularen som egentlig ikke hænger sammen, ligeså snart regnummeret bliver indtastet.
Avatar billede Slettet bruger
20. juni 2006 - 00:12 #1
Du kan prøve at sætte standardværdi på bruger/betaler kontonr til:

=DLookup("[DetEneEllerDetAndetKontonr]", "registreringsdatabasenDvsTabellen", "[regnr] = Forms!formularnavn!regnr")

eller du kan prøve at køre dlookup'en i vba på en afterupdate til regnr indtastningen!~)
Avatar billede Slettet bruger
20. juni 2006 - 00:13 #2
Jeg regner med at regnr er et numerisk felt ellers skal du bruge &, se access hjælp!~)
Avatar billede Slettet bruger
20. juni 2006 - 00:14 #3
Det kan i hvert tilfald gøres med dlookup, men jeg må indrømme, at det har drillet mig mere end en enkelt gang eller to!~)
Avatar billede mugs Novice
20. juni 2006 - 05:42 #4
Som spg skriver, må det kunne laves med en dlookUp:

DLookup("[kontonr]", "tabelnavn", "[feltnavn]='" & Me.kontonr & "'")

Hvor:

- kontonr er det felt i formularen hvori du indtaster
- tabelnavn er navnet på den tabel der indeholder data du vil hente (registreringsdatasen)
- feltnavn er navnet på det felt du vil hente

Ovennævnte syntaks er for et alfanumerisk felt. Er feltet numerisk skal du bruge denne:

DLookup("[kontonr]", "tabelnavn", "[feltnavn]=" & Me.kontonr & "")
Avatar billede Slettet bruger
20. juni 2006 - 06:43 #5
&~)
Avatar billede Slettet bruger
20. juni 2006 - 06:49 #6
Lige en mere:

DLookup("[Kontonr]", "tabelnavn", "[Regnr] = " & forms!formularnavn!regnr)
Avatar billede t-johansen Juniormester
20. juni 2006 - 09:02 #7
REgnr er består både af bogstaver og tal, men konto numre består kun af tal ved ikke om det gør nogen forskel, men vil lige prøve jeres forslag.
Avatar billede t-johansen Juniormester
20. juni 2006 - 09:13 #8
prøvede denne:

Private Sub regnr_AfterUpdate()
DLookup("[kundenr]", "dbo_VEHICLE", "[USER_CODE]=" & Me.kundenr & "")
End Sub

hvor
kundenr er feltet i formularen hvor der skal kopieres en værdi til.
dbo_VEHICLE er min registrerings tabel
USER_CODE er feltet i tabelen med bruger konto



Men den siger syntax error?
Avatar billede t-johansen Juniormester
20. juni 2006 - 09:15 #9
Men det er jo "regnr" den skal slå op i tabelen "dbo_VEHICLE" og finde tilhørende "USER_CODE" og kopiere denne værdi til "kundenr" i formularen
Avatar billede mugs Novice
20. juni 2006 - 10:30 #10
Du skal jo i din kode bestemme hvor værdien skal hen!!!

Me.kundenr =  DLookup("[regnr]", "dbo_VEHICLE", "[USER_CODE]=" & Me.kundenr & "")
Avatar billede t-johansen Juniormester
20. juni 2006 - 10:38 #11
Nu virker den delvis

Me.kundenr =  DLookup("[regnr]", "dbo_VEHICLE", "[USER_CODE]='" & Me.kundenr & "'")

skulle lige indsætte ''

men virker kun delvis pga den tager id nummeret fra tabelen dbo_VEHICLE istedet for USER_CODE og kopiere ned i "kundenr", ret underligt, da der jo ikke er noget der antyder at det er id'et den skal tage.
Avatar billede t-johansen Juniormester
20. juni 2006 - 13:22 #12
Har i en ide til hvorfor den tager ID nummeret fra dbo_VEHICLE tabelen frem for USER_CODE?
Avatar billede mugs Novice
20. juni 2006 - 13:56 #13
Nææ - Du har jo programmeret den til at hente regnr. Kan du sende db til.

mugs@mail.dk

som en zip, så vil jeg prøve at se på det efter fyraften.
Avatar billede t-johansen Juniormester
20. juni 2006 - 14:27 #14
kan desværre ikke sende den da den bruger sammenkædede tabeller fra vores hovedsystem.

dbo_VEHICLE er en sammenkædet tabel, som jeg kun har læse rettigheder til, den består blandt andet af:

BASIS_NUMBER som er primær nøgle
REGISTRER_NUMBER som er regnr
USER_CODE som er bruger kontonr
OWNER_CODE som er betaler kontonr

Min formular er baseret på en forespørgsel hvor der indgår felter fra dbo_VEHICLE bla ovenstående.

De to felter som jeg vil kopiere værdier til, er  kombibokse som slår værdien op i en dbo_COSTUMER tabel, for at sikre det eksisterer og hente flere informationer.



Jeg har prøvet at lave forespørgsler af dbo_VEHICLE uden basisnummer og så lave lookup i den i stedet frem for tabelen, men det ændrer ikke på det, den hiver stadig basisnummeret med over.
Avatar billede mugs Novice
20. juni 2006 - 14:48 #15
Hvad var fejlen?
Avatar billede t-johansen Juniormester
20. juni 2006 - 15:39 #16
Fejlen er at den henter basisnummeret fra dbo_VEHICLE tabelen, dog fra den korrekte post men den skal hente fra konto nummeret feltet i stedet (USER_CODE).
Avatar billede mugs Novice
20. juni 2006 - 16:31 #17
Vil det sige, at du stadig har fejl, selvom du har lukket spørgsmålet?
Avatar billede t-johansen Juniormester
21. juni 2006 - 07:53 #18
ja men jeres svar har jo gjort det, det skulle, så må jeg bare finde fejlen i det andet.
Fejlen må jo ligge et eller andet andet sted.
Avatar billede mugs Novice
21. juni 2006 - 09:33 #19
Så må det jo blot være at vælge det rigtige felt med kriterier. Din kode ser således ud:

DLookup("[regnr]", "dbo_VEHICLE", "[USER_CODE]='" & Me.kundenr & "'")

Den henter data fra feltet [regnr], hvis det er [USER_CODE]skal regnr erstattes med dette. Og så må du have et kriterie der definerer den bestemte post.
Avatar billede t-johansen Juniormester
21. juni 2006 - 10:37 #20
Tænkte lidt over hvad du havde skrevet, og kom pludselig i tanke om en omvej.

jeg kunne jo bare tilføje to ekstra skjulte tekstfelter som hiver bruger og betaler info fra dbo_VEHICLE og så kopiere deres data over i kundenr mv.

dog fandt jeg lige et andet lille problem.

Når man kopier værdien over så registrerer den ikke der er kommet en ændring i feltet hvilket så gør at jeg ikke får noget ud af at have en kode på Afterupdate som Requery'er min formular og underformular.

har du en let løsning til dette eller har jeg misforstået det?
Avatar billede mugs Novice
21. juni 2006 - 10:56 #21
AfterUpdate indtræffer efter opdatering af tabellen. Prøv at indsætte koden i BeforeUpdate.
Avatar billede t-johansen Juniormester
21. juni 2006 - 11:22 #22
Så tror jeg det er løst.

Flyttede min requery kode fra afterupdate til exit, men så fandt jeg ud af at det kun virkede med requery når man har havde tabuleret tilbage og frem igen, så måtte lige lægge lidt gentagelse på, men nu ser det ud til at virke.

Her er min requery kode (var det egentlig ikke også dig der hjalp med den?)

Private Sub Kombinationsboks162_Exit(Cancel As Integer)
Me!test_kontrakt_bruger_pris.Requery
Dim VARa As Long
DoCmd.GoToControl "regnrlejebil"
VARa = Me.Id
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
DoCmd.GoToControl "Kombinationsboks162"
Me!test_kontrakt_bruger_pris.Requery
DoCmd.GoToControl "regnrlejebil"
End Sub
Avatar billede mugs Novice
21. juni 2006 - 12:13 #23
Godt du fik det til at fungere. Jo - Jeg husker godt det spørgsmål ;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