以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字符转换问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187105) |
-- 作者:lin98 -- 发布时间:2023/6/21 12:47:00 -- 字符转换问题 Select Case e.DataCol.name Case "编号", "数量", "日期" Dim bh As String Dim sl As Double Dim rx As Date If e.DataCol.Name = "编号" Then bh = e.NewValue sl = e.DataRow("数量") rx = e.DataRow("日期") Else sl = e.NewValue rx = e.DataRow("日期") bh = e.DataRow("编号") End If If bh > "" AndAlso sl > "" AndAlso rx > ""Then Dim dr As DataRow = e.DataRow If e.DataTable.Find("编号 = \'" & bh & "\' And 数量 = \'" & sl & "\'And 日期 = \'" & rx & "\'") IsNot Nothing Then MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) e.Cancel = True End If End If End Select 上面代码报错,提示字符转换问题,在哪里转换,如何转换?谢谢
|
-- 作者:有点蓝 -- 发布时间:2023/6/21 13:32:00 -- http://www.foxtable.com/webhelp/topics/2481.htm,参考最后一段用法 |
-- 作者:lin98 -- 发布时间:2023/6/21 14:35:00 -- 改了,没报错,但无法实现,禁止重复值录入,如何解决? \'DataColChanging 导入 Dim dr3 As DataRow = Tables("表A").Current.DataRow For Each r As Row In Tables("导入窗口_表A").GetCheckedRows \' Dim nma() As String = {"编号", "型号", "规格", "数量", "日期"} \' Dim nmb() As String = {"编号", "型号", "规格", "数量", "日期"} \' Dim dr As Row = Tables("表B").AddNew \' For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = r(nma(i)) Next End If Next [此贴子已经被作者于2023/6/21 16:32:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/6/21 14:44:00 -- 没有认真看帮助,代码放到DataColChanged,不是DataColChanging 导入代码也不正确,基本都没有理解帮助的代码逻辑 Dim nma() As String = {"编号", "型号", "规格", "数量", "日期"} \' Dim nmb() As String = {"编号", "型号", "规格", "数量", "日期"} \' For Each r As Row In Tables("导入窗口_表A").GetCheckedRows \' ----------------------- 这个帮助建议先看个10遍:http://www.foxtable.com/webhelp/topics/1284.htm 表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。 例如: Tables("订单").Filter = "[产品] = \'PD01\'" \'字符用单引号括起来 ----------------------- If DataTables("表B").Find("编号 = \'" & r("编号") & "\' And 数量 = " & r("数量") & " And 日期 = #" & r("日期") & "#") Is Nothing Then Dim dr As Row = Tables("表B").AddNew \' For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = r(nma(i)) Next End If Next |
-- 作者:lin98 -- 发布时间:2023/6/21 15:36:00 -- 导入重复没导入,也没提示,如何实现导入时发现重复,重复i 导入,并提示有已有存在相同产品? If DataTables("表B").Find("编号 = \'" & r("编号") & "\' And 数量 = " & r("数量") & " And 日期 = #" & r("日期") & "#") Is Nothing Then Dim dr As Row = Tables("表B").AddNew \' For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = r(nma(i)) Next End If MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) 加在这里不对,一直提示 Next |
-- 作者:有点蓝 -- 发布时间:2023/6/21 15:44:00 -- 参考:http://www.foxtable.com/webhelp/topics/0223.htm,理解一下什么叫双分支形式 |