[Visual Basic] Access Gültigkeit

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von v!olenT, 23. Februar 2010 .

  1. 23. Februar 2010
    Access Gültigkeit

    Nabend

    Wir besprechen gerade in der Schule Gültigkeitsregeln in Access. Eine der Aufgaben
    lautet "Datum: Das Liederdatum soll nicht mehr als 30 Tage nach dem Bestelldatum liegen."
    Jedoch stellte sowohl uns Schüler als auch den Lehrer vor eine knifflige Aufgabe, denn auch er konnte sie nicht Lösen. Wir haben gedacht es wäre [Lieferdatum]<=[Bestelldatum]+30 aber es will einfach nicht funktionieren. Hoffe ihr könnt mir helfen. Wir Nutzen office 2003

    mfg
     
  2. 23. Februar 2010
    AW: Access Gültigkeit

    Puh, ich habe ehrlich gesagt noch nicht viel mit Access gearbeitet. Aber ich sehe das Problem.

    Es wäre die einfachste methode das Datum was ihr in einem bestimmte format habt : "DD.MM.YYYY" z.b. in einen Unix-Timestamp umzuwandeln.

    Welche Sprache herrscht in der Access-Datenbank (tut mir leid ich weiß es nicht)?
    Wenn es VB / VBA ist kann ich bestimmt fix was schreiben
     
  3. 23. Februar 2010
    AW: Access Gültigkeit

    keine ahnung kenn mich da nicht so aus :x vba kannte ich aus excel deshalb war mir das am vertrautesten. ich wusste auch net genau ob ich hier richtig bin ^^
     
  4. 23. Februar 2010
    AW: Access Gültigkeit

    Verstehe ^^

    Da ich jetzt nicht weiß welche Scriptsprache Access verwendet sagen wir einfach mal so :

    Anstatt strings wie :

    "22.02.2010" , "10.05.2009" miteinander zu vergleichen (und ewig viele String-operationen durchführt) ist mein gedanke gewesen das ihr das datum in einen Unix-Timestamp umwandelt und dann die differenzen vergleicht.



    Timestamp-Rechner z.b tut das mit Datumsangaben, allerdings ist das dann Javascript ^^ das wird GARANTIERT nicht in Access vorhanden sein.

    Aber um es zu versinnbildlichen :

    Heute ist : 2010-02-23
    Entspricht 1266883200 (Sekunden seit dem 1. Januar 1970 00:00 Uhr UTC)

    Bestelldatum = 1266883200

    vollkommen ohne datumsangabe, auch wenn schon vorhanden wäre lässt sich errechnen das in 30 tagen :

    24*60*60= 86400 (ein tag in sekunden)
    LieferZeitraumMax 86400 * 30 = 2592000 (30 tage in sekunden)

    1266883200 + 2592000 = 1269475200 (in Unix-Timestamp) ist
    Bestelldatum + LieferZeitraumMax= 1269475200 ...(in Unix-Timestamp) ist

    also muss Bestelldatum zwingend kleiner oder gleich (Bestelldatum + LieferZeitraumMax) sein.

    1269475200 = ist der 24.03.2010


    EDIT : uff ich glaub ich habs bissl kompliziert dargestellt, ich überarbeite das gleich nochmal ^^
    ________________________________________________________________________________________
    ________________________________________________________________________________________
    Einfacher (das oben bleibt noch stehen, damit ich nicht ins schleudern komme ^^)
    ________________________________________________________________________________________
    ________________________________________________________________________________________

    variable B = 23.02.2010 = Bestelldatum = 1266904800 (heute)
    variable L = XX.XX.XXXX = Lieferdatum = ? (in 30 tagen)
    variable T = 24*60*60 = Ein Tag In Sekunden = 86400

    Somit ist :
    B = 1266904800
    L = ?
    T = 86400

    Lieferdatum muss sein :
    L = B+(T*30)
    L = 1266991200

    Würde das aktuelle datum im Unix-Timestamp format > als L sein wäre die lieferung zu spät / schlecht...ähm..nicht mehr jungfräulich... wie auch immer.


    So zumindest ist nun die berechnung besser aufgebaut.
    Wie ihr nun String im format "DD.MM.YYYY" bzw "MM.DD.YY" oder ähnlich in einen Timestamp umgewandelt bekommt ist euch überlassen da ich das in Access nie gemacht habe (und auch auf die schnelle nix gefunden habe).

    Hoffe ich konnte trotzdem helfen , irgendwie ^^
    Mfg, Inqui
     
  5. 23. Februar 2010
    AW: Access Gültigkeit

    ne passt schon habs verstanden aber ka ob das funktionieren würde
    müsste ich morgen mal ausprobieren ^^
    über weitere alternativen würd ich mich freuen

    mfg

    Edit: vielen dank dir erstmal für deine mühe ich hab dir mal ne gute bewertung gegeben
    ich schau es mir morgen mal an hab mein notebook gerade nicht hier
     
  6. 25. Februar 2010
    AW: Access Gültigkeit

    Würde mich intressieren ob mein vorschlag zum erfolg führte oder undurchführbar war/ist
     
  7. 27. Februar 2010
    AW: Access Gültigkeit

    ich habe es nicht hinbekommen, jedoch hat ein mitschüler eine lösung gefunden ^^
    wie er es gemacht hat weiß ich jedoch nicht war so ca in der letzten sekunde vor schulschluss
     
  8. 27. Februar 2010
    AW: Access Gültigkeit

    [Lieferdatum]<=[Bestelldatum]+30 du kannst es bei den Tabellen versuchen als Gültigkeitsregel anzugeben oder per VBA (Visual basic for Applications) probieren. Per vba
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.