我正在开发一个连接到SQL Server 2008 R2数据库的VB6程序。在过去,我一直使用MSFlexGrid控件并手动填充它。然而,现在支付我的人要我使用数据绑定网格,这迫使我使用MSHFlexGrid控件,因为我使用ADO而不是DAO。所以,我有两个问题......
首先,我如何移动MSHFlexGrid中的列?例如,如果我希望第三列显示为网格中的第六列,是否会有一行简单的代码?
其次,不管你信不信,除了从记录集中显示数据之外,我从来不必在网格中做任何事情。但是,现在我有一个记录集,其中一些字段只包含引用其他文件中记录的ID号 - 例如,包含引用Customers表中记录的ID号的字段,而不是包含客户名称的字段。什么是最简单的方法,而不是让列显示记录集中的客户ID号,而该列显示客户名称?我以为我在某个地方读到有一种方法可以在MSHFlexGrid列中嵌入一个sql命令,但是如果有的话我就不知道怎么做了。这是可能的,还是有更简单的方法呢?
TIA,
凯文
答案 0 :(得分:1)
哇! VB6 ....回到未来! : - )
您可以移动列using the ColPosition Property。
本文介绍如何将网格设置为display hierarchical data.
如果您只想在与主数据相同的行上显示客户名称,那么只需为您的数据源创建正确的SQL即可。就此而言,您也可以以相同的方式控制列顺序。
现在,考虑升级到.Net怎么样?开玩笑......不,我不是。好。我也许是。 : - )
答案 1 :(得分:1)
列顺序通常由SELECT语句处理。
假设你有一个Pies表,它在Fruits表中有一个与FruitID相关的FruitID外键:
SELECT PieID AS ID, Pie, Fruit FROM Pies LEFT OUTER JOIN Fruits
ON Pies.FruitID = Fruits.FruitID
按此顺序返回3项:ID,Pie和Fruit。
很少使用查询/显示操作后移动列,但是可以使用ColPosition。