以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  版主,您好,请教提高代码效率  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190219)

--  作者:divil
--  发布时间:2024/1/24 11:52:00
--  版主,您好,请教提高代码效率
版主,您好,使用上次您指导的函数,“SN码信息”列不能重复,确保“SN码信息”列内容都是唯一值,目前功能实现了,就是每次粘贴≥500行数据后等半天(约2-5分钟)软件才完成粘贴动作(粘贴过程一直软件不能使用),请问是否还有其它代码能否提高录入数据效率,
If e.DataCol.Name = "SN码信息" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("SN码信息 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此SN码信息已经存在!")
        e.Cancel = True
    End If
End If
图片点击可在新窗口打开查看

--  作者:chen37280600
--  发布时间:2024/1/24 11:58:00
--  
你不要粘贴的时候做检查。你可以全部粘贴好后,弄一个保存按钮,去做检查,这样就只查1次数据库。
--  作者:有点蓝
--  发布时间:2024/1/24 12:06:00
--  
建议把数据放到execl里,然后使用代码导入,导入的时候检查。或者像2楼说的,粘贴后在统一检查
--  作者:divil
--  发布时间:2024/1/24 13:54:00
--  
版主,您好:做了一个窗口,请问按钮中的代码如何编辑,目的:复制数据到”SN码信息“列后点击按钮就将值重复的行删除掉,谢谢!
--  作者:有点蓝
--  发布时间:2024/1/24 14:03:00
--  
请上传实例说明
--  作者:divil
--  发布时间:2024/1/24 14:22:00
--  
版主,您好!谢谢您,费心了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多芯准直器插针质量追溯统计表.rar


--  作者:有点蓝
--  发布时间:2024/1/24 14:24:00
--  
粘贴的是怎么样的数据?是新增行后粘贴?还是新增保存后再粘贴?从第一行开始粘贴,还是从第一个空行开始粘贴
[此贴子已经被作者于2024/1/24 14:25:24编辑过]

--  作者:divil
--  发布时间:2024/1/24 16:37:00
--  
版主,您好,目前操作步骤说明:
1、产线员工填写EXCEL表格内容;
2、我将表格内容复制并粘贴到软件中;
3、通过软件将SN码信息列的重复项删除掉(现实是SN码信息列重复项无法复制到SN码信息列同时有窗口提示,只是复制到粘贴过程时间非常慢,效率低)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sn对应穿纤信息3.xlsx


--  作者:有点蓝
--  发布时间:2024/1/24 16:44:00
--  
这种直接导就行了,没有必要复制来复制去的,参考:http://www.foxtable.com/webhelp/topics/2334.htm,看第三段代码
--  作者:divil
--  发布时间:2024/1/25 11:08:00
--  
版主,您好,麻烦您指导指导。谢谢!

代码如下:
Dim Book As New XLS.Book("c:\\data\\多芯插针.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("多芯插针").StopRedraw()
Dim nms() As String = {"SN码信息", "穿纤时间和人员", "穿纤时间", "人员", "备注1", "备注2", "黄色套管为已刮胶产品", "蓝色套管为多次穿纤产品", "ORT试验", "毛细管验证", "歪", "烘箱异常"}
For n As Integer = 1 To Sheet.Rows.Count - 1
    Dim bh As String = sheet(n, 0).Text
    Dim dr As DataRow = DataTables("多芯插针").Find("SN码信息 = \'" & bh & "\'")
    If dr Is Nothing Then \'如果不存在同编号的订单
        dr = DataTables("多芯插针").AddNew()
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n, m).Value
    Next
Next
Tables("多芯插针").ResumeRedraw()
EXCEL表格见附件,代码存放位置见附件,点击按钮后显示错误。