在表单中显示 DAO 表

Posted

技术标签:

【中文标题】在表单中显示 DAO 表【英文标题】:Display a DAO table in a form 【发布时间】:2012-06-30 17:53:56 【问题描述】:

我正在将旧的 VB6 应用程序升级到使用 DAO 连接到 Access 数据库的 VB.NET。我知道这是一项无可救药的过时技术,但考虑到更改为 ADO 的工作量,我决定继续使用 DAO,尽管在寻找文档时遇到了挫折。

我的问题是我想让 DataGridView 反映数据库中的表。当然,我可以让自己的例程手动设置列并填充 DataGridView,但如果这是一种方式,我想使用 DataSource 属性或其他一些内置函数。我找到了一个看起来很有希望的论坛post,但不幸的是我找不到提到的附件。

另外,如果有比 DataGridView 更适合的其他控件,请告诉我。

谢谢

【问题讨论】:

【参考方案1】:

DAO 文档并不难找到。安装 VB6 和 Microsoft Developer Network(VB6 附带的磁盘)。进入 VB6 IDE,查看代码,将光标放在 DAO 关键字上,按 F1。 Presto - 有用的文档!如果您更喜欢在线参考,DAO documentation from Access 2007 应该可以很好地满足您的需求。

所以您想将 DataGridViewTable 绑定到 DAO 表?好主意,但这是一个很大的问题。 VB6 应用程序是否使用数据绑定?

如果是这样,您将很难将其迁移到 VB.Net。考虑在 VB.Net 替换中转移到 ADO.Net。 如果没有,您也许可以通过 COM 从 VB.Net 使用 DAO,并且您可能会发现与 DAO 相关的 VB6 可以毫不费力地移植到与 DAO 相关的 VB.Net。我不知道。

【讨论】:

【参考方案2】:

一种选择是使用 Code Complete 中的方法。在 VB.NET 用户界面和遗留数据访问代码(您的 DAO 代码)之间放置一个漂亮、干净的层。该层将获取通过 DAO 获取的数据并将其传输到 DataTable 对象中。然后,将 DataTable 发送到 UI 并将其用作 DataGridView 的 .DataSource 属性。

但老实说,由于这涉及为每个返回数据供您显示的 DAO 函数编写代码,所以我只是将您的数据访问例程重构为 ADO.NET。由于 DAO 如此、如此、如此古老,在我看来,创建一个“新”应用程序并使用这种过时的技术是不负责任的,即使它在技术上可以“工作”。

【讨论】:

我决定使用 Visual Studio 中的数据绑定向导,并更彻底地替换旧的东西。厌倦了使用 DAO 所需的反向工程;)

以上是关于在表单中显示 DAO 表的主要内容,如果未能解决你的问题,请参考以下文章

表单多个表单项的动态校验总结

MS Access 在连接表中不存在的子表单中显示条目

Laravel 从视图中的表单填充数据库表并将其显示在同一视图中

访问:使用从另一个查询中选择的 DAO.recordset 运行查询

我希望当我单击添加按钮时,表单的值将显示在下表中[关闭]

子表单不显示在表单视图中