Access交流中心

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

Microsoft Office Acess无响应

James  发表于:2010-12-10 08:54:28  
复制

大家好,我是新成员丹雅(crp6071),很开心呢能够成为Access软件网的成员。

 

在这里,我向各位编程高手请教一个问题。我自己开发了一个Access程序,在我的电脑上可以正常运行,但是在别人的电脑上打开,系统就会提示“Microsoft Office Access 无响应”。经测试,发现是由于一段代码引起的。该段代码写在Form_Load事件里,详情如下:

 

Dim strsql As String
Dim rst As ADODB.Recordset
Dim un As String
un = Environ("Username")
strsql = "select * from tblUser where UserID ='" & un & "'"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open strsql, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
If rst.RecordCount = 0 Then
    MsgBox "很抱歉,您不是该系统的合法用户,请与管理员联系!", vbOKOnly, "提示"
    DoCmd.Close acForm, Me.Name
    DoCmd.Quit
    Exit Sub
End If

rst.close

set rst = nothing

 

请问原因是什么?谢谢!

 

(注:我们使用的是2007版本的Microsoft Office)。

 

Top
煮江品茶 发表于:2010-12-10 13:55:43
Environ是不是一个自定义函数?这个函数是不是没有拷贝过来?

丹雅 发表于:2010-12-13 16:25:23

谢谢煮江品茶的帮助。

 

Environ是VBA自带的函数,不是自定义函数。

 

其作用是取得当前登录电脑用户的用户名。



小魏 发表于:2010-12-13 21:26:52

这段代码看起来没有明显的错误,不是造成程序假死的原因.

你调试一下程序,看看有没有丢失的引用.特别是ADODB;

另外,你的这段代码其实是想看看当前的电脑的用户是否在系统中有注册,你可以DLOOKUP的域函数来处理,会可靠许多.



煮江品茶 发表于:2010-12-14 11:46:28

这段代码可以用以下代码替换:

if Dcount("*","tblUser","UserID ='" & un & "'")=0 then
    MsgBox "很抱歉,您不是该系统的合法用户,请与管理员联系!", vbOKOnly, "提示"
    DoCmd.Close acForm, Me.Name
    DoCmd.Quit

    Exit Sub
end if



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