Access Form Icon - Store in DB

thmsjlmnt3953

Registered User.
Local time
Today, 23:16
Joined
May 20, 2014
Messages
120
[SOLVED] -Access Form Icon - Store in DB

Hi,

I currently use code in a module and code on each form in the on_load event to change the icon of the form.. the code i use is as follows..

in a module:
Code:
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Const WM_SETICON = &H80
Private Const IMAGE_ICON = 1
Private Const LR_LOADFROMFILE = &H10
Private Const SM_CXSMICON As Long = 49
Private Const SM_CYSMICON As Long = 50

Private Declare PtrSafe Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, LParam As Any) As Long

Public Function SetFormIcon(hWnd As Long, strIconPath As String) As Boolean
Dim lIcon As Long
Dim lResult As Long
Dim X As Long, Y As Long

X = GetSystemMetrics(SM_CXSMICON)
Y = GetSystemMetrics(SM_CYSMICON)
lIcon = LoadImage(0, strIconPath, 1, X, Y, LR_LOADFROMFILE)
lResult = SendMessage(hWnd, WM_SETICON, 0, ByVal lIcon)
End Function
and on each form on load:
Code:
SetFormIcon Me.hWnd, "k:\test directory\hsicon.ico"
What im wondering is would it be possible to store the .ico file within the DB file itself (i know access can store bitmaps) and reference the .ico in the form load event code?

Overtime the db file will probably move to its own dedicated storage so using a direct reference to the file wont work..

i have tried the following but get an error (it tries to reference the .ico file as to being in the root directory of the db file)

Code:
SetFormIcon Me.hWnd, Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & “\hsicon.ico"
so any help with either solution would be fantastic

Thanks

Tom
 
Last edited:
I don't know! However if I wanted to do the same I would probably search a VB6 forum and see how they would do it in VB6.
 
SOLVED

SetFormIcon Me.hWnd, CurrentProject.Path & "\hsicon.ico"

this will use the current db's patch and the icon names hsicon.ico contained in that directory.
 

Users who are viewing this thread

Back
Top Bottom