以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何取多条记录?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188580)

--  作者:lin98
--  发布时间:2023/9/28 15:54:00
--  如何取多条记录?
如何实现一个记录取多条记录?
如何实现表A手动“班级ID"后,从表B找到相应数据一次批量赋值到表A,  最效果如图二?




If e.DataCol.Name = "产品编号" Then
    If e.NewValue Is Nothing Then
        e.
DataRow("品名") = Nothing
        e.
DataRow("型号") = Nothing
        e.
DataRow("规格") = Nothing
        e.
DataRow("单价") = Nothing
    Else
        
Dim dr As DataRow
        dr = 
DataTables("产品").Find("[产品编号] = \'" & e.NewValue & "\'")
        If
 dr IsNot Nothing

            e.
DataRow("品名") = dr("品名")
            e.
DataRow("型号") = dr("型号")
            e.
DataRow("规格") = dr("规格")
            e.
DataRow("单价") = dr("单价")
        End
 
If
    
End If
End
 If

上面代码,只有录入一取一条,如何录入一条取多条相应的记录?

如果用SQL,怎么写?谢谢
[此贴子已经被作者于2023/9/28 18:15:45编辑过]

--  作者:有点蓝
--  发布时间:2023/9/28 15:56:00
--  
Find改为使用select,然后循环处理
--  作者:lin98
--  发布时间:2023/9/28 16:28:00
--  
If e.DataCol.Name = "产品编号" Then
Dim drs As List(Of DataRow)

    If e.NewValue Is Nothing Then
        e.
DataRow("品名") = Nothing
        e.
DataRow("型号") = Nothing
        e.
DataRow("规格") = Nothing
        e.
DataRow("单价") = Nothing
    Else
      
Dim drs As List(Of DataRow)
  Dim dr As DataRow
        dr = 
DataTables("产品").select("[产品编号] = \'" & e.NewValue & "\'")
For Each dr As Datarow In drs
        If
 dr IsNot Nothing

            e.
DataRow("品名") = dr("品名")
            e.
DataRow("型号") = dr("型号")
            e.
DataRow("规格") = dr("规格")
            e.
DataRow("单价") = dr("单价")
        End
 
If
 
   End If
Next
End If
是这样吗?

--  作者:有点蓝
--  发布时间:2023/9/28 16:33:00
--  
第2行开始要先新增行
--  作者:lin98
--  发布时间:2023/9/28 16:41:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/9/28 16:48:00
--  
drs = DataTables("产品").select("[产品编号] = \'" & e.NewValue & "\'")
--  作者:lin98
--  发布时间:2023/9/28 16:58:00
--  
If e.DataCol.Name = "班级ID" Then
    Tables("表AA").AddNew()
    If e.NewValue Is Nothing Then
        e.DataRow("班级") = Nothing
        e.DataRow("课程") = Nothing
    Else
        Dim drs As List(Of DataRow)
    
        drs = DataTables("表BB").select("[班级ID] = \'" & e.NewValue & "\'")
        
        For Each dr As DataRow In drs
            If dr IsNot Nothing Then
                e.DataRow("班级") = drs("班级")
                e.DataRow("课程") = drs("课程")
            End If
        Next
    End If
End If

报错。提示班级ID不是INT

--  作者:有点蓝
--  发布时间:2023/9/28 17:00:00
--  
e.DataRow("班级") = dr("班级")

drs 和 dr 到现在还看不懂代表的是什么吗?

--  作者:lin98
--  发布时间:2023/9/28 17:05:00
--  
也只有一条记录,不是批量录入
--  作者:lin98
--  发布时间:2023/9/28 17:10:00
--  
不行
[此贴子已经被作者于2023/9/28 17:59:09编辑过]