以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]动态表名的sql语句请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177101)

--  作者:昱飞哥
--  发布时间:2022/5/9 13:05:00
--  [求助]动态表名的sql语句请教
BeforeLoadOutTable事件中,下面的sql语句为什么错了?

Dim DataTableName As String = "{" &  e.DataTableName  & "}"
e.SelectString = "Select * Fro m \'"&  DataTableName &"\' Where [Owner] = \'" & _UserName & "\'"

--  作者:有点蓝
--  发布时间:2022/5/9 13:41:00
--  
表名不需要加单引号

e.SelectString = "Select * From "&  DataTableName & " Where [Owner] = \'" & _UserName & "\'"

另外如果使用的是自定义用户管理,在BeforeLoadOutTable事件执行的时候,肯定还没有登录的_UserName不可能有值,所以正确用法应该是BeforeLoadOutTable事件设置不加载数据
e.SelectString = "Select * From "&  DataTableName & " Where [_identify] is null"

然后在AfterOpenProject事件登录后加载
Forms("用户登录").Open()
If _UserName = "" Then
    
Syscmd.Project.Exit()
    Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错

End If
datatables("xx表").loadfilter = "[Owner] = \'" & _UserName & "\'"
datatables("xx表").load

--  作者:昱飞哥
--  发布时间:2022/5/9 13:51:00
--  
明白了,谢谢