您自己才知道闪了什么东西。速度可能加载了太多的数据把。另外其它逻辑应该在登录成功之后处理,而不是登录之前
Forms("用户登录窗口").Open()
If _UserName = "" Then
Syscmd.Project.Exit()
Return '
End If
Forms("启动服务器窗口").Open()
UserLogging有用户申请登录时触发-ACCESS
Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("用户").Find("部门 = '" & pts(0) & "' And 姓名 = '" & pts(1) & "'")
If dr1 Is Nothing Then '
e.Message = "用户名错误!" '
Return
End If
If dr1("密码") <> e.Password Then
e.Message = "登录密码错误!" '
Return
End If
e.Success = True '
For Each dr2 As DataRow In DataTables("用户").DataRows
Dim nm As String = dr2("部门") & "." & dr2("姓名")
If nm <> e.UserName Then '
e.Buddies.Add(nm)
End If
Next
问题一:上面是ACCESS的狐表的ET模式,如何改为ADO模式?
我们之前介绍的编号方法,在多用户环境下会出现重复,用OpenQQ实现网络环境下的编号,可以解决编号,
问题二:在多用户环境避免出现重复下,其他的字段是也要用OpenQQ,比采购,采购主表和采购明细的所有字段,也要用用OpenQQ?还是只编号?
[此贴子已经被作者于2024/7/23 16:01:38编辑过]
1、所有需要数据的地方都改为查询后台数据库获取
2、这个功能只是用来生成编号,和其它里列没有半毛钱的关系
此主题相关图片如下:qq.png
[此贴子已经被作者于2024/7/24 14:30:55编辑过]
感觉连人家项目里的代码是干嘛的都基本没看懂,都是一些很基础的东西呀。连foxtable自己的东西都没理解,这样盲目的使用第三方的数据库,个人觉得,还不如去学习使用vs,或者java这些原生的编程模式。
2、您的项目只是加载了一个自己的用户表。但是加载后没有任何地方用到。前面都说了所有需要数据的地方都要改,那么类似【DataTables("用户").Find】这种用法就应该使用自己加载的用户表,比如【dt.Find】
1.个人觉得,还不如去学习使用vs,或者java这些原生的编程模式。
没那个基础,有当然要学习,用vs,或者java涉及知识非常多。----希望老师,多理解
2.第三方的数据库,比狐表灵活,简单,狐表的ET,表修改,关联不友好,之前都提,没有比较好方法解决,当看ADO,觉得好一点点,业务逻辑相对简单些。
3.改了报错
此主题相关图片如下:qq11.png
全部改为使用sql查询,比如:select * from 用户 where 部门='xxx' and 姓名='xxx'
第三方组件返回的都是.net的datatable,这个怎么用,得自己去看微软的帮助,这个其实和使用vs也差不多了:https://learn.microsoft.com/zh-cn/dotnet/api/system.data.datatable?view=netframework-4.0