VB6和数据绑定的MSHFlexGrid,移动和填充列

时间:2011-04-06 00:39:03

标签: vb6 databound-controls

我正在开发一个连接到SQL Server 2008 R2数据库的VB6程序。在过去,我一直使用MSFlexGrid控件并手动填充它。然而,现在支付我的人要我使用数据绑定网格,这迫使我使用MSHFlexGrid控件,因为我使用ADO而不是DAO。所以,我有两个问题......

首先,我如何移动MSHFlexGrid中的列?例如,如果我希望第三列显示为网格中的第六列,是否会有一行简单的代码?

其次,不管你信不信,除了从记录集中显示数据之外,我从来不必在网格中做任何事情。但是,现在我有一个记录集,其中一些字段只包含引用其他文件中记录的ID号 - 例如,包含引用Customers表中记录的ID号的字段,而不是包含客户名称的字段。什么是最简单的方法,而不是让列显示记录集中的客户ID号,而该列显示客户名称?我以为我在某个地方读到有一种方法可以在MSHFlexGrid列中嵌入一个sql命令,但是如果有的话我就不知道怎么做了。这是可能的,还是有更简单的方法呢?

TIA,

凯文

2 个答案:

答案 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。