Jeg skal bruge en formular der viser en oversigt over det kommende år fra dags dato eller evt. bare kalenderåret. Jeg tænker at det findes, og at der er nogle der ved hvor det kan købes, lånes, ses eller bare kan komme med gode ideer til hvordan det kan udformes uden alt for meget bøvl.
Der er mange måder at gøre det på. Det er helt afhængig af hvad du skal bruge det til. Kan du give lidt flere oplysninger, så vil det være nemmere at give et eksakt forslag.
Det skal være en oversigt over nogle registreringer, der som udgangspunkt skal kunne vises som en farvemarkering, og vælges til og fra. Jeg forestiller mig at trykke på en knap på en formular, der så åbner en den nye oversigt, hvor man kan se på hvilke dage, der er registreret noget. Det er vel i virkeligheden bare en årskalender... På sigt skal det være muligt at vælge til og fra eksempelvis alle hverdage, lør -søndage eller andre vaglmuligheder. Således at hvis jeg registrerer en opgave, så skal den kunne gentages på bestemte dage, lidt ala outlook, men bare lidt mere grafisk og uden alt for meget lir. En side/formular der viser på hvilke dage en given opgave er noteret, og med mulighed for at vælge yderligere dage eller slette nogle af de valgte. eventuelt med en dropdown til at vælge mellem de forskellige typer opgaver. Rimeligt simpelt og jeg tror også godt at jeg kune lave det selv, men hvis det bare ligger et sted og venter, kan jeg da godt være opgaven foruden.
Det hjalp. Jeg har en lille fil, som du kan bruge som udgangspunkt. Det er ikke hvad du ønsker, men som en start indtil vi sporer lidt tættere på en løsning.
jeg har prøvet at lave en kalenderformular, i kan selv arbejde videre med den.
denne makro laver formularen
Public Sub Kalender() Dim MDato As Date, DDato As Date Dim frm As Form Dim ctlLabel As Control, ctlText As Control Dim intDataX As Integer, intDataY As Integer Dim intLabelX As Integer, intLabelY As Integer Set frm = Forms![Kalender] intLabelX = 500 intLabelY = 350
For I = 1 To 12 MDato = "01-" & I & "-2005" ' ret 2005 til dit år Dato = DateAdd("m", 1, MDato) - 1 For T = 1 To Day(Dato) DDato = T & " - " & I & " - " & Year(MDato)
Private Sub Form_Activate() Set Me.Recordset = Forms!Kalender.Recordset Me.Recordset.MoveFirst Do For Each ctl In Me.Controls If ctl.Name = Str(Me.Recordset.FDag) Then ' ret FDag til dit dato felt ctl.BackColor = vbGreen End If Next Me.Recordset.MoveNext Loop Until Me.Recordset.EOF End Sub
formularen skal have tabellen med datoer som datakilde
kabbak> Det var det jeg søgte om end designet godt kan trænge til et løft, så når du nu ikke har lavet den endelige udgave, må jeg vel selv;-)
Har lieg et spørgsmål til denne del:
Do For Each ctl In Me.Controls If ctl.Name = Str(Me.Recordset.FDag) Then ' ret FDag til dit dato felt ctl.BackColor = vbGreen
goto stopfor
End If Next
stopfor:
Me.Recordset.MoveNext Loop Until Me.Recordset.EOF
Hvordan får jeg stoppet loopet når der er en dato der passer? Der er vel ingen grund til at løbe alle controls igennem for hver record, bruger jeg goto som ovenfor eller noget lignende?
nej , hvis den finder den, så kan den jo ligesågodt hoppe ud, så det med stopfor er fint.
Men du kan nøjes med
Do For Each ctl In Me.Controls If ctl.Name = Str(Me.Recordset.FDag) Then ' ret FDag til dit dato felt ctl.BackColor = vbGreen exit for End If Next Me.Recordset.MoveNext Loop Until Me.Recordset.EOF
Ja designet, det trænger, men jeg skulle jo også i seng og i skal vel ikke have alting serverer helt færdig, der skal være noget til fantasien at arbejde med.
Så hvis du kan lave designet via koden, vil jeg meget gerne se den igen.
Jeg tror jeg nøjes med den skrabede udgave indtil videre, og så må jeg se om den skal udbygges til det jeg havde forestillet mig med 12 kasser af 7*6 et år frem fra dags datos måned. Det er ikke lige design der har højeste prioritet lige nu, men send et svar og så skal jeg sende dig nogle point. Tak for hjælpen.
Hov, lige en sidste ting. Vil det ikke være smartere at oprette formularen med tekstfelter i stedet, så jeg kan fange det aktive objekt ved klik, hvis jeg skal kunne gemme nye datoer fra kalenderen?
ja, men kan jeg fange hvilket af de mange der bliver trykket på med eks. screen.activecontrol? Eller er jeg nødt til at have et funktionskald på samtlige labels?
jaa, det er nok det sidste, men du kan jo bare lave så koden der opretter formularen, laver tekstbokse i stedet for labels.
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.