Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

两表联系生成一个新表

花落,相依  发表于:2010-04-02 12:13:36  
复制

各位高手

 

     帮解决一个表联接后生成新表问题

 

我有一个表"产品表" 还有一个"工序表"

产品表结构内容如下:

货号   名称   单位

15-3   盘子    个

 

工序表结构和内容如下

货号   工序    工价

15-3   车工    1.25

15-3   钳工    2.0

15-3   铣      3.0

15-3    表     1.5

 

问题是:

我想将这两个表中的内容连接生成一个"物料工序工价表"

物料工序工价表结构如下:

货号    名称    单位    工序工价

15-3目  盘子     个    车工1.25-钳工2.0-铣3.0-表1.5

 

因为产品表与工序表是一对多的关系,

请高手给作个实例.作一个按钮就生成我想要的表.

 

感谢

 

 

 

 

 

Top
liaohk 发表于:2010-04-02 13:23:51

请高手现身,小姐子急得解决方案。感谢



红尘如烟 发表于:2010-04-02 14:09:08

先新建一个模块,然后把下面的自定义函数复制到该模块中并保存:

Public Function GetString(货号 As String) As String
    Dim strSQL As String
    strSQL = "SElECT [工序] & [工价] FROM 工序表 WHERE 货号='" & 货号 & "'"
    GetString = CurrentProject.Connection.Execute(strSQL).GetString(, , , "-")
    GetString = Left$(GetString, Len(GetString) - 1)
End Function

 

接下来就可以通过查询得到你要的效果了:

 

SELECT 货号,
       名称,
       单位,
       GetString([货号]) AS 工序工价
FROM 产品表;



liaohk 发表于:2010-04-02 15:57:27
感谢,我试一下,谢谢你版主

liaohk 发表于:2010-04-02 16:26:16

红尘如烟 老师

      你好

 

   第二步我搞不来,我上传一附件,你帮搞搞,谢谢(就按您的方法)

点击下载此附件

红尘如烟 发表于:2010-04-03 10:42:12
liaohk 发表于:2010-04-03 16:42:42

谢谢你老师

 



liaohk 发表于:2010-04-03 16:48:46

老师你好

    假如我在“产品工序表“中增加一个字段为“合并”字段,我想把工序表中的字段按货号连接后,存入到“产品工序表”那个合并字段又如何操作呢?

 

 

工序表结构和内容如下

货号   工序    工价

15-3   车工    1.25

15-3   钳工    2.0

15-3   铣      3.0

15-3    表     1.5

 

产品表结构如下:

货号   名称   单位   合并(此为新增字段)

 

15-3   盘子    个

 

 

最后在“产品表”中的内容如下

货号   名称   单位        合并(此为新增字段)

15-3目  盘子     个    车工1.25-钳工2.0-铣3.0-表1.5

 

现在是不要新增加字段操作。

感谢各位老师帮助小女子,谢谢 

 



红尘如烟 发表于:2010-04-04 22:16:39

其实我最开始回答你的时候就是按照两个表这样子说的,只不过后来你传的附件里面只有一个表,所以我也就按照那一个表来做了,下面这个附件就是实际例子,里面有两个查询,一个是用来把合并后的内容添加到合并字段,另一个是用来清空已添加到合并字段的内容以便于重新测试,你可以运行查询后打开表查看效果

点击下载此附件



liaohk 发表于:2010-04-06 11:36:39

感谢你,老师,我测一下.



liaohk 发表于:2010-04-06 12:11:22

红尘如烟老师

      感谢你,我如何在窗体上作一按钮使用呢.?我是菜鸟,请帮助

 

 



liaohk 发表于:2010-04-06 14:19:13

红尘如烟老师.

        你好

         我测试了,很好,但还有个出错问题,当我"产品表"中增加一个物料,而"工价表"没有录入工序工价时,操作出错

提示:运行时错误'3021'

     BOF或EOF中有一个是真,或者当前的记录被删除.......

     请老师帮解决一下,我"产品表中"的数一定是大于工序工价的物料,有此物料需工价,有此物料需要工价才维护.

 

 

也就是说,当"产品表"中有物料号,而"工序表"中没有物料号时,点"内容添加到合并字段"时不提示这个错误.让没有工序价格的自动为空就行了.

 

    感谢



红尘如烟 发表于:2010-04-06 23:20:09

这个把错误处理代码加进去就行了

Public Function GetString(货号 As String, Optional 行分隔符 As String = "-") As String
On Error GoTo Err
    Dim strSQL As String
    strSQL = "SElECT [工序] & [工价] FROM 工序表 WHERE 货号='" & 货号 & "'"
    GetString = Nz(CurrentProject.Connection.Execute(strSQL).GetString(, , , 行分隔符))
    GetString = Left$(GetString, Len(GetString) - Len(行分隔符))
Err:
End Function
至于用按钮问题,你可以用向导创建一个按钮,然后在向导弹出的第一个对话框中“类别”选择“杂项”,“操作”选择“运行查询”,然后点下一步,再选中那个添加合并内容的查询,再点完成就行了



liaohk 发表于:2010-04-07 10:30:31

谢谢



总记录:13篇  页次:1/1 9 1 :