根据列名

时间:2017-05-31 15:20:38

标签: ms-access

我继承了一个超越我的MS Access项目:表A包含考试数据,因此A中的每个字段都是考试项目的名称,值是该项目上获得的分数。我的任务是将这些结果转换为表B,表B有一个字段用于项目名称,一个字段用于相应的值。

所以它看起来像这样:

Table A:
  A.Item01
  A.Item02
  etc.

Table B:
   NameofFieldinTableA
   Result

...所以如果A.Item01 = 1,我希望将其更新为表B:

NameOfFieldinTableA = Item01    结果= 1

我为无法更好地解释这一点而道歉,但这让我完全难过。我唯一的猜测是在VBA写点什么?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

是的,您可以使用VBA循环遍历表中的字段 - 使用NAME属性获取NameofFieldinTableA和VALUE属性以获取结果。所以VBA看起来像这样:

Dim rsA as dao.recordset
Dim rsB as dao.recordset
dim fld as dao.field

Set rsA = CurrentDB.openRecordset("TableA", dbopendynaset)
Set rsB = CurrentDB.openRecordset("TableB", dbopendynaset)

Do Until rsA.EOF
   For each fld in rsA.Fields
       rsB.AddNew
       rsB!NameofFieldinTableA = fld.Name
       rsB!Result = fld.Value
       rsB.Update
   Next
   rsA.MoveNext
Loop

rsA.close
rsB.Close

Set rsA = Nothing
Set rsB = Nothing