Foxtable(狐表)用户栏目专家坐堂 → 下面这样的语句能遍历每一条符合的记录吗?


  共有2567人关注过本帖树形打印复制链接

主题:下面这样的语句能遍历每一条符合的记录吗?

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/1 21:51:00 [显示全部帖子]

思路本身就错了,粘贴以后,跨表引用数据

 

http://www.foxtable.com/webhelp/scr/1451.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/1 23:20:00 [显示全部帖子]

If Tables("粘贴数据").rows.count <>0
For Each r As Row In Tables("粘贴数据").rows
    For Each dr As DataRow In DataTables("商品档案").Select("品名 like '%"& r("粘贴数据") &"%'" )
        Dim fdr As DataRow = DataTables("销售").sqlfind("品名 ='" & r("粘贴数据") &"' And 客户名称='" & Vars("kh") & "'", "销售日期 desc")
        If fdr IsNot Nothing Then
            Dim lsxs As Row=Tables("销售临时").AddNew
            lsxs("品名")=fdr("品名")
            lsxs("规格")=fdr("规格")
            lsxs("销售单价")=fdr("销售单价")
            lsxs("客户名称")=fdr("客户名称")
            lsxs("区域")=fdr("区域")
            lsxs("地址")=fdr("地址")
            'lsxs("日期")=fdr("日期")
        Else
            Dim fdr1 As DataRow = DataTables("销售").find("品名 ='"& r("粘贴数据") &"'", "销售日期 desc")
            If fdr1 IsNot Nothing Then
                Dim lsxs As Row=Tables("销售临时").AddNew
                lsxs("品名")=fdr1("品名")
                'lsxs("型号")=fdr1("型号")
                lsxs("销售单价")=fdr1("销售单价")
                lsxs("客户名称")=fdr1("客户名称")
                lsxs("区域")=fdr1("区域")
                lsxs("地址")=fdr1("地址")
                'lsxs("日期")=fdr1("日期")
            End If
        End If
        If dr("品名")<>r("粘贴数据")  Then
            Dim xsxs As DataRow = DataTables("销售").find("品名 ='" & dr("品名") &"'", "销售日期 desc")
            If xsxs IsNot Nothing Then
                Dim lsxs As Row=Tables("销售临时").AddNew
                lsxs("品名")=xsxs("品名")
                'lsxs("型号")=xsxs("型号")
                lsxs("销售单价")=xsxs("销售单价")
                lsxs("客户名称")=xsxs("客户名称")
                lsxs("区域")=xsxs("区域")
                lsxs("地址")=xsxs("地址")
                'lsxs("日期")=xsxs("日期")
            End If
        End If
    Next
Next
End If
msgbox("完成")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/1 23:45:00 [显示全部帖子]

For Each r As Row In Tables("粘贴数据").rows

 

改成

 

For Each r As DataRow In Tables("粘贴数据").datatable.select("粘贴数据 is not null")

