01. december 2004 - 12:32Der er
12 kommentarer og 1 løsning
beregne en persons alder næste år
Hej Eksperter: I en forspørgsel har jeg et datofelt "Født" i samme forspørgsel har jeg et beregnet felt "Alder" dette felt viser persones alder ved at kalde nedenstående funktion direkte i forspørgsel:
Public Function Alder(Dato As Date) As Integer If DateSerial(Year(Date), Day(Dato), Month(Dato)) > Date Then Alder = DateDiff("yyyy", Dato, Date) Else Alder = DateDiff("yyyy", Dato, Date) End If End Function
Dette ser ud til at virke, da den returneret alder passer. Spørgsmålet/opgaven er nu:
Kan man i en inputboks eller en popup form indtaste feks. årstallet 2005, klikke på Ok, og derefter få vist de personer der i det indtastet årstal fylder 55,60,65,70,75,80,85,90,95,100, og kun dem.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hatten af for dig, overchord! Jeg var ellers i gang med den helt store VB-funktion på 1800 linier kode og 87 forespørgler. Men dette er jo simpelt og genialt :o)
hehe takker Thomas men der skal nok lige lidt mere koed paa som aandersen siger.
aandersen -> Kan du give et eksempel paa hvordan det skal bruges? Der er to ting som er vigtige: 1) Slaar du en enkelt post op at gangen eller skal du loebe igennem en hel tabel? 2) Skal du returnre svaret paa hvilket rund eller halvrund alder eller blot at det ER er en saadan alder?
ok jeg har lavet et hurtigt eksempel hvor det er bygget ind i en forespoergsel. Jeg kan sende dig databasen hvis du gerne vil have det.
Alternativt er loesning: 1. Opret en forumlar med en texbox til indtastning af Aarstallet. Jeg kalder denne AAR. 2. Opret en ny forespoergsel og smid flg i SQL visningen: SELECT Table1.Navn, Table1.Fdag, Forms!Form1!AAR-DatePart("yyyy",Table1!Fdag) AS Fylder FROM Table1 WHERE (((([Forms]![Form1]![AAR]-DatePart("yyyy",[Table1]![Fdag])) Mod 5)=0));
3. Du skal have en knap paa Form1 som aabner denne forespoergsel idet det kun virker naar Form1 er aabnet og et tal er indtastet.
overchord> et lille eks. på hvordan det bruges: jeg har en forspørgsel "fsfødselsdage"i denne foresopørgsel indehoder så alle relevante felter for alle medlemmer i databasen fornavn,efter, adresse, født, e.t.c. Meningen var så at man skulle promtes for et årstal når forespørgsel åbnes, når et årstal så er tastet åbnes forspørgsel og de poster som beskrevet i spørgsmålet vises
Det eneste VBA du umiddeltbart vil have brug for er inde paa formularen hvor du indtaster aarstallet. Du skal have en knap som aabner forespoergslen (kan ogsaa goeres vha en makro istedet). Grunden til at jeg foretraekker at lave den i SQL'en fremfor at lave funktioner er at du under alle omstaendigheder skal bruge dataen fra det felt i formularen, hvorfor det er ligesaa nemt at smide det direkte ind fremfor at skulle gaa igennem to funktioner.
Hvis du absolut vil bruge funktioner kan du lave det som to funktioner du kan bruge i et foresporgsel istdet:
public Funktion InkluderAlder (Aarstal as integer, Foedt as Date) as Boolen dim Nylader as integer Nyalder = Aarstal - DatePart("yyyy", Foedt) if Nylader Mod 5 = 0 then InkluderAlder = True else IknluderAlder = False end if end function og
public Function BeregnAlder (Aarstal as integer, Foedt as Date) as Integer
BeregnAlder = Aarstal - DatePart("yyyy", Foedt)
end function
Herefter kan du saa referere til disse funktioner i din forespoergsel SELECT Tabel.fornavn, Tabel.Efternavn, Tabel.Adresse, BeregnAlder([Forms]![DinFormular]![Aar], [Tabel]![Foedt]) FROM Tabel WHERE InkluderAlder(Forms]![DinFormular]![Aar], [Tabel]![Foedt]) = True;
>Thomas,bestemt ikke, men jeg har jo pt. aldrig modtaget noget fra dig i dette forum som ikke har virket perfekt, så var det endt med 1800 linjer havede det såmænd være fint nok med mig, men selvfølgelig en masse slid for dig :o). En lidt anden snak på din hjemmeside opfordre du til at brugere specielt på mit niveu kan komme med forslag til fremtidige downloads, det ville være fantatisk med et eks. på generelle datofunktioner, søger man her på E er der mange rigtig mange indlæg omkring dette emne, men blot et forslag. :o)
aandersen -> Godt at du kunne brug den med stavefejl og taste-spader og hele molevitten :-) Jeg maa virkeligt laere at laese igennem mine poster foer jeg sender dem.
Synes godt om
Ny brugerNybegynder
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.