Avatar billede pongobear Nybegynder
27. august 2008 - 10:20 Der er 12 kommentarer og
1 løsning

Kombinationsboks og teksboks afhængighed

Jeg har en kombinationsboks, som indeholder tal, der indikere ugenummer i formatet yyyyww. F.eks. uge 29 i 2008 er 200829.

Jeg har også teksboks, hvis indhold jeg gerne vil have til at blive opdateret når kombinationsboksen ændres af brugeren. Mere specifikt, jeg vil gerne have, at indholdet af teksboksen altid er kombinationsboksværdi + 5.

Hvordan gør jeg dette?

ITumpen
Avatar billede mugs Novice
27. august 2008 - 10:48 #1
"ugenummer i formatet yyyyww"

Du bør ændre db således, at du indtaster en dato og kun viser yyyyww som feltets format. Så kan du bruge en DateAdd.

Hvis din combo virkelig er tal, har du et problem da uge 200851 vil give 200856 so jo ikke eksisterer.
Avatar billede terry Ekspert
27. august 2008 - 12:21 #2
your code will need to convert the year/week to a date whereafer you can use dateadd to add 5 weeks (35 days)
Avatar billede terry Ekspert
27. august 2008 - 12:24 #3
Here is a link which will help you find the date of the monday in a given year/week

http://www.cpearson.com/excel/DateTimeVBA.htm

Then in the comboboxes after update even you can set the textbox to the value you find from the code in the link
Avatar billede pongobear Nybegynder
27. august 2008 - 12:52 #4
Der er to kolonner i kombinationsboksen, én som viser netop yyyyww og en anden som viser dd-mm-yyyy i datoformat. Kun yyyyww-tallet vises.

Lad os sige, at jeg kan foretage dateadd, hvordan og hvor foretager jeg dette?

ITumpen.
Avatar billede terry Ekspert
27. august 2008 - 13:37 #5
Me.YourTextField = DateAdd("ww", 5, Me.YourCombo.Column(?))
Avatar billede terry Ekspert
27. august 2008 - 13:39 #6
Column numbers start from 0 !
Avatar billede terry Ekspert
03. september 2008 - 13:45 #7
status?
Avatar billede pongobear Nybegynder
05. september 2008 - 12:27 #8
Hej Terry,

Jeg har skiftet tekstboksen ud med en kombinationsboks. Nu har jeg altså to kombinationsbokse. Den første hedder "DatoStart" og den anden hedder "DatoSlut".

Hver kombinationsboks har to kolonner. I den anden kolonne er dato'er i formatet dd-mm-yyyy og i den første kolonne er data, der viser hvilken uge dato'en tilhøre i følgende format, yyyyww

Hvordan får jeg automatisk tallet i "DatoSlut" til at være 5 uger mere end tallet i "DatoStart" efter "DatoStart" er opdateret af brugeren??

- Hvor taster jeg udtrykket??
- Hvad er udtrykket??

ITumpen
Avatar billede terry Ekspert
05. september 2008 - 18:12 #9
you need to place the code in the after update event for DatoStart combo

and the code should look something like this (not tested)

Me.DatoSlut = DateAdd("ww", 5, Me.DatoStart.Column(0))

Thats if the dd-mm-yyyy is in the first column which I assume is hidden.
Avatar billede pongobear Nybegynder
08. september 2008 - 08:48 #10
Hej Terry,

Well, that is progress - changing the DatoStart box is now making the DatoSlut box change, but the change is not five weeks, but 7 * 5 = 35 weeks. Also, the dd-mm-yyyy is the second column (hidden). The first column (shown) is the yyyyww.

Is the solution close?

ITumpen?
Avatar billede terry Ekspert
08. september 2008 - 11:27 #11
Then maybe try

Me.DatoSlut = DateAdd("ww", 5, Me.DatoStart.Column(1))
Avatar billede pongobear Nybegynder
08. september 2008 - 12:36 #12
Hej Terry,

I needed the following:

Me.DatoSlut = Int((Year((DateAdd("ww", 4, Me.DatoStart.Column(1))))) & Format((DatePart("ww", (DateAdd("ww", 4, Me.DatoStart.Column(1))), 2)), "00"))

You sent me in the right direction, so the points are yours.

ITumpen
Avatar billede terry Ekspert
08. september 2008 - 13:52 #13
thanks
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