Office中国论坛/Access中国论坛

标题: 请高手帮忙如何根据字符串定位列名读取其数据 [打印本页]

作者: lvjiantuzhu    时间: 2010-5-8 18:12
标题: 请高手帮忙如何根据字符串定位列名读取其数据
有一个表A有很多记录,我建了一个窗口B,使用的数据表视图显示这个表A的全部记录,我在窗口B中选择了其中一条记录C,然后引发一个事件D,事件D代码调用一个文本变量E,此文本变量E我根据不同情况赋值为表A的某一列的名称,然后事件D代码最终返回表A中记录C的列名为E的数据。。。。
我感觉逻辑是这样了,请高手帮忙
作者: lvjiantuzhu    时间: 2010-5-8 20:34
可能我表达的不是很清楚,我在很多论坛发了帖子我只是描述了功能,没具体说明我为何要这样做,不少回复看不懂!

我的这个表A有很多列是关联的其他表的ID,每条记录的类别不同,下一级数据会选择不同的关联表保存,我在类别表B中保存了表A的关联表C名称和关联列名D,我在数据表窗口固定列有双击事件,然后代码在类别表B中读取关联表C名称和关联列名D,然后由此读取关联表C中ID=关联列名D数据的记录
作者: lvjiantuzhu    时间: 2010-5-8 22:01
本帖最后由 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




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3