Access交流中心

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

treeview加载表方法之一:同表单字段,改加字段记录长度

王士权  发表于:2012-10-26 15:43:52  
复制

现有表T2(表中有两字段:C1和C2):

1、C1为编码字段,其编码规则:父01,子0101,孙010101,以此类推

2、C2为名称字段。

其树状TV0的加载事件为:

Private Sub Form_Load()
Dim Rst  As New ADODB.Recordset, Node As Object
Rst.Open "SELECT * FROM T2 ORDER BY C1", CurrentProject.Connection
With Me.TV0
    '.Font.Size = 10
    .FullRowSelect = True                            '节点整行选中
    Do Until Rst.EOF
        If Len(Rst!C1) = 2 Then
            .Nodes.Add , , "T" & Rst!C1, Rst!C2
        Else
            .Nodes.Add "T" & Left(Rst!C1, Len(Rst!C1) - 2), 4, "T" & Rst!C1, Rst!C2
        End If
    Rst.MoveNext
    Loop
End With
Rst.Close
Set Rst = Nothing
End Sub

 

我的问题是:

现在,我让C1编码字段的编码规则变为:父0001,子00010001,孙000100010001

请问:代码该如何改???

 

Top
金宇 发表于:2012-10-27 13:41:22
Private Sub Form_Load()
Dim Rst  As New ADODB.Recordset, Node As Object
Rst.Open "SELECT * FROM T2 ORDER BY C1", CurrentProject.Connection
With Me.TV0
    '.Font.Size = 10
    .FullRowSelect = True                            '节点整行选中
    Do Until Rst.EOF
        If Len(Rst!C1) = 4 Then
            .Nodes.Add , , "T" & Rst!C1, Rst!C2
        Else
            .Nodes.Add "T" & Left(Rst!C1, Len(Rst!C1) - 4), 4, "T" & Rst!C1, Rst!C2
        End If
    Rst.MoveNext
    Loop
End With
Rst.Close
Set Rst = Nothing
End Sub




王士权 发表于:2012-10-27 21:04:23

首先谢谢金鱼老师,

代码很好用,我调试成功。

 

 

追问:

如果表T2(及其包含的字段C1、C2)均来源于同一个表X2,

意思是表T2是表X2通过查询C3字段等于“1”得到,SQL查询语句如下:

SELECT X2.C1, X2.C2 FROM X2 GROUP BYX2.C1, X2.C2, X2.C3 HAVING (((X2.C3)=1));

我的问题是:

如果我上述的树 TV0 加载的数据不直接来源于T2表,而是来源于表X2(选取的字段仍然是C1、C2,条件是C3="1"),TV0加载的表不用单独生成一个T2。

请问这样可以吗?

如果可以,代码该怎么写???

谢谢

 

 

 



金宇 发表于:2012-10-31 08:48:12

这样试试

Rst.Open "select * from (SELECT X2.C1, X2.C2 FROM X2 GROUP BY X2.C1, X2.C2, X2.C3 HAVING X2.C3=1) as Temp", CurrentProject.Connection

 



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