23. september 2002 - 14:43Der er
25 kommentarer og 3 løsninger
Standardværdi
Jeg har en formular, hvor man indtaster dato og så en masse andet. Jeg vil gerne have den til i dato-feltet, at have som standardværdi den senest indtastede dato. Hvordan gør jeg det?
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Jeg har en formular, hvor man indtaster dato og så en masse andet. Jeg vil gerne have den til i dato-feltet, at have som standardværdi den senest indtastede dato. Hvordan gør jeg det?
Not quite sure I understand what you wnat to do but IF you want to enter the current date in a field when you start creating a new record, then you set the deafult value for the field in table DESIGN to date()
forestil jer at I skal indtaste en masse forskellige ting under samme dato...så er det irriterende hele tiden at skulle indtaste den samme dato, for hver ny ting der skete på denne dato derfor mit spm.
Hvis du med senest indtastede dato mener den højeste værdi, så kan du bruge terry's forslag. Men du skriver ikke noget om, hvorvidt den seneste indtastede dato altid er højeste værdi. Hvis du f.eks skal ajourføre en db for hændelser der skete tidligere end idag, nytter det ikke at benytte Dmax.
Du er i sådanne tilfælde nødt til at sætte feltets standardværdi (Defaultvalue) til den sidst indtastede værdi i formularen. Nedenstående kode sætter dafaultvalue i tabellen, alt efter hvad du indtaster i formularens felt1. Jeg skal dog tilføje, at koden kun fungerer i en anden tabel end den, der i øjeblikket er åben.
Dim db As DAO.Database Set db = CurrentDb Dim tbl As TableDef Set tbl = db.Tabledefs("Tabel2") tbl.Fields("felta").DefaultValue = Me.felt1
pyha...jeg troede det var et let spm., men tak for jeres ihærdige forsøg. Til mugs: hvor skal denne kode skrives? (jeg er ikke så stiv i det her) Til Terry: problemet med din løsning er netop at den finder den største dato og ikke den senest indtastede - og det er den jeg er ude efter.
Mine tanker går lige nu på, om man kunne gøre sådan noget i denne retning: når formularen åbnes er det ok at der ikke står noget i datofeltet. man indtaster sine data (herunder datoen). Når man så går ud af datofeltet kunne den måske gemme/huske det indtastede og indsætte det i næste post (indtil man lukker formularen - så skal man begynde forfra, hvilket er ok). Kan det være vejen frem?
jeg har nu prøvet mugs forslag og det virker sådan set...bare ikke helt til det jeg skal bruge det til. Det sætter standardværdien i en ny tabel som jeg har oprettet til lejligheden, men det var jo standardværdien i formularen jeg ville sætte. Kan man ikke få den til at gemme den indtastede værdi i en variabel eller lignende og så sætte standardværdien i formularen til denne værdi?
Du har jo fået svaret på, hvordan du får en standardværdi i tabellen. Herefter kan du benytte terry's forslag, til at hente max værdien ind i din formular. I formularens OnCurrent hændelse kan du indtaste terry's kode, og sætte dit datofelt således:
Dato = Dlookup("TheDate", "theTable", "ID = " & Dmax("ID", "theTable"))
Du bliver dog nødt til at tilføje et ID til den nye tabel, så den højeste værdi findes, f.eks et Autonummereringsfelt så den sidst indtastede dato dermed får det højeste autonummerværdi.
Min sidste kommentar mangler noget. Hvis du sætter koden ind i formularens OnCurrent, vil datafeltet få den maksimale værdi. Det betyder, at du ikke kan åbne formularen uden at datofeltet skifter værdi, og det kan ikke være meningen. Derfor er du nødt til at sætte en betingelse på:
If Me.NewRecord Then Dato = Dlookup("TheDate", o.s.v. o.s.v End If
Nu vil feltet kun hente en ny dato hvis du opretter en post.
avalon116> If you do NOT have an autonumber then you CAN NOT find the last inserted record. So you MUST add an ID column to your table and make it an autonumber. Then thsi WILL find the last inserted record and NOT the highest date. Dato = Dlookup("TheDate", "theTable", "ID = " & Dmax("ID", "theTable"))
ja det lyder til at det må være løsningen. jeg har ikke haft tid til at afprøve endnu, men I får jeres point. jeg ved ikke hvad der er bedst, sp I må dele. håber det er ok.I hvert fald tak for hjælpen.
mon man kan få den til at overskrive data i den nye tabel, så der hele tiden kun er et felt (det felt som man henter standardværdien fra)?
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.