18. maj 2003 - 22:22Der 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.
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 & "'})"
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.
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å...
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)
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.....
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.