[此贴子已经被作者于2018/1/1 23:46:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/2 8:55:00 [显示全部帖子]

每一个品名都不能查询?比如你输入 3300 也查不到?

 

你代码的逻辑是什么?请举例具体说明。

 

为什么要循环查询【商品档案】,然后又查询【销售】表?

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/2 8:56:00 [显示全部帖子]

百分号的处理,要修改代码,如

 

For Each dr As DataRow In DataTables("商品档案").Select("品名 like '%"& r("粘贴数据").replace("%", "[%]") &"%'" )


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/2 9:11:00 [显示全部帖子]

If Tables("粘贴数据").rows.count <>0
    'For Each r As Row In Tables("粘贴数据").Rows
    For Each r As DataRow In Tables("粘贴数据").DataTable.Select("粘贴数据 is not null")
        Dim txt As String=r("粘贴数据")
        txt="'%" & txt.Replace("*", "[*]").Replace("'", "''").Replace("%", "[%]")  & "%'"
        For Each dr As DataRow In DataTables("商品档案").Select("品名 like " & txt)
            Dim fdr As DataRow = DataTables("销售").sqlfind("品名 ='" & r("粘贴数据") &"' And 客户名称='" & Vars("kh") & "'", "销售日期 desc")
            If fdr IsNot Nothing Then
                Dim lsxs As Row=Tables("销售临时").AddNew
                lsxs("品名")=fdr("品名")
                lsxs("规格")=fdr("规格")
                lsxs("销售单价")=fdr("销售单价")
                lsxs("客户名称")=fdr("客户名称")
                lsxs("区域")=fdr("区域")
                lsxs("地址")=fdr("地址")
                lsxs("销售日期")=fdr("销售日期")
                lsxs.Save
            Else
                Dim fdr1 As DataRow = DataTables("销售").sqlfind("品名 ='"& r("粘贴数据") &"'", "销售日期 desc")
                If fdr1 IsNot Nothing Then
                    Dim lsxs As Row=Tables("销售临时").AddNew
                    lsxs("品名")=fdr1("品名")
                    lsxs("规格")=fdr1("规格")
                    lsxs("销售单价")=fdr1("销售单价")
                    lsxs("客户名称")=fdr1("客户名称")
                    lsxs("区域")=fdr1("区域")
                    lsxs("地址")=fdr1("地址")
                    lsxs("销售日期")=fdr1("销售日期")
                    lsxs.Save
                End If
            End If
        Next
    Next
End If
msgbox("完成")

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/2 9:27:00 [显示全部帖子]

If Tables("粘贴数据").rows.count <>0
    'For Each r As Row In Tables("粘贴数据").Rows
    For Each r As DataRow In Tables("粘贴数据").DataTable.Select("粘贴数据 is not null")
        Dim txt As String=r("粘贴数据")
        txt="'%" & txt.Replace("*", "[*]").Replace("'", "''").Replace("%", "[%]")  & "%'"
        For Each dr As DataRow In DataTables("商品档案").Select("品名 like " & txt)
            'For Each dr As DataRow In DataTables("商品档案").Select("品名 like '%"& r("粘贴数据") &"%'" )
            Dim fdr As DataRow = DataTables("销售").sqlfind("品名 ='" & r("粘贴数据") &"' And 客户名称='" & Vars("kh") & "'", "销售日期 desc")
            If fdr IsNot Nothing Then
                Dim lsxs As Row=Tables("销售临时").AddNew
                lsxs("品名")=fdr("品名")
                lsxs("规格")=fdr("规格")
                lsxs("销售单价")=fdr("销售单价")
                lsxs("客户名称")=fdr("客户名称")
                lsxs("区域")=fdr("区域")
                lsxs("地址")=fdr("地址")
                lsxs("销售日期")=fdr("销售日期")
                lsxs.Save
                Continue For
            Else
                Dim fdr1 As DataRow = DataTables("销售").sqlfind("品名 ='"& r("粘贴数据") &"'", "销售日期 desc")
                If fdr1 IsNot Nothing Then
                    Dim lsxs As Row=Tables("销售临时").AddNew
                    lsxs("品名")=fdr1("品名")
                    lsxs("规格")=fdr1("规格")
                    lsxs("销售单价")=fdr1("销售单价")
                    lsxs("客户名称")=fdr1("客户名称")
                    lsxs("区域")=fdr1("区域")
                    lsxs("地址")=fdr1("地址")
                    lsxs("销售日期")=fdr1("销售日期")
                    lsxs.Save
                    Continue For
                End If
            End If
            If dr("品名")<>r("粘贴数据")  Then
                Dim xsxs As DataRow = DataTables("销售").sqlfind("品名 ='" & dr("品名") &"'", "销售日期 desc")
                If xsxs IsNot Nothing Then
                    Dim lsxs As Row=Tables("销售临时").AddNew
                    lsxs("品名")=xsxs("品名")
                    lsxs("规格")=xsxs("规格")
                    lsxs("销售单价")=xsxs("销售单价")
                    lsxs("客户名称")=xsxs("客户名称")
                    lsxs("区域")=xsxs("区域")
                    lsxs("地址")=xsxs("地址")
                    lsxs("销售日期")=xsxs("销售日期")
                    lsxs.Save
                End If
            End If
        Next
    Next
End If
msgbox("完成")

 回到顶部