刚有个网友咨询,对于下列这样的表格
大厦
|
层数
|
性质
|
远航
|
1-2
|
超市
|
远航
|
13-18
|
住宅
|
如何快速生成下面的表格
大厦
|
当前层数
|
性质
|
远航
|
1
|
超市
|
远航
|
2
|
超市
|
远航
|
13
|
住宅
|
远航
|
14
|
住宅
|
远航
|
15
|
住宅
|
远航
|
16
|
住宅
|
远航
|
17
|
住宅
|
远航
|
18
|
住宅
|
这种,我平时最喜欢的方式是取数组后用循环,然后用记录集新增。具体代码如下:
Sub 生成()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim t, l1, l2, l
t = DCount("*", "大楼登记表")
Set db = CurrentDb()
Set rs = db.OpenRecordset("select * from 大楼登记表")
arr = rs.GetRows(t)
Set rs = db.OpenRecordset("登记表")
For i = 0 To t - 1
If InStr(arr(2, i), "-") > 0 Then
l1 = Split(arr(2, i), "-")(0): l2 = Split(arr(2, i), "-")(1)
Else
l1 = arr(2, i): l2 = arr(2, i)
End If
For l = l1 To l2 Step 1
rs.AddNew
rs!大厦 = arr(1, i)
rs!当前层数 = l
rs!性质 = arr(3, i)
rs.Update
Next
Next
rs.Close
Set db = Nothing
End Sub
Access 案例如下:
测试access