Search  

   

Latest News  

Problemstellung:Wenn man Etiketten drucken will steht man oft vor einigen Problemen.1. Man möchte nur ein paar Etiketten drucken und beim nächsten Druck braucht man wieder   ein neues Blatt weil freie...
   

Latest Forumposts  

  • Keine Beiträge vorhanden
   

Kommentare  

Tut mir leid Hella, ich kann Dir nicht folgen? 13.04.2017 - 14.04.2017 ergibt bei mir 1 13.04.2017 -...
Gast - Hella
Hallo, Berechne wie folgt, ob "zu früh" oder "zu spät" Rückmeldet. Früher sollte auch mit negativer ...
Gast - Hella
Hallo, mit negativen Werten meine ich z.B. -5 Tage (ohne Wochenende) u.ä. Zur Zeit wird nur die 0 au...
Hallo Hella, wie negative Werte? Kannst Du es erläutern was Du machen willst? Gruß Tommy
Gast - Hella
Hallo, ich bräuchte auch negative Werte bei der Anzahl, wie kann man das realisieren? Liebe Grüße He...
   

Counter  

1071908
HeuteHeute499
GesternGestern1070
Diese WocheDiese Woche1569
Dieser MonatDieser Monat12446
GesamtGesamt1071908
Highest 07.12.2017 : 1250
US
UNITED STATES
US

This page uses the IP-to-Country Database provided by WebHosting.Info (http://www.webhosting.info), available from http://ip-to-country.webhosting.info

   

Download Statistik  

Diese Site enthält 187 Downloads in 30 Kategorien. Gesamtdownloads bisher: 233272
   
Free live stats and visitor counter for Joomla, Wordpress, Drupal, Magento and Prestashop
   

Login

   

User Online

Total: 37 Members: 0 Guests: 37
No members online
   

Beiträge

Input- und Message Box Variationen

Bewertung:  / 4
SchwachSuper 
Details

Problemstellung:
Aufzeigen verschiedene Möglichkeiten von Input- und MessageBoxen mittels API und externen DLL's.
Ziel war verschiendene Möglichkeiten zu zeigen. so z.B.:
- Inputboxen, deren Eingabe mittels *** wie ein Kennwort angezeigt wird.
- Messageboxen die unabhägig von Access sind, sprich, jeglicher Code läuft im Hintergrund weiter.
- Buttons von Messageboxen können andere Beschriftungen bekommen ohne ein seperates Formular zu erstellen.
- Messageboxen werden nach einer bestimmten Zeit automatisch geschlossen ohne Useraktivität.

Diese Bsp-DB stellt eine Zusammenstellung einiger Lösungen verschiedener Autoren dar.
Das Copyright der nicht von mir stammenden Codes liegt bei diesen.

Voraussetzungen:
Das Bsp ist unter A00, AXP, A03 lauffähig, unter A07 wurde es nicht getestet.
Die Funktions-DLL "VBEx32.dll", enthält die nonmodale MsgBox. (wird nicht registriert)

Folgende DLL wird vom Programm benötigt und bei der Installation in das Windows-Systemverzeichnis kopiert

 

Funktionsweise:

1. Inputbox mit Kennworteingabe
Möchte man eine Kenwortabfrage mittels einer Inputbox machen, steht man vor dem Problem, das die Eingabe im Klartext erfolgt.

Schöner wäre es doch das die Eingabe mittels "***" angezeigt wird. Nun ist das ohne weiters nicht möglich.
Enweder Ihr bastelt da ein Formular das aussieht wie ein Inputbox oder Ihr nehmt diese Lösung mittels API.

 


Auf den Code gehe ich nicht weiter ein (s. Bsp-DB).
Die erforderlichen Parameter sind die gleichen wie bei der Standard Inputbox.
Die Parameter könnt Ihr zur Demo im Form verändern.



Um es in der Praxis zu nutzen müsst Ihr das Modul "mod_PW_InputBox" in Eure DB kopieren.
Es gibt einen kleinen Unterschied in der Programmierung.
Ihr könnt nicht der Input-Funktion den Beschriftungs- und Meldungstext direkt übergeben.
Im Modul "mod_PW_InputBox" sind 2 Variablen deklariert, die später gefüllt werden.

Public sCaption As String   'Überschrift der Inputbox
Public sMlg As String       'Meldungstext der Inputbox

2. Access unabhängige Messagebox

Manchmal möchte man den User nur über Programmaktivitäten informieren, ohne dass das Programm angehalten wird.
Jetzt könnte man auch hier was eigenes machen in der Form das ein seperates Formular erstellt wird oder aber
es wird eine MS-Access unabhängige Messagebox benötigt.
Die
VBEx32.dll enthält so eine MsgBox.
Diese MsgBox arbeitet im Prinzip wie eine normale MsgBox mit den gleichen Konstanten wie die normale MsgBox,
aber diese Box wartet keine Eingabe des Users ab. Es ist zwar möglich andere Buttons als OK darzustellen aber nicht sehr sinnvoll.
Die Funktion "VBEX_UserAction" gibt den Rückgabewert der MsgBox. Die Rückgabe erfolgt aber erst nach dem Schliessen der MsgBox.
Genaueres, wie Konstanten usw. s. Bsp-DB.
So sollte die MsgBox aussehen:


Und so die Taskleiste:

Jetzt kann der User die MsgBox bestätigen oder sie wird automatisch geschlossen.
Egal auf jeden Fall läuft der Programmcode im Hintergrund weiter ab.
Um die MsgBox automatisch zu schliessen hab ich eine kleine Sub geschrieben.

' wird für das Schliessen der nonmodalen MsgBox benötigt
Declare Function FindWindowEx Lib "user32" _
  Alias "FindWindowExA" ( _
  ByVal hWnd1 As Long, _
  ByVal hWnd2 As Long, _
  ByVal lpsz1 As String, _
  ByVal lpsz2 As String) As Long
 
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal Hwnd As Long, ByVal wMsg As Long, _
         ByVal wParam As Long, lParam As Any) As Long
    
