Office中国论坛/Access中国论坛

标题: 如何使数据库不出现ACCESS窗体? [打印本页]

作者: szbihui    时间: 2008-9-23 16:22
标题: 如何使数据库不出现ACCESS窗体?
大家好!我是刚学习ACCESS2007的新手,我想请教各位大侠几个问题?

1.能不能使ACCDB文件单独运行?或者转换为EXE格式?又或者是直接在装有ACCESS的电脑上运行但不出现ACCESS的界面?
2.看到万山做的ERP,他的有菜单栏,还有下拉菜单,一点也没有ACCESS的界面,是如何实现的?

盼前辈们教教小弟.谢谢!

[ 本帖最后由 szbihui 于 2008-9-25 16:34 编辑 ]
作者: szbihui    时间: 2008-9-24 09:16
Help me !
作者: huiyi88    时间: 2008-9-24 12:34
在工具/启动,将有勾的取消,然后设置启动窗体为你自己的窗体,还有,要自己制作菜单
作者: szbihui    时间: 2008-9-25 10:00
谢谢楼上的回复,请教一下如何制作自己的菜单?还有我是用ACCESS2007的,没有工具这一栏,我在选项---当前数据库.把所有勾都去掉了,但不管怎么样,它还是有"开始"这一项,还有快捷菜单也有.
作者: 勇也爱闪    时间: 2008-9-25 10:50
标题: 回复 4# 的帖子
这个问题我昨天问过啦.
要用代码来实现隐藏ACCESS本身窗口
代码没有人贴出来我晕
作者: szbihui    时间: 2008-9-25 14:52
标题: 我在网上找一篇代码,但不知如何使用?
http://www.118cy.net/help_4492.html





问题:

怎样用代码最大化、最小化 ACCESS 的主窗口?  


回答:

通过一函数已定义的常量 fSetAccessWindow 实现。
该函数能用来完全隐藏 Access 窗口并将你自己的窗体显示在桌面上。注意,必须已经打开一个弹出式窗体才能使用 SW_HIDE 参数调用 fSetAccessWindow 函数实现。
注意:如果你隐藏了 Access 主窗口,要确定你有良好的出错处理。因为主窗口隐藏后,一旦引发错误,并出错提示窗口上点击了“结束”按钮,这样不会使 Access 主窗口可见,并退出你自己的窗体。推荐你在你的错误处理程序中使用 SW_SHOWNORMAL 参数调用 fSetAccessWindow 函数来显示 Access 主窗口。
如果由于别的原因,Access 主窗口不能显示,那么你将只能从任务栏中关闭你的 mdb,在 Win 9x 中使用 Control-Alt-Delete 来结束任务,在 Win NT 、2000 或 XP 中,可以右键单击任务栏选择任务管理器来选择该 mdb 结束任务。
************ 代码开始 **********
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

Private Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
    ByVal nCmdShow As Long) As Long
Function fSetAccessWindow(nCmdShow As Long)
使用举例
最大化 Access 窗口
    fSetAccessWindow(SW_SHOWMAXIMIZED)
最小化 Access 窗口
    fSetAccessWindow(SW_SHOWMINIMIZED)
隐藏 Access 窗口
    fSetAccessWindow(SW_HIDE)
正常显示 Access 窗口
    fSetAccessWindow(SW_SHOWNORMAL)

    Dim loX As Long
    Dim loFORM As Form
On Error Resume Next
    Set loFORM = Screen.ActiveForm
    If Err <> 0 Then 没有活动窗体 no ActiveFORM
        If nCmdShow = SW_HIDE Then
            MsgBox "除非屏幕上有一个窗口,否则不能隐藏 Access 主窗口!" _
                & vbCr & vbCr _
                & "Cannot hide Access unless " _
                & "a FORM is on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
            Err.Clear
        End If
    Else
        If nCmdShow = SW_SHOWMINIMIZED And loFORM.Modal = True Then
            MsgBox "不能由屏幕上的 " & (loFORM.Caption + " ") & "窗体最小化 Access 主窗口!" _
                & vbCr & vbCr _
                & "Cannot minimize Access with " _
                & (loFORM.Caption + " ") _
                & "FORM on screen"
        ElseIf nCmdShow = SW_HIDE And loFORM.PopUp <> True Then
            MsgBox "不能由屏幕上的 " & (loFORM.Caption + " ") & "窗体隐藏 Access 主窗口!" _
                & vbCr & vbCr _
                & "Cannot hide Access with " _
                & (loFORM.Caption + " ") _
                & "FORM on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
        End If
    End If
    fSetAccessWindow = (loX <> 0)
