RalleMedlem sedan feb. 2003210 inlägg Jag har inspelningsbara DVD-skivor.
Jag använder mig av två tabeller. En där jag lägger var jag har skivan o.s.v. den fungerar även som skivans nummer. Sen den andra tabellen, där har jag filmen, start o stopptid o lite annat.
Tabellerna är ihopkopplade med ett fält som heter skiva, där har jag nummret på skivan från första tabellen.
Med hjälp av ett fält som heter LÄNGD (där finns längden på skivan t.ex. 2.00), och fältet för stopptid som heter filmlängd2.
OBS
Fältet LÄNGD ligger i första tabellen.
Om fältet LÄNGD innehåller 2.00, o fältet filmlängd2 innehåller 1.45, så är det ju 15 minuter kvar skivan.
Jag vill göra en rapport som visar hur mycket som finns kvar baserad på en fråga. Om jag har en film jag vill spela in som är 15 minuter lång, så ska jag kunna skriva 0.15, så ska rapporten skriva ut dom skivorna som innehåller 15 minuter eller mer.
Detta gäller rapport i Access 2000, inte en hemsida.
Hoppas någon förstår vad jag menar.
Engine^Medlem sedan dec. 20003 887 inlägg Frågan:
SELECT a.skiva, DateDiff("n", längd, filmlängd) AS tidKvar
FROM tabellA a
INNER JOIN tabellB b ON a.skiva = b.skiva
WHERE DateDiff("n", längd, filmlängd) > [Minuter kvar];
Frågan är ju bara att förfina...
RalleMedlem sedan feb. 2003210 inlägg Problemet är att den tar alla poster.
huvudtabellen heter Inspelad_DVD_skiva där finns
Nr, automatisk uppräkning av antalet skivor
LÄNGD, där finns längden på skivan t.ex. 4.00
lite andra fält men dom används inte i det här exempl.
Tabell 2 heter Inspelad_DVD_film där finns
Nr automatisk uppräkning av antalet filmer
Skiva, kopplingen till nr i huvudtabellen
Film, namnet på filmen
Filmlängd1, det är starttiden
Filmlängd2, det är stopptiden
lite andra fält men dom används inte i det här exempl.
Om jag nu har skiva 1, den innehåller 2 filmer.
Första filmen 0.00 (starttid) 1.30 (stopptid)
Andra filmen 1.30 -"- 3.00 -"-
Det betyder alltså att det är 1 timme kvar att spela in på.
Om jag då söker på 1 timme så vill jag ju att den ska räkna från den andra filmen (posten), för att då visa den tiden som är kvar.
Men den visar båda.
Hur göra?
RalleMedlem sedan feb. 2003210 inlägg OBSERVERA att:
LÄNGD, Filmlängd1 o Filmlängd2 är formaterade som tid i tabellen.
Formatet är:t.nn
Nu har jag lagt till ett fält som jag döpt till tidkvar, och lagt in den kvarvarande tiden manuellt för alla poster.
Då fungerar sökningen precis som jag vill.
Men jag skulle vilja kunna köra en uppdateringsfråga för att få det lite mer automatiserat.
Så här ser koden ut:
UPDATE Inspelad_DVD_skiva INNER JOIN Inspelad_DVD_film ON Inspelad_DVD_skiva.Nr = Inspelad_DVD_film.Skiva SET Inspelad_DVD_skiva.Tidkvar = Tidkvar="LÄNGD-Filmlängd2";
Hur gör jag för att få den att spara tiden i fältet?
Det här fungerar inte riktigt.
RalleMedlem sedan feb. 2003210 inlägg Vet någon om GROUP BY fungerar när man använder UPPDATE?
Engine^Medlem sedan dec. 20003 887 inlägg Eftersom en UPDATE inte genererar ett resultat kan du inte heller använda GROUP BY.
UPDATE Inspelad_DVD_Skiva IDs
INNER JOIN Inspelad_DVD_film IDf ON IDf.Skiva = IDs.Skiva
SET IDs.Tidkvar = #" & LÄNGD-Filmlängd2 & "#" [red][i]<-- Jag begriper inte riktigt vad du vill spara här[/i][/red]
RalleMedlem sedan feb. 2003210 inlägg Som jag skrivit tidigare här, så vill jag att värdet från LÄNGD-Filmlängd2 ska läggas in i fältet Tidkvar.
Om fätet LÄNGD innehåller värdet 4.00 o fältet Filmlängd2 innehåller värdet 2.00 så blir det 2.00 kvar.
Problemet verkar vara när det finns mer än en film. Då måste den ju ta den sista posten som är kopplat till skivnumret i första tabellen.
Därför tänkte jag använda UPPDATE istället. För att få automatik i det hela.
RalleMedlem sedan feb. 2003210 inlägg
Engine^ skrev:
Eftersom en UPDATE inte genererar ett resultat kan du inte heller använda GROUP BY.
UPDATE Inspelad_DVD_Skiva IDs
INNER JOIN Inspelad_DVD_film IDf ON IDf.Skiva = IDs.Skiva
SET IDs.Tidkvar = #" & LÄNGD-Filmlängd2 & "#" [red][i]<-- Jag begriper inte riktigt vad du vill spara här[/i][/red]
Jag vill spara summan av LÄNGD-Filmlängd, till Tidkvar.