Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_VSCROLL = &H115
Const SB_BOTTOM = 7
Private Sub Text1_Change()
SendMessage Text1.hwnd, WM_VSCROLL, SB_BOTTOM, 0
My application is developed in MS Access using VB. I have a form having multiple textboxes and other controls. Running the code for setting the scrollbar to the end is not working here and throws up an error saying "Object doesn't support this property or method." on line :
SavedWnd = Screen.ActiveControl.hwnd
The code is working in a separate VB application which has a single text box and a button.
Please suggest what could be the solution for this. I think hwnd is not being recognized. Is there any reference which needs to be included to run the same code?
Well, Visual Basic and VBA (Visual Basic For Applications) are NOT the same. Visual Basic (And This Forum is VB 4/5/6, NOT .Net, which is also different [ie: VB express, VB 2005, VB 2008, etc]). That said, code that would often work in VB 6, such as the code I posted with sendmessage, will not work if you are in VBA (VB inside of Access). Now, you could normally get away with selecting and deselecting the listbox in Access, like so:
I believe I also read somewhere that you can pass the DESC sql key word to make it sort the data in the listbox by descending order, which automatically scrolls the listbox... but I haven't tried that.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...