0

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

首先,我将如何移动 MSHFlexGrid 中的列?例如,如果我希望第三列在网格中显示为第六列,是否有简单的单行代码可以做到这一点?

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

TIA,

凯文

4

2 回答 2

1

哇!VB6....回到未来!:-)

您可以使用 ColPosition 属性移动列。

本文展示了如何设置网格以显示分层数据。

如果您只想将客户名称显示在与主要数据相同的行上,那么只需为您的数据源创建正确的 SQL 也是可行的。就此而言,您也可以以相同的方式控制列顺序。

现在,考虑升级到 .Net 怎么样?开个玩笑……不,我不是。好的。我是,也许。:-)

于 2011-04-06T00:49:41.493 回答
1

列顺序通常由您的 SELECT 语句处理。

假设您有一个 Pies 表,它的 FruitID 外键与 Fruits 表中的 FruitID 相关:

SELECT PieID AS ID, Pie, Fruit FROM Pies LEFT OUTER JOIN Fruits
    ON Pies.FruitID = Fruits.FruitID

这将按顺序返回 3 个项目:ID、Pie 和 Fruit。

在查询/显示操作之后移动列很少使用,但是可以使用 ColPosition。

于 2011-04-06T00:56:02.780 回答