Avatar billede fcjohn Nybegynder
17. marts 2005 - 13:19 Der er 13 kommentarer

Oversigt over et år

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.
Avatar billede mugs Novice
17. marts 2005 - 14:24 #1
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.
Avatar billede fcjohn Nybegynder
17. marts 2005 - 14:35 #2
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.

Lidt rodet, hjalp det?
Avatar billede mugs Novice
17. marts 2005 - 15:32 #3
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.

Læg din e-mail hvis du vil have den.
Avatar billede fcjohn Nybegynder
17. marts 2005 - 15:40 #4
Kan jeg sende dig den internt på en måde eller skal jeg skrive den her?
Avatar billede mugs Novice
17. marts 2005 - 16:28 #5
Mail til:

mugs@mail.dk
Avatar billede kabbak Professor
18. marts 2005 - 00:25 #6
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)

Set ctlLabel = CreateControl(frm.Name, acLabel, , , " " & Format((DDato), "DD") & " ", intLabelX * I, intLabelY * T)
ctlLabel.Name = DDato

Next
Next
DoCmd.Restore
End Sub


i formularen skal denne kode ind

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

god fornøjelse

kabbak
Avatar billede kabbak Professor
18. marts 2005 - 00:27 #7
husk lige at for alle labels skal bagrundstype sættes til normal, inden det virker.
Avatar billede fcjohn Nybegynder
18. marts 2005 - 12:17 #8
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?
Avatar billede kabbak Professor
18. marts 2005 - 14:35 #9
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.
Avatar billede fcjohn Nybegynder
18. marts 2005 - 14:42 #10
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?
Avatar billede kabbak Professor
18. marts 2005 - 14:50 #11
labels virker også ved klik
Avatar billede fcjohn Nybegynder
18. marts 2005 - 14:53 #12
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?
Avatar billede kabbak Professor
18. marts 2005 - 14:58 #13
jaa, det er nok det sidste, men du kan jo bare lave så koden der opretter formularen, laver tekstbokse i stedet for labels.
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