Statistikfunktionen in Abfragen verwenden

By , 18. Januar 2014

Zur statistischen Auswertung von Datenreihen können in Abfragen Funktionen eingesetzt werden wie z.B. AVG() für den aritmetischen Mittelwert oder StDev() für die Standardabweichung.
Eine nicht ganz triviale Aufgabe wäre es z.B., wenn man das gespeicherte Bestelldatum von Bestellungen in einer Tabelle hat, und jetzt den durchschnittlichen Bestellabstand in Tagen ermitteln möchte.

Manuell ist das leicht zu lösen indem man die Abstände zur nächsten Bestellung in Tagen aufsummiert und durch die Anzahl Bestellungen -1 dividiert. Beispiel:

  1. Bestellung: 12.10.2013
  2. Bestellung: 18.10.2013
  3. Bestellung: 23.10.2013
  4. Bestellung: 02.11.2013
  5. Bestellung: 14.11.2013

Die Bestellabstände sind: 6 Tage, 5 Tage, 10 Tage und 12 Tage.
In Summe 33 Tage geteilt durch 5-1 ergibt einen durchschnittlichen Bestellabstand von 8,25 Tagen.

Möchte man das nun in einer Abfrage berechnen lassen, brauchen wir also immer das Datum vom aktuellen Daten und das Datum vom folgenden Datensatz. Daher müssen wir die Bestell-Tabelle 2x in die Abfrage einbinden einmal mit Alias T1 und einmal mit Alias T2, und der Bedingung dass das Bestelldatum von T2 kleiner dem Bestelldatum von T1 sein muss. Fangen wir also erst mal damit an die Bestellabstände aufzulisten:
Read more »

Steuerung von Fußschalter oder Joystick

By , 16. Januar 2014

Um Ereignisse zu erfassen die von einem Fußschalter oder einem Joystick ausgelöst werden, kann man sich der Methoden von DirectX bedienen. Im vorliegenden Beispiel wird die Version DirectX8 verwendet, d.H. Sie benötigen einen gültigen Verweis auf die „DirectX 8 für Visual Basic Type Library“. Dazu benötigen Sie die registrierte Datei dx8vb.dll auf Ihrem Computer.
Nach dem nun der Verweis gesetzt wurde kann mit der Deklaration der Objekte begonnen werden. Dazu verwende ich die Early-Binding Variante um die DirectX-Konstanten verwenden zu können:
Im Deklarationsteil des Formulars:

Private Const BufferSize As Long = 10
Private DX As DirectX8
Private DI As DirectInput8
Private DIEnum As DirectInputEnumDevices8
Private DIDevice As DirectInputDevice8
Private hEvent As Long
Implements DirectXEvent8

Im Load-Ereignis werden die Objekte dann Instanziert:

    Set DX = New DirectX8
    Set DI = DX.DirectInputCreate
    Set DIEnum = DI.GetDIDevices(DI8DEVCLASS_GAMECTRL, DIEDFL_ATTACHEDONLY)
    ' kein Gerät gefunden dann Abbruch
    If DIEnum.GetCount = 0 Then Exit Sub

Die Verwendeten Konstanten beim Zugriff auf die Geräte können hier nachgelesen werden:
DirectInput8::EnumDevices
Read more »

OfficeFolders theme by Themocracy