|
本帖最后由 roych 于 2016-1-18 11:27 编辑
If IsNull(DLookup("[单号]", "tbl出库", strfilter)) Then
DoCmd.OpenQuery "qry库存"
'-----选择查询是不需要打开的。
stemp = "select [qry库存].[货物],[qry库存].[城市],[qry库存].[品牌],[qry库存].[库存数] from [qry库存] where 线路= ' " & Me.cbo线路 & " '"
'-----这句用来干什么不清楚。如果是用来创建查询请先建立,如果已存在则请定义QueryDef,再以此语句来设置SQL。
DoCmd.RunSQL "Delete [tbl明细temp].* FROM [tbl明细temp]"
DoCmd.RunSQL "insert into tbl明细temp(货物,城市,品牌,预出数) values(stemp.[货物],stemp.[城市],stemp.[品牌],stemp.[库存数])"
'这句绝对是有问题的。如果需要使用查询的值,请使用ADO【当然,也可以在打开查询后复制查询的值,不过并不比上面的方法方便】.
'如果需要使用窗体的值,请修改查询语句。
End If
Me.frm明细chd.Requery
-------------------------------
好了,不说了。简单的解决办法是:
1、以库存为源建立一个查询,条件为:Me.cbo线路,假定为“库存子窗体查询”
2、将该查询绑定到一个子窗体中。
3、创建一个追加查询,条件设置为子窗体的值。大体语句如下:
- INSERT INTO tbl明细temp(货物,城市,品牌,预出数)
- SELECT [Forms]![frm主窗体][库存子窗体]![货物] AS 货物, [Forms]![frm主窗体][库存子窗体]![城市] AS 城市, [Forms]![frm主窗体][库存子窗体]![品牌] AS 品牌 [Forms]![frm主窗体][库存子窗体]![预出数] AS 预出数
- FROM 库存子窗体查询;
复制代码 注:用values也是可以的,不过需要考虑到文本和数字的区别。"INSERT INTO tbl明细temp(货物,城市,品牌,预出数) values(' " & [Forms]![frm主窗体][库存子窗体]![货物] &"',"………………
|
|