是否可以从访问表单中创建一个EXE?

时间:2010-05-17 02:26:59

标签: sql winforms vba ms-access

我希望用户认为他正在使用常规winform,但在后端我想要访问处理数据库的东西。

是否可以只使用访问表单并让其他所有内容在后台消失?我们可以从表单中创建一个exe吗?

什么是MDE?

2 个答案:

答案 0 :(得分:3)

你不能像其他人所说的那样从访问数据库中创建一个EXE,但你可以在很大程度上隐藏你的应用程序是以访问方式编写的。例如,你可以......

  • 添加自定义初始屏幕

要做到这一点,只需将BMP文件保存在与DB相同的文件夹中,并将其称为完全相同的文件名,即MyDatabase.BMP。当访问启动而不是看到访问启动屏幕时,您将看到自定义的。

  • 更改任务栏图标

在您的数据库上,转到工具 - 启动并将应用程序图标更改为您选择的图标

  • 更改表单上的图标

您可以将表单上的图标从标准访问权限更改为您喜欢的任何内容,将此代码粘贴到模块中

Option Compare Database
Option Explicit

Private Declare 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 Function SendMessage Lib "user32" _
   Alias "SendMessageA" _
   (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   lParam As Any) _
   As Long

Private Declare 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

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

然后你可以在表单OnOpen事件

上这样调用它
SetFormIcon Me.hwnd, (“C:\Stuff\NewIcon.ico")

答案 1 :(得分:1)

没有。这在MS Access中是不可能的。

您需要创建一个VB / VB.NET可执行文件并在那里重新实现您的UI代码,您的数据连接指向Access数据库后端。