【问题标题】:It is possible to create an Subdatasheet in ODBC?可以在 ODBC 中创建子数据表吗?
【发布时间】:2021-01-09 08:58:17
【问题描述】:

基本上,我正在尝试管理一个库存仓库,我很好奇的是可以在链接表中实现子数据表吗?我找到了多篇关于这个问题的文章,但有些人更喜欢另一种方法,而另一些人则大胆地声称由于性能问题而这样做不值得。 (我使用 MS Access 作为前端,MSSQL 作为后端)

有人可以澄清您是否可以在 ODBC 中创建子数据表吗?

【问题讨论】:

  • ODBC 只是客户端应用程序和数据库服务器之间的编程接口
  • ODBC 用于链接数据库对象。然后创建子数据表以访问您自己的表单。

标签: sql sql-server database ms-access


【解决方案1】:

虽然您可以在链接的 Access 表上设置 + 使用子数据表,但该功能不适用于链接到 sql server 的表。

但是,您可以做的是在表上创建一个查询 (注意非常小心:这是对一个表的查询)。

然后在查询生成器的最上面的表中,您可以定义子数据表。

因此,在您开始设置数据表之前,将 2 3 或 4 个表创建为一个简单的查询。请注意,每个查询都可以只是一个“*”,如下面的屏幕截图所示。 并且在下一级表中,还可以设置子数据表,以此类推。

因此,只需确保每个查询都针对 ONE 表(链接表)。

因此,每个查询都基于一个表。因此,您可以按自己的方式工作。

一旦设置了子数据表(不要也不能使用“auto”),那么您可以让每个表在下一个表下方的 UI 中展开。

因此,您会得到这样的视图(最重要的是游览)。然后是一个预订,一群人到那个预订,等等。

所以,在 sql 中没有 JOINS。您不能在链接表上执行此操作,因为设置是只读的。但是,在最顶层的表上创建一个查询。只需单击所有列的“*”。现在先保存表格。

当您在设计模式下启动查询时,您必须选择设计,然后在空白查询画布上右键单击“任意位置”并选择属性。

例如这样:

因此您不能直接在链接表上执行此操作。

每个查询都是一个“基本”表。 按上面显示属性表,然后按照上面设置数据表。

是的,您可以在 Access 中使用 ODBC 数据源执行此操作,但是(不幸的是)您不能将链接表用于 sql server(或 Oracle 或其他)。但是您可以构建并保存查询(请记住先保存,然后重新打开)。因此,保存的查询确实支持数据表,而且它们甚至适用于外部 ODBC 数据源。

上面生成的 UI 不仅需要零代码,甚至还允许编辑数据。

我不能向最终用户推荐这个 UI,但是对于一些原型设计,以及无需任何代码即可编辑关系数据的简单快速方法?是的,以上方法确实有效。

您实际上从未见过甚至不必编写任何 SQL 才能使其工作。

编辑: 好的,跟进: 问题当然是上面的效果很好。很酷,但是没有亲吻的那种拥抱。 问题当然是现在?单击一次以突出显示第一个查询(最顶部),然后在功能区中选择表单下的数据表。

噗!就像魔术一样,您会得到一个数据表表单,但没有“+”可以展开!

那么,该怎么办?好的,好吧,按照上面的方法,创建 3 个(或者你设置为查询的多个表)。

原来你真的不需要那样做 4 个查询!!!

我的错,对不起! 您实际上可以使用链接表执行此操作!

怎么做?

好的,对于第一个链接表,单击(突出显示)。现在从功能区创建一个数据表表单。

像这样:

保存表单。 对每个查询执行此操作。 现在煎锅技巧: 回到最上面的第一个表格。以设计模式打开。

现在将第二个表单(子表单)从导航盘拖放到设计模式下的表单上。

你会得到这样的一团糟:

注意非常小心子表单的属性表。注意链接主/子设置!!!

所以,就这样继续填写表格吧。

只用两个 froms 就可以按照上面的方法尝试。您会发现,当您返回上述数据表模式时,它会显示“+”和扩展,就像查询时一样。

注意这里要非常小心: 您不必在此处创建 4 个查询。您可以直接基于每个基表创建每个表单。因此,这节省了为每个查询创建查询的需要。 只需为第一个链接表创建一个表单。 然后是第二个链接表的表单。

现在以设计模式打开第一个表单,然后拖放到另一个表单上。

通常子表单上的子表单不允许堆叠连续表单视图,但数据表表单是一个例外并允许这样做。

结果与堆叠查询相同,实际上工作量更少,因为表单实际上允许您使用“构建器”进行链接主设置和子设置。

【讨论】:

  • 您好,感谢您花时间写这个答案。但是,我有一个问题,可以在粘贴到表单时显示查询中的所有内容,因为它适用于查询但不适用于表单?
  • 是的,你可以。这是一个非常巧妙的技巧。我会扩展我的答案
  • 查看编辑 - 我展示了它如何与表单作为数据表一起工作 - 结果证明它的工作量比实际构建所有这些查询要少。只需构建(创建)一些数据表表单,然后通过拖放将它们链接起来。如果您这样做,则无需设置或输入任何子数据表设置。我没有意识到您想要实际的表格,而不仅仅是数据表的效果。但这确实有效,而且我敢说比使用查询做的工作要少。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 2011-12-21
  • 2023-02-21
  • 1970-01-01
相关资源
最近更新 更多