Avatar billede brianringsted Nybegynder
16. december 2004 - 19:26 Der er 20 kommentarer og
1 løsning

Sæson ud fra dato

Jeg kan ikke få vinter måneden til at virke hvad har jeg gjort galt, jeg kan jo ikke ændre datoen i select case. Så passer de ikke til sæsonen. Sæsonerne vil altaid være inde for den angivne
dato. F.eks. 1-12 til 28-2 er lig med vinter.

Her er koden som jeg har indsat i datofeltet.

Private Sub Dato_BeforeUpdate(Cancel As Integer)
Select Case Dato
Case #1/12/2005# To #2/28/2005#
Sæson = "Vinter"
Case #1/6/2005# To #8/31/2005#
Sæson = "Sommer"
Case #1/3/2005# To #5/31/2005#
Sæson = "Forår"
Case #1/9/2005# To #11/30/2005#
Sæson = "Efterår"
End Select
End Sub

Det er sæsonen(vinter) som ikke bliver vist fra 1-12 til 28-2, resten virker fint.

Please hjælp mig, det er ret irriterende at det ikke kan lade sig gøre.

Hilsen Brian

Jeg er villig til at sende databasen.
Avatar billede mikkelk Nybegynder
16. december 2004 - 19:35 #1
Private Sub Dato_BeforeUpdate(Cancel As Integer)
Select Case Dato
Case #1/12/2005# To #31/12/2005#
Sæson = "Vinter"
Case #1/1/2005# To #2/28/2005#
Sæson = "Vinter"
Case #1/6/2005# To #8/31/2005#
Sæson = "Sommer"
Case #1/3/2005# To #5/31/2005#
Sæson = "Forår"
Case #1/9/2005# To #11/30/2005#
Sæson = "Efterår"
End Select
End Sub
Avatar billede mikkelk Nybegynder
16. december 2004 - 19:37 #2
F.eks.
Med: Case #1/12/2005# To #2/28/2005# tager de fra slutningen af året til starten af året - det kan man ikke... alternativt kunne det vel også være til 2/28/2006
Avatar billede brianringsted Nybegynder
16. december 2004 - 19:57 #3
Jeg har lige prøvet at insætte koden, men det virker ikke, problemet bliver også
hvis jeg vil skrive et andet fangstår, hvad gør jeg så.
16. december 2004 - 19:59 #4
Hvorfor ikke gøre den generel, så den også virker de næste mang år:

Private Sub Dato_BeforeUpdate(Cancel As Integer)
Select Case Month(Dato)
  Case 12, 1, 2
    Sæson = "Vinter"
  Case 6, 7, 8
    Sæson = "Sommer"
  Case 3,4,5
    Sæson = "Forår"
  Case 9,10,11
    Sæson = "Efterår"
End Select
End Sub
Avatar billede mikkelk Nybegynder
16. december 2004 - 20:06 #5
Udmærket forslag fra Thomas
Avatar billede brianringsted Nybegynder
16. december 2004 - 20:23 #6
Tak skal du have,det virker bare fedt nok. Hvordan skal valliderings reglen se ud hvis folk indtaster en ugyldig dato ind eller at man havner i et skudår. Hvis jeg vil undgå at man indtaster noget ugyldigt.
16. december 2004 - 20:33 #7
Hvis feltet er defineret som DATO-felt, KAN brugeren ikke indtaste noget ugyldigt (Access tillader det simpelthen ikke).

