Olá, gostaria de saber se alguém tem uma idéia para solução do seguinte problema:
Tenho um formulário. Dentro dele tem um subformulário. A origem de dados desse subformulário é uma consulta.O subformulário possui diversas caixas de texto dispostas em linha de forma que cada caixa representa uma coluna. Se a consulta encontra 50 registros, aparecem 50 linhas no subformulário, dispostos como se fossem uma lista.
Atualmente, quando passo o mouse por cima de cada linha, o ponteiro muda para o formato da mão (para selecionar a linha). Quando clico em cada linha abre um outro formulário com maiores detalhes desse registro. Mudei o formato do ponteiro com a seguinte código:
Private Sub Modelo_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseCursor (32649)
End Sub
O formulário dos detalhes abre com:
Private Sub Modelo_Click()
Moldura50.SetFocus
DoCmd.OpenForm "DetalhesAlvoX"
End Sub
Modelo é o nome de uma caixa de texto, existem outras, todas alinhadas horizontalmente.
O mesmo código está repetido para cada caixa de texto e como as caixas estão lado a lado, o usuário não percebe diferença, dando a impressão que basta clicar em qualquer local da linha para abrir outro formulário com detalhes daquele registro específico.
Até aí tudo bem, mas gostaria de saber se é possível fazer que a linha na qual se encontra o mouse mudasse a cor de fundo.
Bastaria mudar a cor de fundo das caixas de texto, posso colocá-las lado a lado, com a borda transparente.
Tentei formatação condicional e uma instrução backcolor no VBA. Mas não dá certo, porque ele muda a cor de todas as linhas quando o mouse passa por cima e não da linha selecionada.
A função que muda o ponteiro do mouse é:
Option Compare Database
Option Explicit
'Constantes para identificar os diversos tipos de ponteiro do mouse
Public Const IDC_APPSTARTING = 32650&
Public Const IDC_HAND = 32649&
Public Const IDC_ARROW = 32512&
Public Const IDC_CROSS = 32515&
Public Const IDC_IBEAM = 32513&
Public Const IDC_ICON = 32641&
Public Const IDC_NO = 32648&
Public Const IDC_SIZE = 32640&
Public Const IDC_SIZEALL = 32646&
Public Const IDC_SIZENESW = 32643&
Public Const IDC_SIZENS = 32645&
Public Const IDC_SIZENWSE = 32642&
Public Const IDC_SIZEWE = 32644&
Public Const IDC_UPARROW = 32516&
Public Const IDC_WAIT = 32514&
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long
Function MouseCursor(CursorType As Long)
Dim lngRet As Long
lngRet = LoadCursorBynum(0&, CursorType)
lngRet = SetCursor(lngRet)
End Function
Se alguém tiver uma idéia, agradeço!!!
Tenho um formulário. Dentro dele tem um subformulário. A origem de dados desse subformulário é uma consulta.O subformulário possui diversas caixas de texto dispostas em linha de forma que cada caixa representa uma coluna. Se a consulta encontra 50 registros, aparecem 50 linhas no subformulário, dispostos como se fossem uma lista.
Atualmente, quando passo o mouse por cima de cada linha, o ponteiro muda para o formato da mão (para selecionar a linha). Quando clico em cada linha abre um outro formulário com maiores detalhes desse registro. Mudei o formato do ponteiro com a seguinte código:
Private Sub Modelo_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseCursor (32649)
End Sub
O formulário dos detalhes abre com:
Private Sub Modelo_Click()
Moldura50.SetFocus
DoCmd.OpenForm "DetalhesAlvoX"
End Sub
Modelo é o nome de uma caixa de texto, existem outras, todas alinhadas horizontalmente.
O mesmo código está repetido para cada caixa de texto e como as caixas estão lado a lado, o usuário não percebe diferença, dando a impressão que basta clicar em qualquer local da linha para abrir outro formulário com detalhes daquele registro específico.
Até aí tudo bem, mas gostaria de saber se é possível fazer que a linha na qual se encontra o mouse mudasse a cor de fundo.
Bastaria mudar a cor de fundo das caixas de texto, posso colocá-las lado a lado, com a borda transparente.
Tentei formatação condicional e uma instrução backcolor no VBA. Mas não dá certo, porque ele muda a cor de todas as linhas quando o mouse passa por cima e não da linha selecionada.
A função que muda o ponteiro do mouse é:
Option Compare Database
Option Explicit
'Constantes para identificar os diversos tipos de ponteiro do mouse
Public Const IDC_APPSTARTING = 32650&
Public Const IDC_HAND = 32649&
Public Const IDC_ARROW = 32512&
Public Const IDC_CROSS = 32515&
Public Const IDC_IBEAM = 32513&
Public Const IDC_ICON = 32641&
Public Const IDC_NO = 32648&
Public Const IDC_SIZE = 32640&
Public Const IDC_SIZEALL = 32646&
Public Const IDC_SIZENESW = 32643&
Public Const IDC_SIZENS = 32645&
Public Const IDC_SIZENWSE = 32642&
Public Const IDC_SIZEWE = 32644&
Public Const IDC_UPARROW = 32516&
Public Const IDC_WAIT = 32514&
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long
Function MouseCursor(CursorType As Long)
Dim lngRet As Long
lngRet = LoadCursorBynum(0&, CursorType)
lngRet = SetCursor(lngRet)
End Function
Se alguém tiver uma idéia, agradeço!!!