Avatar billede moore Nybegynder
29. januar 2006 - 20:44 Der er 19 kommentarer og
1 løsning

dag+dato+access

Hej

Hvordan får man gjort således, at når jeg indsætter en dato i et datofelt i Access, så tilføjer den automastisk dagen. F.eks. 29-01-06 > Søndag
Skal man have en DB mere, hvor alle dagene står eller hvordan ?

Håber en kan hjælpe mig
Avatar billede lordnelson Seniormester
29. januar 2006 - 20:50 #1
Hvorfor skal du have det i en database ?
Hvis du har feltet dato er det nok
Det er når du henter daterne du kan tillægge den dagen eller lign
det andet er spild af plads
På samme måde som en varer
den har en indkøbspris uden moms
det er det eneste man behøver alt andet er et regnstykke udfra indkøbsprisen
det samme med din dato , du henter datoerne, og derefter kan du vise hvilken dag det er.

LN
Avatar billede moore Nybegynder
29. januar 2006 - 20:52 #2
Hmmm
Kan godt se at det er når man trækker data ud fra DB'en den selv skal genere dagen.
Men vil gerne have sådan, at når jeg skriver f.eks. 29-01-06 i et <input type> felt, så tilføjer den automatisk dagen i DB'en.
Så når jeg laver en "Select * from DB", så udskriver den også dagen.
Avatar billede lordnelson Seniormester
29. januar 2006 - 20:57 #3
Jamen når du henter op med "Select * from DB"
går jeg udfra du får datoen op?

I samme løkke du bruger maske Do while not eller for i = osv osv
Laver du en case der viser ugedagene .

Men hvis du meget gerne vil have det i databsen skal der laves et felt til det

LN
Avatar billede moore Nybegynder
29. januar 2006 - 21:03 #4
Vil nu helst have det som et felt i DB'en.
Men hvordan skal access sættes op..
Skal man lave en DB mere, hvor der står "mandag tirsdag osv osv".. som skal linkes sammen med den anden DB (altså den hvor man har dato osv)
Avatar billede mugs Novice
29. januar 2006 - 21:05 #5
I VBA kan du bruge denne:

Ugedag = WeekdayName(Weekday(Dato1, vbMonday), , vbMonday)

Hvor feltet Ugedag er et felt i din tabel.
Avatar billede moore Nybegynder
29. januar 2006 - 21:08 #6
ok.. men hvilket felt er så det datofelt, hvor jeg skriver f.eks. 29-01-06.. dvs.. den variabel som kommer ind?
Avatar billede mugs Novice
29. januar 2006 - 21:08 #7
I SQL denne:

Udtryk1: Weekday([dato1])

der returnerer en numerisk værdi referende til datoen i feltet dato1. Du kan så konjvertere denne værdi til et alfanumerisk udtryk i enten SQL (iff...) eller i VBA med en Select Case struktur.
Avatar billede mugs Novice
29. januar 2006 - 21:11 #8
Grundlæggende er det forkert at gemme værdier i tabellerne, hvis de kan genberegnes i en forespørgsel. Mit sidste forslag foretager en beregning af den numeriske værdi af en given dato.
Avatar billede -anders- Juniormester
29. januar 2006 - 21:11 #9
Som LN er inde på er det muligt automatisk at genere dagen ud fra et givnet datofelt fra din tabel. Jeg er dog ikke helt sikker på at det er det du søger, men prøv at evt. følge nedenstående:

Opret en ny forspørgsel medtag de relevante felter fra tabellen incl datofeltet. I en ny tom kolonne i denne forspørgsel kan du prøve at skrive:

Som LN er inde på er det muligt automatisk at genere dagen ud fra et givnet datofelt fra din tabel. Jeg er dog ikke helt sikker på at det er dt du søger, men prøv at evt. følge nedenstående:

Ugedag: Format([NavnPåDatoFelt];"dddd")

Nårdu efterfølgende køre denne forspørgsel vil det beregnet felt vise den aktuelle ugedag der matcher den dato du har fra din tabel.
Avatar billede -anders- Juniormester
29. januar 2006 - 21:12 #10
Sorry, der kom vist lidt for meget tekst med i indlægget :o)
Avatar billede moore Nybegynder
29. januar 2006 - 21:15 #11
Dvs.. jeg i ASP'en fyrer det her af
Ugedag = Format(Spilledato;"dddd")
og når jeg så laver min "Insert into" funktion.. så tilføjer den selv dagen?
Avatar billede mugs Novice
29. januar 2006 - 21:17 #12
Har ikke forstand på ASP - Beklager.
Avatar billede -anders- Juniormester
29. januar 2006 - 21:19 #13
ASP ?, desværre det kan jeg ikke hjælpe med, men i et rent accessmiljø ville det virke.
Avatar billede moore Nybegynder
29. januar 2006 - 21:21 #14
ok... Imorgen må jeg lige prøve at fyre det ind i min kode.. så tester det lige der :)
Avatar billede mugs Novice
29. januar 2006 - 21:23 #15
I SQL kan det se således ud.

Udtryk8: IIf([Udtryk7]=1;"Søndag";IIf([Udtryk7]=2;"Mandag";IIf([Udtryk7]=3;"Tirsdag")))

Hvor Udtryk er den numeriske værdi for en dat jf. mit tidligere indlæg. Du skal så blot fortsætte rækkefølgen.
Avatar billede lordnelson Seniormester
29. januar 2006 - 22:19 #16
Hvis du henter op fra din database med feks.
rs.open "select * from tabel", conn
eller hvad du nu bruger

Så har du nok også en løkke
feks. Do while not rs.eof
så kunne du gøre sådan:
<% do while not rs.eof
select case weekday(rs("dato"))
case 1
dag ="Søndag"
case 2
dag ="Mandag"
case 3
dag = "Tirsdag"
End select
case 4
dag = "Onsdag"
case 5
dag = "Torsdag"
case 6
dag = "Fredag"
case 7
dag ="Lørdag"

response.write dag

loop
rs.movenext

%>
LN
Avatar billede moore Nybegynder
30. januar 2006 - 10:04 #17
Lordnelson
Jeg tror måske vi har snakket lidt forbi hinanden.
Det som jeg tænker på er... Ligesom når du indtaster postnumre f.eks 8000, så skriver den selv i DB'en Århus
Er helt med på, hvordan jeg laver case osv :)
Avatar billede lordnelson Seniormester
30. januar 2006 - 12:22 #18
Ok
så er du en af de få der skriver Århus i din DB
i det når du har postnummer så går den til en anden tabel
og vælger byen i en relation en til mange
hvorfor skrive oplysninger flere gange i db
nå oplysningerne kan hentes fra data uden at skrives i Db
Men ellers kan du da' også bruge den case der er nu
og poste dagen i db istedet for , men stadig væk Hvorfor?

Ln
Avatar billede moore Nybegynder
30. januar 2006 - 12:45 #19
har lige prøvet den select case..
men da jeg allerede har en... Do -- Loop funktion. vil det ikke have jeg kører en Do-- Loop funktion mere..
Avatar billede moore Nybegynder
30. januar 2006 - 12:49 #20
mig som havde lavet en fejl.. det virker :)
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