以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口SQlQuery表SQL语句问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9479)

--  作者:红叶
--  发布时间:2011/4/16 15:01:00
--  窗口SQlQuery表SQL语句问题

采购明细查询 窗口 设置如图

 Select 语句为

Select [采购日期],[采购单号],[商品代码],[批次色号],[计量_整],[计量_零],[计量_数量],[无税单价],[折扣],[无税金额],[税率],[含税金额],[核销_标记],[核销_日期],[核销_原因],[核销_凭号],[备注],[备注信息] From {采购明细} Where 商品代码 = \'" & Vars("查询代码") & "\'


图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名.png
图片点击可在新窗口打开查看
但是显示的表中无数据,但是把 商品代码 = \'" & Vars("查询代码") & "\' 改成 商品代码 = \'T119161012518\' 就能显示这个商品的数据,判断是  商品代码 = \'" & Vars("查询代码") & "\' 条件表达式有问题,请问该如何写这个条件表达式?
--  作者:blackzhu
--  发布时间:2011/4/16 15:14:00
--  
Select [采购日期],[采购单号],[商品代码],[批次色号],[计量_整],[计量_零],[计量_数量],[无税单价],[折扣],[无税金额],[税率],[含税金额],[核销_标记],[核销_日期],[核销_原因],[核销_凭号],[备注],[备注信息] From {采购明细} Where 商品代码 = \'" & Vars("查询代码") & "\'

如果改成  商品代码 = \'T119161012518\' 测试通过,那么就是" & Vars("查询代码") & "\'"里的查询代码字段的问题,你再查查应该改成什么?

--  作者:红叶
--  发布时间:2011/4/16 15:19:00
--  

窗口AfterLoad事件

If Forms("产品进销存").Opened Then
    If Tables("产品进销存_Table1").Current IsNot Nothing Then
        Vars("查询代码") = Tables("产品进销存_Table1").Current("商品代码")
    End If
End If

也就是根据Tables("产品进销存_Table1").Current("商品代码")生成这个条件表达式

商品代码 = \'" & Vars("查询代码") & "\'

[此贴子已经被作者于2011-4-16 15:21:34编辑过]

--  作者:mr725
--  发布时间:2011/4/16 15:55:00
--  

打开窗口前 Tables("产品进销存_Table1").Current("商品代码") 当然没有东东,所以 Vars("查询代码") 中也就是原来的值了(或:nothing)


--  作者:blackzhu
--  发布时间:2011/4/16 16:01:00
--  
看不出什么呀,有没有外部数据的,没有的话发上来看看?
--  作者:lkqing
--  发布时间:2011/4/16 21:11:00
--  
以下是引用红叶在2011-4-16 15:19:00的发言:

窗口AfterLoad事件

If Forms("产品进销存").Opened Then
    If Tables("产品进销存_Table1").Current IsNot Nothing Then
        Vars("查询代码") = Tables("产品进销存_Table1").Current("商品代码")
    End If
End If

也就是根据Tables("产品进销存_Table1").Current("商品代码")生成这个条件表达式

商品代码 = \'" & Vars("查询代码") & "\'

[此贴子已经被作者于2011-4-16 15:21:34编辑过]

在窗口Select 语句输入栏可能对 Vars("查询代码") 这个变量不认识,改为全局变量试试,或将此Select 语句直接在

窗口AfterLoad事件中执行。


--  作者:gsnake
--  发布时间:2013/4/13 0:10:00
--  

在AfterLoad执行是可以的,就是问变量在 select里怎么写?? 这个问题为什么就这么过去了???狐爸不说一下?? 既然是编程就要学会用所有的功能啊!或者狐爸就说在属性窗口里 select 语句 不能用变量!!


--  作者:gsnake
--  发布时间:2013/4/13 21:43:00
--  

呵呵!!!再顶


--  作者:狐狸爸爸
--  发布时间:2013/4/13 22:41:00
--  

任何语句都可以合成。


例如:
Dim pd As String = “电话机”
DataTables("订单").LoadFilter = "产品 = \'" & pd & "\'"
DataTables("订单").Load()


 

参考:

http://www.foxtable.com/help/topics/1284.htm

 

[此贴子已经被作者于2013-4-13 22:41:52编辑过]

--  作者:夕然
--  发布时间:2013/4/13 22:46:00
--  

我也给大家贴个图

 

动态合成表达式

 

一张图足够用了

 

 


图片点击可在新窗口打开查看此主题相关图片如下:动态合成技巧.png
图片点击可在新窗口打开查看