这个表格是如何绑定的?

Posted

技术标签:

【中文标题】这个表格是如何绑定的?【英文标题】:How is this form bound? 【发布时间】:2015-06-03 01:02:28 【问题描述】:

我们正在使用作为 SQL Server 数据库前端的 MS Access 数据库 (2010)。

其中一位程序员创建了一个绑定到链接表的表单。

我的问题是这样的:

所有控件都是未绑定的,但它们总是填充来自查询的数据。怎么会这样?我真的不喜欢它。我想知道它是不是由某个向导的查询创建的某种形式?

[更新]

我发现,如果我从表单中删除 Record Source,所有控件都会消失,而我只有一个表格视图!

这个“东西”叫什么?

这不是我想要的工作方式;我可以将其转换为正常形式还是必须从头开始重建它?

【问题讨论】:

【参考方案1】:

表单的 VBA 可能通过 ODBC 将 ADO 或 DAO 记录集调用到 SQL Server 数据库,并将其附加到表单的 RecordSource 或使表单未绑定,并将值设置为与记录集中的字段对应的每个控件。在其 VBA 模块中查看表单背后的代码。或者,可以运行传递查询并将其绑定到表单。

这是将前端连接到后端系统的更艰难的途径,因为您必须绕过 Access 的所有默认特性、命令和功能。使用未绑定的表单,开发人员必须创建自定义更新、插入、保存和删除事件以进行记录管理;数据输入的验证逻辑;和取决于表单交互的常量游标调用。但在某种意义上,这反映了软件和 Web 应用程序的构建方式。 html/php 页面、Java 或 Python 脚本、R 数据帧是空设计(“未绑定”)的 shell,直到从连接调用的数据库源检索数据。

更简单的方法是链接 SQL Server 后端表并将它们绑定到 Access 表单。链接表与任何本地表一样可用,并且可以在任何上下文(表单、查询、报告、宏、模块)中使用。每次打开表单或触发事件时,无需大量代码调用 ODBC 连接,然后再自定义函数。

【讨论】:

所以控件是由查询中的字段自动填充的? 再次检查表单后面的 VBA。查看是否在 OnOpen、OnLoad 或 OnCurrent 事件中将 ODBC 或本地记录集调用到窗体的记录源。如果是这样,控件将在设计视图期间解除绑定。记录集可以是来自外部数据库的表,也可以是来自本地数据库的查询。【参考方案2】:

显然这不是一个真实的形式。我还没有想出如何复制这个。如果我能弄清楚,我会在这里发帖。

但我认为它是 Access quickie-wizard 制作的东西之一,它实际上是一个查询,但有一个表单视图。所以当我删除记录源时,没有查询字段可以转换为控件,所以它们就消失了。

我最终创建了一个新表单并将所有控件从查询视图表单复制到真实表单。然后我复制了所有的vba代码。然后我将新表单连接到原始查询。

它现在就像一个魅力!

【讨论】:

以上是关于这个表格是如何绑定的?的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap 可编辑表格,怎么绑定下拉框

vue:如何将一个对象渲染到一个表格中

纯Django表格绑定用户提交表格和视图

如何在ios的表格视图中绑定数组数据?

WPF 如何实现可编辑表格,类似Excel

iview的表格如何单击这行就选中