End Function
************ 代码结束 **********


其他评论
看过先辈发表的关于隐藏Access窗体的技术文章,在使用过程中发现会使窗体的自动居中属性改变,或使子窗体的滚动条消失,经过不断试验,终于克服以上现象,与大家分享:
Private Declare Function ShowWindow Lib "user32" _
  (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Load()
    ShowWindow Me.Application.hWndAccessApp, 2
End Sub

[ 本帖最后由 szbihui 于 2008-9-25 15:19 编辑 ]
作者: szbihui    时间: 2008-10-8 12:13
help me
作者: szbihui    时间: 2008-10-14 10:39
咋整?
作者: ricky_z_y    时间: 2008-10-14 13:32
运行不了~~~~~~~~~~~~~~~~?????????????
作者: szbihui    时间: 2008-10-17 11:28
我也没搞明白,没高手出来解答.
作者: szbihui    时间: 2008-10-21 16:31
应该很多人关心这个问题吧
作者: 明镜    时间: 2008-10-21 20:14
看一下
作者: hfwanyou    时间: 2008-10-22 11:21
标题: 回复 3# 的帖子
意见同上!
作者: lxh1968    时间: 2008-10-22 22:55
学习学习
作者: zbjit    时间: 2008-10-24 08:13
2007的好像有點麻煩
作者: szbihui    时间: 2008-10-24 12:08
那应该怎么办呢?
作者: sunqiyi513    时间: 2008-10-24 12:28
最小化窗口代码: (该窗体属性-其它-弹出设置选"是")
  Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdAppMinimize
End Sub

使用上述代码后启动窗体只显示一个窗体,ACCESS窗口都没了.如果在这个窗体上点击运行窗体"MAIN", 则在该窗体上新增一个命令按钮,按钮名称假如为"进入",代码如下:
Private Sub 进入_Click()
       DoCmd.OpenForm "MAIN"   
End Sub

记住了,"MAIN"窗体的弹出设置选"是",如果让所有的窗体都正常运行,又不让出现ACCESS窗口,所有的窗体弹出设置都就设置成"是".
作者: szbihui    时间: 2008-10-24 13:27
谢谢楼上的回复,代码试了一下是可以最小化主窗口,但只要在任务栏一点击,主窗口又出现了,我想要的彻底隐藏主窗口,连任务栏都不要出现.咋整呢?
作者: sunqiyi513    时间: 2008-10-24 16:04
把窗体的弹出设置选为"是",模式也选为"是".试试


至于说要任务栏上也不显示,这个不可能吧.其实桌面上只显示窗体就可以了.

下载附件看看是不是你要的效果.
作者: szbihui    时间: 2008-10-24 17:15
谢谢19楼的朋友,就是要这种效果,非常感谢!还想请教一个问题,我里面有几个窗体,刚开始启动的时候进入A窗体,A窗体上有三个按钮,分别是另外三个窗体B,C,D,我想在点击BCD任意一个窗体的同时关闭A窗体,这该怎么弄?请指教.
作者: szbihui    时间: 2008-10-24 17:17
用你附件里的代码切换到B.C.D窗体的时候它提示你是否要退出.
作者: sunqiyi513    时间: 2008-10-24 20:03
标题: 回复 20# 的帖子
我觉得这样做没意义了,假如你打开了B窗体,然后又要A窗体中打开B,C,D窗体怎么办?打开了B窗体后,A窗体已经关闭了.按照你的意思,就按照下面的代码做吧.
窗体A上设置"运行B"命令按钮
Private Sub 运行B_Click()
DoCmd.Close acForm, "A", acSaveYes
DoCmd.OpenForm "B"
End Sub
不过要删掉窗体A中的卸载事件,因为当关闭窗体A时,会提示你是否要退出,点是,则整个应用程序都退了.桌面上什么都没了,
作者: coolleaf    时间: 2008-10-30 11:36
[:50]
作者: lgcsee    时间: 2009-2-9 15:24
要好好学习一下!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3