Access交流中心

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

[5分]两个表结合生成一个表,请求帮助!

芊芊  发表于:2012-05-09 21:26:53  
复制

A表 字段名为 XM01  XM02  XM03  XM04....
    记录     0001  张三   男    3500

B表 字段名为 ZDMC  HZMC
     记录    XM01  编号
             XM02  姓名
             XM03  性别
             XM04  工资
----生成一个新表 C表
c表 字段名为 编号  姓名  性别   工资
    记录     0001  张三   男    3500

怎样实现B表的数据记录与A表字段名自动结合生成C表?谢谢!

点击下载此附件

 

Top
纵云梯 发表于:2012-05-09 22:48:41

点击下载此附件

是这样吗?



煮江品茶 发表于:2012-05-09 23:22:08

不必创建表,这只是一个别名的问题,创建查询或者返回sql语句字符串即可。

 

1、可以一次性创建查询:

function 创建工资查询()
Dim Qdef As QueryDef
Dim strsql As String
Dim rs As New ADODB.Recordset
Dim i As Long
Set Qdef = CurrentDb.CreateQueryDef('工资查询')
rs.Open "B", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
strsql=""
for i=1 to rs.RecordCount
    strsql=strsql & rs!ZDMC.value & " as " & rs!HZMC.value & ","
    rs.MoveNext
next
strsql= left(strsql,len(strsql)-1)
strsql="select " & strsql & " from A"
Qdef.SQL
Qdef.Close
Set Qdef = Nothing
end function

 

2、如果只需要返回一个sql语句的字符串,作为窗体或者报表的数据源,则:

function 工资查询字符串() as string
Dim strsql As String
Dim rs As New ADODB.Recordset
Dim i As Long
rs.Open "B", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
strsql=""
for i=1 to rs.RecordCount
    strsql=strsql & rs!ZDMC.value & " as " & rs!HZMC.value & ","
    rs.MoveNext
next
strsql= left(strsql,len(strsql)-1)
strsql="select " & strsql & " from A"
工资查询字符串=strsql
end function

 



煮江品茶 发表于:2012-05-10 07:31:19

详细论述和示例。请参见:http://www.accessoft.com/article-show.asp?id=6799

 



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