设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 请高手帮忙如何根据字符串定位列名读取其数据

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-8 18:12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个表A有很多记录,我建了一个窗口B,使用的数据表视图显示这个表A的全部记录,我在窗口B中选择了其中一条记录C,然后引发一个事件D,事件D代码调用一个文本变量E,此文本变量E我根据不同情况赋值为表A的某一列的名称,然后事件D代码最终返回表A中记录C的列名为E的数据。。。。
我感觉逻辑是这样了,请高手帮忙
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2010-5-8 20:34:03 | 只看该作者
可能我表达的不是很清楚,我在很多论坛发了帖子我只是描述了功能,没具体说明我为何要这样做,不少回复看不懂!

我的这个表A有很多列是关联的其他表的ID,每条记录的类别不同,下一级数据会选择不同的关联表保存,我在类别表B中保存了表A的关联表C名称和关联列名D,我在数据表窗口固定列有双击事件,然后代码在类别表B中读取关联表C名称和关联列名D,然后由此读取关联表C中ID=关联列名D数据的记录
3#
 楼主| 发表于 2010-5-8 22:01:02 | 只看该作者
本帖最后由 lvjiantuzhu 于 2010-5-8 23:16 编辑

我用遍历列名的方法实现了我想要的功能,下面是代码,不知道有没有更简便的函数能直接定位某一列的数据!

Private Sub aaa_DblClick(Cancel As Integer)
    Select Case Me.查看窗口参数ID
        Case 1
            
        Case Else
            Dim rs As Recordset
            Set rs = Me.RecordsetClone
            
            Dim rs1 As New ADODB.Recordset
            
            If Not Me.链接表参数ID1 = 1 Then
                rs1.Open Me.链接表名称.Value, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
                For i = 0 To rs.Fields.Count - 1
                    If Me.链接项 = rs.Fields(i).Name Then
                        rs1.Find "[" & Me.链接项 & "]=" & str(rs.Fields(i).Value)
                        If Not rs1.EOF Then
                            For j = 0 To rs1.Fields.Count - 1
                                If Me.数据ID项 = rs1.Fields(j).Name Then
                                    DoCmd.OpenForm Me.窗口名称, , , , , , rs1.Fields(j).Value
                                    Exit For
                                End If
                            Next
                        End If
                        Exit For
                    End If
                Next
            Else
                For i = 0 To rs.Fields.Count - 1
                    If Me.数据ID项 = rs.Fields(i).Name Then
                        rs.Bookmark = Me.Bookmark
                        DoCmd.OpenForm Me.窗口名称, , , , , , rs.Fields(i).Value
                        Exit For
                    End If
                Next
            End If
            
    End Select
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 07:38 , Processed in 0.086127 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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