Skudår er heller ikke noget problem, da month(#29-2-2004#) stadig er 2
Avatar billede brianringsted Nybegynder
16. december 2004 - 20:40 #8
tak, jeg prøver at expermenter lidt med dato indtastninger, for at se om der fremkommer nogle fejlmeddelser. De skulle helst komme frem så brugeren kan forstå dem og ikke i access.
Avatar billede brianringsted Nybegynder
16. december 2004 - 20:48 #9
Man kan ikke indsætte ved fejl i egenskaber i datofeltet. hvis jeg indtaster den 32-11, så vil jeg have en makro som kan fortælle at dette datovalg kan ikke fortages. hvor gør jeg dette. Undskyld hvis jeg er på vej i et sidespor. det er det sidste spørgsmål.
Avatar billede mugs Novice
16. december 2004 - 21:03 #10
brianringsted > Først skal du kontrollere, at dit datofelt i tabellen er af dato-typen. I den db du sendte mig, er det et tekstfelt. Nedenstående fjerner Access indbyggede advarsler og opretter din egen:

Private Sub Dato_BeforeUpdate(Cancel As Integer)
On Error goto errorhandler
Docmd.setwarnings = False
Select Case Month(Dato)
  Case 12, 1, 2
    Sæson = "Vinter"
  Case 6, 7, 8
    Sæson = "Sommer"
  Case 3,4,5
    Sæson = "Forår"
  Case 9,10,11
    Sæson = "Efterår"
End Select
errorhandler:
MsgBox "Du har indtastet en ugyldig dato."
Me.Undo
docmd.setwarnings = True
End Sub
Avatar billede brianringsted Nybegynder
16. december 2004 - 21:50 #11
tak skal du have, jeg tjekker den og retter ovenstående.
Avatar billede brianringsted Nybegynder
16. december 2004 - 21:57 #12
der skrives en fejlmeddelse efter at jeg har rettet dato feltet. og at jeg indtaster den 38-11. hvorfor
Avatar billede brianringsted Nybegynder
16. december 2004 - 21:58 #13
der fremkommer ikke en msgbox. med ugyldig dato.
Avatar billede mugs Novice
16. december 2004 - 22:00 #14
Er det Access fejlmeddelelse du ser på skærmen? I givet fald så send mig lige db.
Avatar billede brianringsted Nybegynder
16. december 2004 - 22:05 #15
ja, jeg sender den lige med det samme.
Avatar billede mugs Novice
16. december 2004 - 22:32 #16
Der må jeg lige godt melde pas. Jeg har taget fejl, når det drejer som om et datofelt, kan man ikke bare annullere valideringsreglerne med en setwarnings false.

hmm - Beklager Brian.
16. december 2004 - 23:00 #17
Mugs, du manglede også lige en Exit Sub før Errorhandler:-linien.

Jeg ville gøre det således, hvis Dato-feltet er tekst:

Private Sub Dato_BeforeUpdate(Cancel As Integer)
If IsDate(Me!dato) then
  Select Case Month(cvdate(Dato))
    Case 12, 1, 2
      Sæson = "Vinter"
    Case 6, 7, 8
      Sæson = "Sommer"
    Case 3,4,5
      Sæson = "Forår"
    Case 9,10,11
      Sæson = "Efterår"
  End Select
else
  msgbox "Ugyldig dato!", vbexclamation, "Fejl i dato!"
  Me!Dato.Undo
  docmd.Cancelevent
endif
End Sub
Avatar billede mugs Novice
17. december 2004 - 00:08 #18
Ja - Ingen er jo fejlfri. Jeg skal lære at holde mig fra databaser efter at have været på arbejde siden Kl 7 imorges.
Avatar billede brianringsted Nybegynder
17. december 2004 - 18:38 #19
jeg har ændret datofeltet til dato og klokkeslet, er det så den samme kode som jeg kan indsætte.?. Eller hvad?
17. december 2004 - 18:43 #20
sÅ skulle du kunne nøjes med mit første forslag:

Private Sub Dato_BeforeUpdate(Cancel As Integer)
Select Case Month(Dato)
  Case 12, 1, 2
    Sæson = "Vinter"
  Case 6, 7, 8
    Sæson = "Sommer"
  Case 3,4,5
    Sæson = "Forår"
  Case 9,10,11
    Sæson = "Efterår"
End Select
End Sub
Avatar billede brianringsted Nybegynder
17. december 2004 - 19:05 #21
tusinde tak , så er jeg nået så vidt. og det virker fetdt. Denne database har drillet mig noget så forskrækeligt. Fordi at jeg vil have det til at virke professionalt, og brugervenligt.
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