Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Handle einer Textbox

137 views
Skip to first unread message

Artur Schmitt

unread,
Mar 1, 2007, 6:07:26 AM3/1/07
to
Hallo,

habe folgendes Problem:
Ich möchte in ACCESS eine Routine aus VB6 übernehmen, die mir ein MouseIN
und MouseOUT Event bei einer Textbox zur Verfügung stellt.
Das Problem ist nun, dass ich dazu die HWND der Textbox benötige. Im
Gegensatz zu VB6 hat die Textbox in Access keine Hwnd-Eigenschaft. Wie kann
ich diese dennoch ermitteln??

Schon mal DANKE im Voraus


Mark Doerbandt

unread,
Mar 1, 2007, 6:20:14 AM3/1/07
to
Hallo, Artur,

Artur Schmitt:

> Ich möchte in ACCESS eine Routine aus VB6 übernehmen, die mir ein MouseIN
> und MouseOUT Event bei einer Textbox zur Verfügung stellt.

was willst Du denn genau erreichen. Hilft Dir vielleicht ein MouseOver
des Controls und des umgebenden Bereiches weiter?

Gruss - Mark

--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.

Jörg Ackermann

unread,
Mar 1, 2007, 6:29:10 AM3/1/07
to
Hi,

Artur Schmitt wrote:

> Ich möchte in ACCESS eine Routine aus VB6 übernehmen, die mir ein
> MouseIN und MouseOUT Event bei einer Textbox zur Verfügung stellt.
> Das Problem ist nun, dass ich dazu die HWND der Textbox benötige. Im
> Gegensatz zu VB6 hat die Textbox in Access keine Hwnd-Eigenschaft.
> Wie kann ich diese dennoch ermitteln??

http://www.mvps.org/access/api/api0027.htm

Gruß

Artur Schmitt

unread,
Mar 1, 2007, 6:33:11 AM3/1/07
to
Hallo Mark,

was ich erreichen möchte ist, dass beim eintreten mit der Maus über das
Textfeld ein anderes Steuerelemet angezeigt wird und beim Verlassen dieses
wieder ausgeblendet wird. Wie gesagt, in VB kein Problem aber in ACCESS
krieg ich es nicht hin.

Gruß

Artur

"Mark Doerbandt" <spamre...@doerbandt.de> schrieb im Newsbeitrag
news:es6gdv...@dit8.doerbandt.de...

Jörg Ackermann

unread,
Mar 1, 2007, 6:37:41 AM3/1/07
to
Hi,

Artur Schmitt wrote:

> was ich erreichen möchte ist, dass beim eintreten mit der Maus über
> das Textfeld ein anderes Steuerelemet angezeigt wird und beim
> Verlassen dieses wieder ausgeblendet wird. Wie gesagt, in VB kein
> Problem aber in ACCESS krieg ich es nicht hin.

Dir steht MouseMove bei der Textbox, beim Detailbereich
und beim Formular zur Verfügung.
Damit sollte sich das realisieren lassen.

Gruß

Mark Doerbandt

unread,
Mar 1, 2007, 6:44:50 AM3/1/07
to
Hallo, Artur,

Artur Schmitt:

> was ich erreichen möchte ist, dass beim eintreten mit der Maus über das
> Textfeld ein anderes Steuerelemet angezeigt wird und beim Verlassen dieses
> wieder ausgeblendet wird.

Acki hat Dir ja schon einen Hinweis zum Handle von Access-Controls
gegeben.

Du koenntest wie schon erwaehnt mit OnMouseOver arbeiten und bei
OnMouseOver des umgebenden Bereiches das gewuenschte Element wieder
ausblenden, aber das ist bei schnellen Mausbewegungen nicht immer
zuverlaessig.

Was macht denn der Benutzer mit einem Steuerelement, das gleich wieder
weg ist - sprich, das er nie erreichen kann?

Mark Doerbandt

unread,
Mar 1, 2007, 6:47:31 AM3/1/07
to
Hallo, Acki,

Jörg Ackermann:

> Dir steht MouseMove bei der Textbox, beim Detailbereich
> und beim Formular zur Verfügung.
> Damit sollte sich das realisieren lassen.

ja, aber ist nur eine Notloesung - wenn der Anwender die Maus schnell
wegzieht, kommt oft das MouseMove auf den Detailbereich nicht.

Gruss - Mark

Mark Doerbandt

unread,
Mar 1, 2007, 6:46:42 AM3/1/07
to
Hallo,

Mark Doerbandt:

> Du koenntest wie schon erwaehnt mit OnMouseOver ...

arg - MouseMove.

Jörg Ackermann

unread,
Mar 1, 2007, 6:51:56 AM3/1/07
to
Hi,

Mark Doerbandt wrote:

> ja, aber ist nur eine Notloesung - wenn der Anwender die Maus schnell
> wegzieht, kommt oft das MouseMove auf den Detailbereich nicht.

Logisch.
Ggf. muß er noch benachbarte Controls einbeziehen.

Gruß

Jörg Ostendorp

unread,
Mar 1, 2007, 7:18:55 AM3/1/07
to
Hallo Artur,

> was ich erreichen möchte ist, dass beim eintreten mit der Maus über das
> Textfeld ein anderes Steuerelemet angezeigt wird und beim Verlassen dieses
> wieder ausgeblendet wird. Wie gesagt, in VB kein Problem aber in ACCESS
> krieg ich es nicht hin.

Das kannst Du am bequemsten über die undokumentierte accHittest-Funktion
des Formulares und einen Timer lösen, insbesondere wenn Du ein solches
"MousOver"-Event für viele Steuerelemente benötigst:

'Im Form:
Option Compare Database
Option Explicit

Private Type POINTAPI
x As Long
y As Long
End Type

Private Declare Function GetCursorPos _
Lib "user32.dll" ( _
ByRef lpPoint As POINTAPI _
) As Long

Private Sub Form_Load()
Me.TimerInterval = 10
End Sub

Private Sub Form_Timer()
On Error Resume Next
Dim pt As POINTAPI
Dim accobject As Object
GetCursorPos pt
Set accobject = Me.acchittest(pt.x, pt.y)
If Not accobject Is Nothing Then
Select Case accobject.Name
Case "Dein Controlname"
Me.Caption = "Control getroffen"
Case Else
Me.Caption = "Anderes Control getroffen"
End Select
Else
Me.Caption = "Kein Control getroffen"
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Me.TimerInterval = 0
End Sub


--
Grüßle vom Bodensee
Jörg Ostendorp

- Access-FAQ: www.donkarl.com
- my home: www.meersburg.de

0 new messages