Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]如何做到同一个文件避免第2次打开

范范  发表于:2012-11-14 16:09:22  
复制

 老师,有没有办法做到在一台电脑上只能运行一个平台?
就是一台电脑只让登录一次,如果在点击的话就会激活已经打开了的。

 

Top
竹笛 发表于:2012-11-14 16:18:07

思路:

1、软件登录时,当用户名和密码输入 正确后,在当前文件夹自动生成一个文件 aaa.txt 。

2.在登录窗体的卸载事件中,用代码删除当前文件夹中的文件 aaa.txt (如果存在就删除)

3.软件登录的加载事件中,判断 当前文件夹是否存在 aaa.txt文件,如果存在就提示本软件已打开过,并退出程序





殷小宝 发表于:2012-11-14 16:54:22

要用到API函数FindWindow 

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub cmdOK_Click()

     Dim windwnd As Long

     windwnd = FindWindow(vbNullString, "登陆窗体名")

    If windwnd = 0 Then

       docmd.openform "登陆窗体名" ,acNormal

    Else

        AppActivate ("登陆窗体名")  

    End If

    End Sub

不知行不行?我尚不得知。



叶海峰 发表于:2012-11-14 17:03:44
如果说的平台是一个mdb的话,那么mdb打开后,肯定会有一个ldb的文件存在的啊...判断这个文件在不在就可以啦.

竹笛 发表于:2012-11-14 17:26:31

3楼,不可以的哦。因为:

如果之前没打开,他一启动软件,就自动产生一个ldb的文件..这时是继续打开还是退出呢?



叶海峰 发表于:2012-11-14 17:33:32
ldb里面有当前连接用户的信息,如果是同时打开2次的话,会有2个相同的信息.

煮江品茶 发表于:2012-11-15 12:29:09

3\4\5楼是伪命题吧?2003版对已打开的Access,再次双击或者用打开命令,只是激活而已。其他版本是否存在可二次打开的问题不得而知。

 

楼主所提的问题要按照文件类型的不同来分别处理为当。不同类型文件大体会有三种情况:其一是再次打开只是激活已打开的系统(Access2003是此情况);其二是另外打开一个被锁定的副本(word与Excel是此情况);其三是另外打开一个可编辑的文件(txt文本文件是此情况)。



殷小宝 发表于:2012-11-17 20:31:56

我不应该写打开窗体,应该写打开程序,用shell函数:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub cmdOK_Click()

     Dim windwnd As Long

    dim  reval as string

     windwnd = FindWindow(vbNullString, "程序")

    If windwnd = 0 Then

     reval=shell(程序完整名,1) 

    Else

        AppActivate ("程序名")  

    End If

    End Sub

 



殷小宝 发表于:2012-11-17 20:36:05

上述不适用ACCESS。



总记录:8篇  页次:1/1 9 1 :