Public Const WM_CLOSE = &H10
Public Sub CloseWindow(strNameWindow As String)
'*******************************************
'Name:      CloseWindow (Sub)
'Purpose:   schliesst die angegebene nonmodale MsgBox aus der VBEx32.dll
'           wenn nur ein OK-Button vorhanden ist,
'           benötigt die API's FindWindowEx
'Author:    Thomas Keßler
'Date:      Februar 11, 2003, 08:26:47
'Inputs:    Name des Fensters
'Output:
'*******************************************
Dim lhWnd As Long
    On Error Resume Next
    lhWnd = FindWindowEx(0, 0, vbNullString, strNameWindow)
    Call SendMessage(lhWnd, WM_CLOSE, 0&, 0&)
    
End Sub

Der Aufruf könnte dann so aussehen, als Parameter wird der Name der MsgBox erwartet.

CloseWindow "Bitte warten..."

Für die Verwendung müsst Ihr die VBEx32.dll in das WindowsSystem-Verzeichnis kopieren (nicht registrieren)
Und das Modul "mod_vbex_MsgBox" muss in Eure DB.

3. Messagebox mit eigenen Button Beschriftungen
Immer ein beliebtes Thema sind das ändern der Standardbeschriftungen Messagebox-Buttons.
Die meisten Lösungen laufen auf ein seperates Formular hinaus, das auch Sinn macht bei langen Beschriftungen.
Bsp-DB dazu s. hier: Ersatz für die Standard MessageBox mit benutzerdefinierten Buttonbschriftungen
Die hier vorgestellte Lösung lässt zwar lange Beschriftungen zu, aber es hat nur Sinn mit max. 15 Zeichen.
Das Ergebnis sähe so aus:

 

 

 

Der Aufruf der Funktion "CoolBox" erwartet als Parameter den Fensterhandle, die Beschriftung
der MsgBox, die Buttonbeschriftung(en) und das Icon.

Dim nButton As Long
nButton = CoolBox(Me.Hwnd, _
  "CoolMsgBox mit 1 Button und beliebiger Buttonbeschriftung", _
  "CoolBox", "Ist mir egal!", , , Question


Der Rückgabewert ist beim 1. Button=1, beim 2. Button=2, beim 3. Button=3
Um es in der Praxis zu nutzen müsst Ihr das Modul "mod_MsgAPI_1" in Eure DB kopieren

4. Messagebox die MS-Access anhält sich aber nach bestimmter Zeit automatisch schliesst
Manchmal ist es erforderlich dass das Programm kurz angehalten wird um eine Info auszugeben.
Wobei es nicht erforderlich ist das User eine Aktivität zeigt.
Deshalb sollte es möglich sein das diese MsgBox nach einem freidefinierbaren Zeitraum automatisch geschlossen wird.
Benötigt wird dafür das Modul
"mod_MsgAPI_2"
Da die Funktion auch MsgBox heisst wird dadurch die Standard Messagebox ersetzt.
Erfolgt der Aufruf so:

Dim lngButton As Long
lngButton = MsgBox("Das ist eine normale MsgBox", _
                   vbCritical + vbOKOnly, "Hinweis")


wird ein normale Standard MsgBox angezeigt.
Mit dem nächsten Bsp. wird die MsgBox automatisch nach 5 Sek geschlossen.

' MsgBox nach 5 Sekunden schließen
Dim lngButton As Long
lngButton = MsgBox("Das ist eine API-MsgBox die sich nach 5 Sek autom. schliesst", _
                   vbInformation + vbOKOnly, "Testtime", , , 5)


Da hier teilweise komplexe API-Funktionen verwendet werden haftet
der Urheber nicht für eventuell auftretende Datenverluste oder sonstige Schäden
durch diese Bsp-Datenbank oder deren auszugweisen Nutzung.


Dateien:
Input- und Message Box Variationen

Input- und Message Box Variationen
für A00-A03 , A07 nicht getestet

Die Setup-Datei enthält eine Version ab A00

Datum 09.01.2008 Dateigröße 311.18 KB Download 3352

 

Einen Kommentar verfassen

Als Gast kommentieren

0 / 300 Zeichen Beschränkung
Dein Text sollte zwischen 10-300 Zeichen lang sein
Nutzungsbedingungen.
  • Keine Kommentare gefunden