- Offizieller Beitrag
Da es ja heutzutage nur noch "Apps" gibt und meine Damen im Büro dauernd die Zuordnung PLZ zu Bundesland benötigen, habe ich mal kurz diese "App" erstellt.
Eingabe PLZ und das zugehörige Bundesland wird ausgespuckt.
Vielleicht hat ja noch jemand Verwendung dafür. Nicht vergessen die "PLZ_BuLa.db" in das Skriptverzeichnis zu packen (als *.zip im Anhang).
Spoiler anzeigen
#Region - TimeStamp
; 2011-10-08 22:24:40 v 1.0
#EndRegion - TimeStamp
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
Opt('GUIOnEventMode', 1)
Local $aResult, $iRows, $iColumns
Local $sDB = @ScriptDir & '\PLZ_BuLa.db'
If Not FileExists($sDB) Then Exit MsgBox(0, 'Fehler', 'Datei: "PLZ_BuLa.db" befindet sich nicht im Skriptordner.')
$GUI = GUICreate("PLZ - Zuordnung Bundesland", 360, 111, 192, 124)
GUISetBkColor(0x4876FF)
GUISetOnEvent(-3, '_exit')
GUICtrlCreateLabel("PLZ", 80, 59, 33, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlCreateLabel("Bundesland", 24, 19, 89, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$inBuLand = GUICtrlCreateInput("", 128, 15, 200, 28, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFEC8B)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$inPLZ = GUICtrlCreateInput("", 128, 54, 60, 28, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
GUICtrlSetBkColor(-1, 0xF0FFF0)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
ToolTip('')
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
[/autoit] [autoit][/autoit] [autoit]_SQLite_Startup ()
_SQLite_Open($sDB)
While True
Sleep(50)
WEnd
Func _exit()
_SQLite_Shutdown()
Exit
EndFunc
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local Static $fShow = 0
Local $iIDFrom, $iCode, $hWndEdit, $sRead, $index
$hWndEdit = GUICtrlGetHandle($inPLZ)
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
Switch $ilParam
Case $hWndEdit
Switch $iCode
Case $EN_CHANGE
$sRead = GUICtrlRead($iIDFrom)
If StringLen($sRead) < 5 Then
If $fShow Then
GUICtrlSetData($inBuLand, '')
$fShow = 0
EndIf
Return $GUI_RUNDEFMSG
ElseIf StringLen($sRead) = 5 Then
_SQLite_GetTable(-1, "SELECT bula FROM tabelle WHERE plz = '" & $sRead & "';", $aResult, $iRows, $iColumns)
If $iRows Then
GUICtrlSetData($inBuLand, $aResult[2])
Else
GUICtrlSetData($inBuLand, 'Keine gültige Postleitzahl!')
EndIf
$fShow = 1
Else
GUICtrlSetData($iIDFrom, StringLeft($sRead, 5))
EndIf
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND