设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2940|回复: 4
打印 上一主题 下一主题

[帮助] 多选列表框赋值给子窗体的问题?

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-18 13:18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wktt6833 于 2011-4-18 13:21 编辑

Private Sub cmdok_Click()
'将列表框中的选中的名字批量写入表marktemp
    Dim frm As Form, ctl As Control
    Dim varItm As Variant
    Set frm = Forms!mark
    Set ctl = frm!List2
For Each varItm In ctl.ItemsSelected
      
       myname = ctl.ItemData(varItm)
      
此处 将第一列第一个选中行 赋值给 变量  myname  已成功.
现在的问题是
如何 将第二列第一个选中行 赋值给 变量  myDM
        mydm =
        
        Dim rst As DAO.Recordset
        Set rst = CurrentDb.OpenRecordset("marktemp", dbOpenDynaset)
        rst.AddNew
        rst("name") = myname
        
        rst("m1") = mydm
        
        rst.Update
        rst.Close
        Set rst = Nothing
    Next varItm
    Me.marktemp_child.Requery
    cmdsave.Enabled = True
    DoCmd.SetWarnings True
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-4-18 14:02:05 | 只看该作者
本帖最后由 roych 于 2011-4-18 14:40 编辑

用Column属性来做……修改后的代码大体如下,貌似比你原先要简单些许(暂时还没做错误处理,你可以根据实际写下):
  1. Dim i As Long
  2. Dim rst As DAO.Recordset
  3. Set rst = CurrentDb.OpenRecordset("marktemp", dbOpenDynaset)
  4. For i = 0 To Me.List2.ListCount - 1
  5. If Me.List2.Selected(i) = True Then
  6. rst.AddNew
  7. rst.Fields("name").Value = Me.List2.Column(0, i)
  8. rst.Fields("m1").Value = Me.List2.Column(1, i)
  9. rst.Fields("m2").Value = Me.List2.Column(2, i)
  10. rst.Update
  11. End If
  12. Next i
  13. rst.Close
  14. Me.marktemp_child.Requery
  15. cmdsave.Enabled = True
  16. DoCmd.SetWarnings True
复制代码

我一般习惯于用ADO……不过,DAO用起来也差不多。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
发表于 2011-4-18 14:29:58 | 只看该作者
Private Sub cmdok_Click()

'将列表框中的选中的名字批量写入表marktemp
    Dim i As Integer
   
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("marktemp", dbOpenDynaset)
    With rst
        For i = 0 To Me.List2.ListCount - 1
            If Me.List2.Selected(i) Then
                myname = List2.Column(0, i)
                mydm = List2.Column(1, i)

                rst.AddNew

                rst("name") = myname
                rst("m1") = mydm

                rst.Update
            End If
        Next
    End With
    rst.Close
    Set rst = Nothing

    Me.marktemp_child.Requery

    cmdsave.Enabled = True
    DoCmd.SetWarnings True
End Sub
4#
 楼主| 发表于 2011-4-18 15:02:22 | 只看该作者
感谢各位的帮助,昨于在网上找了大半天,没找到 相同的事例,现在问题解决了.
5#
发表于 2012-12-4 00:23:45 | 只看该作者
各有千秋,很好的实例。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 14:41 , Processed in 0.128372 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表