Avatar billede rosco Novice
24. maj 2002 - 23:40 Der er 24 kommentarer og
1 løsning

Gemme et beregnet felt i en formular.

I mit videokartotek har jeg et felt der beregner den tomme plads på et videobånd.(båndlængde-spilletid) er det muligt at gemme værdien i den underliggende tabel, så jeg kan søge på værdien.
Avatar billede mugs Novice
24. maj 2002 - 23:46 #1
Opret et felt i din tabel og navngiv det f.eks restplads. Træk feltet ind i din forespørgsel og derefter formular, og sæt feltets postkilde:

restplads = båndlængde - spilletid
Avatar billede mugs Novice
24. maj 2002 - 23:48 #2
Du har jo båndlængden i tabellen, og jeg går ud fra, at du også indtaster spilletiden. Koden kan du indsætte i feltet spilletid Before Update Event, idet jeg antager, at du indtaster båndlængden først.
Avatar billede terry Ekspert
24. maj 2002 - 23:49 #3
If you you have both the båndlængde + spilletid then you can search for a specific tape WITHOUT having another field.

Lets say that you have  a tape 180mins and you have used 120 therefor e there is 60 left

So
SELECT * FROM Tape where båndlængde-spilletid  = 60
Avatar billede terry Ekspert
24. maj 2002 - 23:50 #4
Or if you need an area > 30 minutes
SELECT * FROM Tape where båndlængde-spilletid  > 30
Avatar billede nih Novice
24. maj 2002 - 23:51 #5
Det ville være mere rigtigt IKKE at lave et ekstra felt i din tabel, men lave beregningen i din foresp.
Du kan også søge på en beregnet værdi :o)

Niels
Avatar billede nih Novice
24. maj 2002 - 23:53 #6
SELECT *
FROM tabel
WHERE bah bah Terry

;)
Avatar billede mugs Novice
24. maj 2002 - 23:53 #7
Nu har jeg så fået nærlæst dit spørgsmål, og du ønsker at gemme restplads i formularen. Du kan ikke gemme data i en formular, idet denne får data fra en tabel eller forespørgsel. Du er derfor nødt til at lade formularen beregne restplads hver gang formularen får status som Oncurrent. Indsæt koden i formularens OnCurrent Event på samme måde som dit forrige spørgsmål.

Alternativt kan du lade beregningen foregå i din forespørgsel, du skal så oprette et udtryk, og evt. ved hjælp af udtryksgeneratoren foretage beregningen her.
Avatar billede terry Ekspert
24. maj 2002 - 23:58 #8
Hi Niels
:o)
Avatar billede mugs Novice
25. maj 2002 - 00:02 #9
Sender en ny db, hvor beregningen ligger i en forespørgsel
Avatar billede terry Ekspert
25. maj 2002 - 00:07 #10
Or if you want the tape with the MOST free tape.
SELECT TOP 1, *, båndlængde-spilletid AS free FROM Tape ORDER BY båndlængde-spilletid DESC
Avatar billede terry Ekspert
25. maj 2002 - 00:08 #11
The calculation IS in a query mugs!
Avatar billede mugs Novice
25. maj 2002 - 00:12 #12
terry > can you explain your latest comment. As far I can see, I have not made any comment to your solutions.
Avatar billede terry Ekspert
25. maj 2002 - 00:14 #13
Well I cant see that it is necessary for you to send a dB "hvor beregningen ligger i en forespørgsel" when I have already given a number of answers with the calculation in a query. Thats all mugs!
Avatar billede mugs Novice
25. maj 2002 - 00:31 #14
Terry > 4 minutes between our answers does not mean, that I have "copied" Your answer. Earlier this evening I have answered a question from rosco concerning the same db, and therefore I had the testdb on my hd, and it was easy to send it with this new answer.
Avatar billede mugs Novice
25. maj 2002 - 00:35 #15
terry > Check this link. You have made a comment yourself, then you must know, thar I have send a db earlier this evening.

http://www.eksperten.dk/spm/215611
Avatar billede terry Ekspert
25. maj 2002 - 10:39 #16
mugs>First, we are ONLY talking about 30 points, so lets not worry about this so much.
There is nothing at all wrong in sending a dB with a solution in it. But if you send a dB with a query which VERY likely is similar to one of mine, then rosco WOULD more than likely accept YOUR answer because it would work without him having to do much himself. He wouldnt know if my solution worked BECAUSE he wouldnt need to try it! In the end even though my answer "may" be correct it would NOT get accepted! Tats all that I ma getting at mugs, and I dont want us getting upset about that just for 30 points :o)
Avatar billede mugs Novice
25. maj 2002 - 19:06 #17
terry > I agree with you, let's not get upset for 30 points. We have often made some answers, that were similar to other answers, and there are often more than 1 correct answer to the same question, and therefore I can't see, that there is anything wrong by giving an answer close to Yours.

I don't think the user rosco is very familiar with access, and therefore I thought, it was best to send the db, as I already did once earlier in the evening. And please remark: It is not a db with the solution, it is a db with a suggestion to a solution. Here is the SQL, so make up your mind if it is similar to Your's :o)

SELECT Tabel1.type, Tabel1.Båndlængde, Tabel1.spilletid, [Båndlængde]-[spilletid] AS Udtryk1
FROM Tabel1 LEFT JOIN type ON Tabel1.type = type.type;
Avatar billede rosco Novice
26. maj 2002 - 01:47 #18
Der er sandelig sket meget , mens jeg har været væk.
At lave beregningen i en forespørgsel, er prøvet tidligere, kan ikke bruges.
Båndnummer, båndlængde, resttid, type, mærke, er på en formular.
Optagelser dvs.Titel, spilletid, osv. ligger i en underformular. forespørgslen trækker bare spilletid fra hver enkelt optagelse,fra båndlængden.Jeg har en  =Sum([Spilletid]) (af alle opt på båndet)i underformularen, den værdi bruges så af feltet resttid. det felt kan der ikke søges i, medmindre jeg selv taster værdien i et felt knyttet til tabellen.
Avatar billede rosco Novice
26. maj 2002 - 02:06 #19
Ganske kort, Det jeg gør er,
i underform.(opt 1)+(opt2)+(opt3)= spilletidtotal.
I overform. Bånd 1: [båndlængde]-[Spilletidtotal].
det kan jeg ikke få en forespørgsel til at håndtere korrekt,
den tager ikke hensyn til båndnr.
det skulle lige være en forespørgsel pr båndnr.(dårlig joke).
02.00 det er vidst sengetid nu.
kigger forbi senere.
Avatar billede rosco Novice
15. juni 2002 - 00:58 #20
Jeg fandt løsningen på problemet
med denne kode til feltet.

Private Sub Resttid_Exit(Cancel As Integer)
Resttid = [Båndlængde] - [Spilletid]
End Sub
Avatar billede rosco Novice
03. august 2002 - 00:03 #21
Slut
Avatar billede rosco Novice
03. august 2002 - 00:04 #22
x
Avatar billede mugs Novice
03. august 2002 - 00:06 #23
Det var jo det vi svarede allerede i MAJ måned.
Godkend venligst et svar, så spørgsmålet kan lukkes.
Avatar billede rosco Novice
05. august 2002 - 21:33 #24
mugs:
Kan du ikke svare på denne kommentar så jeg kan gi point, da jeg ved en fejl fik afvist svar tidligere.
Det var først ved en senere gennemgang af svarene, at jeg så, at dit første svar var det jeg skulle bruge.
Tak for svarene.
Slut.
Avatar billede mugs Novice
05. august 2002 - 21:35 #25
Tak
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