Avatar billede Jane Knudsen Nybegynder
18. maj 2003 - 22:22 Der er 8 kommentarer og
1 løsning

UserForm med Dato-input

Kan det lade sig gøre at lave en Userform, hvor input skal være en "FraDato" og en  "TilDato". Disse to værdier skal indsættes som det vises i dette udsnit fra en VBA Excel Makro:

TRANSDATE Between {ts '2003-03-16 00:00:00'} And {ts '2003-04-15 00:00:00'})

Jeg kunne også tænke mig, at Userformen kunne kaldes direkte fra regnearket.
Avatar billede martin_moth Mester
19. maj 2003 - 15:07 #1
Yep - indsæt blot to tekstfelter på din userform

Disse indsætter du så i din TRANSDATE-sætning. For at få vist din userform, kan du jo lave en macro, der viser userformen : Userform1.Show
Avatar billede Jane Knudsen Nybegynder
19. maj 2003 - 15:56 #2
Vil du vise hvordan. (Jeg er fuldstændig og helt aldeles på begynderstadie i VBA Excel)
Avatar billede martin_moth Mester
19. maj 2003 - 16:04 #3
Optag en macro. Tilføj en form inde i VBA-editoren. I macroen skriver du Userform1.Show (hvor Userform1 er navnet på den form du har tilføjet). Således loades formen, når du afvikler macroen.
På formen smider du to tekstboxe og en commandbottom. I _click-eventen på din commandbottom skriver du f.eks. følgende:

Dim Start as String
Dim Slut as String
Start = Text1.text 'Text1 = navnet på den første textbox
Slut = Text2.text 'Text2 = navnet på den anden textbox

Herefter gør du hvad du nu skal gøre med din transdate-sætning. Om det er en der skal afvikles fra en macro, eller hvad det er, aner jeg ikke, men det må du jo selv vide. Hvis du vil skrive transdate-sætningen til en variabel gør du sådan her:

Dim Transdate
Transdate = "TRANSDATE Between {ts '" & Start & "'} And {ts '" & Slut & "'})"
Avatar billede Jane Knudsen Nybegynder
19. maj 2003 - 16:11 #4
Jeg har allerede optaget makroen, hvor jeg "manuelt" havde sat datoen ind. Det jeg gerne vil er, at når jeg åbner regnearket (eller trykker på en makro-knap), så får jeg en boks, hvor jeg kan sætte de to datoer ind og de dataer jeg får returneret fra SQL-databasen er mellem disse to datoer. Sådan som jeg lige kan se det, så er dit svar lige netop det jeg søgte og du skal have mange, mange tak.
Avatar billede martin_moth Mester
19. maj 2003 - 16:16 #5
Du har nu alle "grundelementerne" - så er der bare tilbage at skrive koden, og måske tilpasse. Hvis der ALTID står 00:00:00, er der ingen grund til også at skulle indtaste det hver gang der indtastes datoer. Det ændrer du meget simpelt ved:

Transdate = "TRANSDATE Between {ts '" & Start & " 00:00:00''} And {ts '" & Slut & " 00:00:00''})"

Så skal du altså i textboxene blot skrive
2003-03-16 og 2003-04-15

NB: Når du dobbeltklikker på den trykknap du har smidt på din form, kommer du automatisk ind i _Click eventen for den kontrol. Du spørger videre hvis der er noget du ikke er helt med på...

/Martin
Avatar billede martin_moth Mester
19. maj 2003 - 16:18 #6
PPS: Man kan altid forbedre - dag, måned og år kunne vælges fra nogle dropdows-boxe, så sikrer du dig imod at der indtastes noget nonens fra brugeren. Sådan er der ALTID forbedringsmuligheder, men jeg har på fornemmelsen at det bare er et spørgsmål om at få det til at virke - så kan man altid forbedrer hen ad vejen ;o)
Avatar billede Jane Knudsen Nybegynder
19. maj 2003 - 16:18 #7
Tusind tak, Martin

/Jane

P.S. Det er træls, man ikke kan printe svaret ud, uden at miste noget af teksten til højre.
Avatar billede martin_moth Mester
19. maj 2003 - 16:21 #8
Det kan du også. Marker hele skidtet, og kopier det over i word, notepad, eller lignende, og udskriv derfra :o)
Avatar billede Jane Knudsen Nybegynder
19. maj 2003 - 16:22 #9
Det er også sådan jeg gør det, men det havde været smart, hvis der var en "Printer-venlig-version" på siden - men det er noget helt andet.....
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
Kurser inden for grundlæggende programmering

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