设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 这段代码有什么问题?

[复制链接]
跳转到指定楼层
1#
发表于 2008-9-23 20:12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我建立了两个表,第一个表中有两列(证券代码和证券名称),第二个表是关于某个证券的一些财务数据。
我在第二个表中也有证券代码和证券名称这两列,而且证券名称是组合框。我用窗体向导建立了一个窗体,把第二个表中所有的列都放上去。我希望当我在窗体上选择证券名称时,证券代码这里会自动跳出相应的代码。所以编写了下面这段代码来实现。可是,系统毫无反应。能否请高手看看,问题出在哪里?

谢谢!

Private Sub 证券名称_AfterUpdate()
    Dim rs As adodb.Recordset
    Set rs = New adodb.Recordset
    rs.Open "证券代码", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    Do While Not rs.EOF
        If rs.Fields("证券名称") <> Me.证券名称 Then
            rs.MoveNext
        Else
            Me.证券代码 = rs.Fields("证券代码")
            Exit Sub
        End If
    Loop
End Sub

[ 本帖最后由 sun_ocean 于 2008-9-23 20:47 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-9-23 20:36:55 | 只看该作者
Form.Refresh作什么?form又是什么?

代码写倒了,应该是找到了,...退出,没找到就正常运行下去.
3#
发表于 2008-9-23 20:56:45 | 只看该作者
这段代码本身看不出有什么问题,要看你的例子。

另外,没有必要有DO循环的,用FINDFIRST方法比较好。
4#
 楼主| 发表于 2008-9-23 21:02:03 | 只看该作者
谢谢楼上的回复。form.refresh是后来加的,原来没有加的时候也一样不行。改成下面这样子,还是不行。
  
  Dim rs As adodb.Recordset
    Set rs = New adodb.Recordset
    rs.Open "证券代码", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    Do While Not rs.EOF
        If rs.Fields("证券名称") =Me.证券名称 Then
            Me.证券代码 = rs.Fields("证券代码")
            Exit Sub
        Else
            rs.MoveNext
        End If
    Loop
5#
发表于 2008-9-23 22:33:16 | 只看该作者
1. 这种功能应该不需要什么代码,就能完成
2. 应该是输入证券代码就能自动显示证券名称,而不是输入证券名称就能显示代码
   因为,名称有可能存在相同的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-2 02:16 , Processed in 0.089475 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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