Access交流中心

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

SelHeight 不起作用

良子  发表于:2012-09-03 08:44:42  
复制

本人做了一个软件,只能选一行复制,请老师帮助一下,怎样才能选多行。谢谢

Private Sub Command25_Click()
Dim i As Long, j As Long
Dim ctls As Controls, ctl As Control
Set ctls = Me.Child2.Form.Controls
Me.Child2.SetFocus
Dim MyTop As Long
Dim MyHeight As Long
MyTop = Me.查询7.Form.SelTop
MyHeight = Me.查询7.Form.SelHeight

For i = 0 To MyHeight ' 选定的行数
    Me.查询7.Form.SelTop = MyTop + i
    If Me.Child2.Form.NewRecord <> True Then
        DoCmd.RunCommand acCmdRecordsGoToNew '增加一条记录
    End If
    For Each ctl In ctls
        If ctl.ControlType <> acLabel Then
            ctl.Value = Me.查询7.Form.Controls(ctl.name).Value
        
        End If
    Next ctl
    Me.Child2.Form.Recalc
Next i

End Sub

 

Top
宏鹏 发表于:2012-09-03 13:11:43
参考这示例http://www.accessoft.com/article-show.asp?id=5145,示例中SelHeight是写在子窗体的退出事件中的

良子 发表于:2012-09-03 17:16:13
谢谢你的帮助,我看的就是这个软件,可还是只能复制一行,不知该怎么做。

良子 发表于:2012-09-03 19:08:52

其中 MyHeight = Me.查询7.Form.SelHeight

SelHeight一直等于0为什么。



煮江品茶 发表于:2012-09-04 11:57:32

要设模块级的变量来记录选择的行数。这是因为在焦点离开子窗体时,选择的行会变为0。

 

Dim i0 As Long, n As Long

 

Private Sub 子窗体_Exit(Cancel As Integer)
   i0 = Me.子窗体.Form.SelTop
   n = Me.子窗体.Form.SelHeight
End Sub

 



良子 发表于:2012-09-04 17:07:41
谢谢老师帮助

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