Avatar billede twm Nybegynder
01. oktober 2001 - 15:19 Der er 18 kommentarer og
1 løsning

Overføre værdi fra en celle til en anden!

Hej
Jeg har brug for at have data i et felt, som er et regne stykke af et andet felt plus et tal, dvs:
----------------------------
|    id    |    datafelt  |         
|    2    |        490    |
|    3    |        491    |         
|    4    |        492    |
|    5    |        493    |
----------------------------

id er primære autonummererings nøgle, datafelt er afhængig af id, datafelt = id + 488

det skal være på tabel niveau og ikke som forespørgsel

Er der nogen der kan hjælpe med det?

Mvh
Torben
Avatar billede mugs Novice
01. oktober 2001 - 15:22 #1
Du kan ikke på tabelniveau sammenligne 2 felter, og tildele det ene indholdet af det andet.

Du er nødt til at bruge en VBA-procedüre i en formular eller en SQL-sætning i en forespørgsel.
Avatar billede terry Ekspert
01. oktober 2001 - 15:22 #2
twm to do this you need to create your records in a form. You CAN NOT use the value of another field as the default value propery.
01. oktober 2001 - 15:22 #3
Hvorfor vil du ikke have det på forespørgselsniveau?

Du kan IKKE lave det direkte på tabelniveau. Du kan lave en formular, hvor du koder dig frem til at Datafelt = ID+488.
Er det det, du ønsker?

/Thomas

Avatar billede terry Ekspert
01. oktober 2001 - 15:26 #4
In the forms before insert event
place the following code

me.datafelt = Me.id + 488
Avatar billede twm Nybegynder
01. oktober 2001 - 15:30 #5
Det jeg gerne ville have var at hvis brugeren sidder og kører rundt i tabelen, skal det være de rigtige numre der står, så de ikke bare er på formularen de er rigtige.

Er der nogen der kan give et eksempel på en makro en eller en procedure, der kan ændre værdien af feltet, så snart det er færdigoprettet. Dvs så snart brugeren trykker pil ned af i tabelen, så ændres værdien til det rigtige?
01. oktober 2001 - 15:32 #6
På FørOpdatering (Before Update) på formen placeres følgende linie:

Me!datafelt = Me!id + 488

/Thomas
Avatar billede twm Nybegynder
01. oktober 2001 - 15:33 #7
En anden løsning er selvfølgelig også:
Kan man ændre værdien i et autonummererings felt så det bliver et tal der er højere end det der er der nu?
Databasen er tom lige nu!

01. oktober 2001 - 15:36 #8
Tryk Ctrl+G og skriv:

docmd.runsql \"INSERT INTO [Tabelnavn] ( ID ) SELECT 488;\"
efterfulgt af ENTER

/Thomas
01. oktober 2001 - 15:38 #9
(...fortsat)

Du skal selvfølgelig erstatte [Tabelnavn] med navnet på din egen tabel.

Sætningen skal skrives i Immidiate-vinduet, som fremkommer neders i kodevinduet, når man trykker Ctrl+G

/Thomas
Avatar billede terry Ekspert
01. oktober 2001 - 15:38 #10
twm> The user should NOT have access directly to the table they should use a from for looking at the data. I assume that the value 488 is fixed so I would suggest that youdisable the datafelt field so thatusers cant alter it.
In the fields properties on the form  you can set the enabled to No and Locked to yes. This stoppes the user from changing the contents (ID+488) and because it gets set when creating a NEW record it CAN be done in the BEFORE INSERT event!
Avatar billede twm Nybegynder
01. oktober 2001 - 15:40 #11
mange tak thomas
Avatar billede terry Ekspert
01. oktober 2001 - 15:41 #12
twm what was the final solution?
Avatar billede twm Nybegynder
01. oktober 2001 - 15:43 #13
i used the ctrl + g and inserted the statement


Avatar billede terry Ekspert
01. oktober 2001 - 15:46 #14
OK! but was this what you originally asked for?
Avatar billede twm Nybegynder
01. oktober 2001 - 15:58 #15
I had a primary field that was not corresponding to the data I had, so the user had made the id+value in the form field to correct that.

So the question I asked for, was to make the correction in another field and just use that field as the datafield.
01. oktober 2001 - 16:57 #16
Terry, do you think, you should have the points? Is that why You ask this question?
Avatar billede terry Ekspert
01. oktober 2001 - 18:28 #17
Not at all Thomas, twm is allowed to give his points to who ever he pleases.
Just thought it was strange that he asked one question and gave points to another. If he had given ta more accurate explanation to the problem then we could have given a more precise answer first time.
01. oktober 2001 - 19:58 #18
Well, if there is one thing, that history has taught us, it is that it is very difficult to ask the correct questions, when you\'re not an expert. ;o)
As I see it, he didn\'t know that you could change the starting-value of a autonumber. Therefore he suggested another solution at the beginning. That\'s not unusual.

/Thomas
Avatar billede terry Ekspert
02. oktober 2001 - 08:04 #19
You\'re quite right Thomas:-)
mvh
Terry
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