Office中国论坛/Access中国论坛

标题: 请教如何用代码将表1中的数据整理的表2中! [打印本页]

作者: sxgaobo    时间: 2015-7-7 16:49
标题: 请教如何用代码将表1中的数据整理的表2中!
如何用代码将表1中的数据整理的表2对应的字段中?
作者: 盗梦    时间: 2015-7-7 16:54
可以使用ADO打开表1,遍历逐行读取数据,同时用ADO写入表2对应的列中
作者: leonshi    时间: 2015-7-7 16:55
写两个ado比如表1的记录集是rst,表2的记录集是rst1,然后再写rst1的更新代码,rst1.字段1=rst.字段1,rst1.字段2=rst.字段2.........,rst1.update
当然你还要写代码判断是否有重复记录。
作者: roych    时间: 2015-7-8 14:39
这种特殊格式,建议用Excel处理好再导入。数组公式很轻易能解决一列转多行多列问题:
[attach]56781[/attach]

作者: todaynew    时间: 2015-7-8 17:35
本帖最后由 todaynew 于 2015-7-8 17:40 编辑

1、先建立一个交叉查询,命名为查询1
TRANSFORM First(a.字段) AS 字段
SELECT Mid(a.字段,2) AS num
FROM 表1 AS a
GROUP BY Mid(a.字段,2)
PIVOT Left(a.字段,1);

2、写代码:
dim ssql as string
ssql="insert into 表2 (A,B,C) Select A,B,C from 查询1"
currentdb.execute ssql
[attach]56787[/attach]

作者: sxgaobo    时间: 2015-7-9 10:49
todaynew 发表于 2015-7-8 17:35
1、先建立一个交叉查询,命名为查询1
TRANSFORM First(a.字段) AS 字段
SELECT Mid(a.字段,2) AS num

谢谢大家的关注和回复!
我给的只是个例子,里面的数据没那么规律,可能是姓名、性别、出生日期什么的,但隔N行重复是规律的
作者: todaynew    时间: 2015-7-9 11:09
sxgaobo 发表于 2015-7-9 10:49
谢谢大家的关注和回复!
我给的只是个例子,里面的数据没那么规律,可能是姓名、性别、出生日期什么的, ...

Sub AtoB(ByVal Atbname As String, ByVal m As Integer, ByVal Btbname As String)
    Dim rsA As New ADODB.Recordset, rsB As New ADODB.Recordset
    Dim i As Long, j As Long
    Dim vals(m - 1) As Variant
   
    rsA.Open Atbname, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    rsB.Open Atbname, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    For i = 1 To rsA.RecordCount
        vals((i - 1) Mod m) = rsA.Fields(0).Value
        If i Mod m = 0 Then
            rsB.AddNew
            For j = 0 To rsB.Fields.Count - 1
                rsB.Fields(j).Value = vals(j)
            Next
            rsB.Update
        End If
        rsA.MoveNext
    Next
End Sub
作者: sxgaobo    时间: 2015-7-11 00:20
本帖最后由 sxgaobo 于 2015-7-11 00:21 编辑
todaynew 发表于 2015-7-9 11:09
Sub AtoB(ByVal Atbname As String, ByVal m As Integer, ByVal Btbname As String)
    Dim rsA As New ...


谢谢版主!!
我试了,m处报错了,哪不对麻烦您给看看!!!







欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3