16. december 2004 - 19:26Der 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.
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
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
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
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.
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.
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.
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
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.
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
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
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.
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.