Jag har problem med den här koden: I den kod jag testar med så är alla tabeller med i FROM. Om du testar att skriva ut båda kolumnerna i villkoret istället, "stämmer" det då? Jepp, dom är lika då. Men så fort jag har me DATEADD() i villkoret så får jag inte fram någonting. Byter jag ut DATEADD() till ett fast datum som jag vet existerar så fungerar det. Byter jag ut det mot en DATEADD() med ett fast datum och lägger till 0 sekunder så fungerar det också. Jag skulle vara försiktig med att använda lika med operatorn. Då datum representeras av flyttal är det inte alltid exakta. Det är en påminnelsefunktion jag vill få till. Tabell2.Sekunder innehåller antalet sekunder före utsatt tid som påminnelsen ska komma upp. Kan du förklar din datastruktur?Använda fält från en annan tabell i DATEADD()
<code>
SELECT Tabell1.ID FROM Tabell1 WHERE Tabell1.Datum = DATEADD('s', Tabell2.Sekunder, Now) AND Tabell1.Namn = Tabell2.Namn
</code>
Det jag vill göra är alltså att få fram ID:t från alla rader i Tabell1 där Namn (text) stämmer överrens med Tabell2.Namn (text) och där Tabell1.Datum är tiden nu + Tabell2.Sekunder (som är ett tal som representerar antalet sekunder).
Vad är fel? Eller ska jag göra på ett helt annat sätt?
ThomasSv:Använda fält från en annan tabell i DATEADD()
ThomasSv: Använda fält från en annan tabell i DATEADD()
SELECT Tabell1.ID, Tabell1.Datum, DATEADD('s', Tabell2.Sekunder, Now) FROM Tabell1, Tabell2 WHERE Tabell1.Namn = Tabell2.Namn
/JohanSv:Använda fält från en annan tabell i DATEADD()
ThomasSv: Använda fält från en annan tabell i DATEADD()
Testar jag DATEADD() med ett fast datum minus 1 minut och lägger till 60 sekunder så fungerar det inte.
Fungerar:
<code>#2007-02-05 23:55:00#</code>
Fungerar:
<code>DATEADD('s', 0, #2007-02-05 23:55:00#)</code>
Fungerar inte:
<code>DATEADD('s', 60, #2007-02-05 23:54:00#)</code>
ThomasSv: Använda fält från en annan tabell i DATEADD()
Det kan var det som strular för dig att det finns någon skillnad i värdet.
KAn du inte berätta mer om problemet och varför du skrivit denna fråga?
Så kan vi hjälpas åt att finna en lösning som fungerar för dig.Sv:Använda fält från en annan tabell i DATEADD()
Men det verkar faktiskt som att du har rätt angående flyttal. Gör jag om båda fälten till en sträng så fungerar det plötsligt.
<code>CSTR(Tabell1.Datum) = CSTR(DATEADD('s', 60, #2007-02-05 23:54:00#))</code>
Det känns väl dock lite som en ful-lösning... kan jag lösa det på något annat sätt?
ThomasSv: Använda fält från en annan tabell i DATEADD()
Jag antar att Tabell2 är en inställningstabell där användaren talar om antalet sekunder före utsatt tid påminnelsen skall komma upp.
Tabell1 innehåller händelser.
Därmed länkningen mellan namn på användaren.
När jag arbetar med påminelser brukar jag se det som att de förfaller. Jag jämför alltså Större eller mindre och likamed. På så sätt gör det inget att man missar lite. Man flaggar sedan vilka påminellser som skall har meddelats,
Om man tänker hur påminnelser i mobilen funkar så anger man en tipunkt för händelsen och en tidpunkt för påminelsen. T.ex. om jag skall till tandläkraen så bör jag ju bli måmind en timme innan så jag hinner ta bussen dit. Är det en påminnelse för ett möte så är det en kvart, osv. Man kan ha ett standrardvärde men möjlighet att själv ange.
Om du har ett fält för påminelse kan du sätt det till null om det inte skall vara någon påminnelse eller efter det att påminnelsen visats.