Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否可以在ODBC中创建子数据表?_Sql_Sql Server_Database_Ms Access - Fatal编程技术网

Sql 是否可以在ODBC中创建子数据表?

Sql 是否可以在ODBC中创建子数据表?,sql,sql-server,database,ms-access,Sql,Sql Server,Database,Ms Access,基本上,我正在尝试管理一个库存仓库,我想知道的是,有可能在链接表中实现子数据表吗?我已经找到了多篇关于这个问题的文章,但有些人更喜欢另一种方法,而另一些人则大胆地宣称,由于性能问题,不值得这样做。 (Im使用MS Access作为前端,MSSQL作为后端) 有人能澄清一下您是否能够在ODBC内创建子数据表吗?虽然您可以在链接的访问表上设置并使用子数据表,但该功能在链接到sql server的表上不起作用 但是,您可以做的是在表上创建一个查询 (注意:这是对一个表的查询) 然后在查询生成器中最上面

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


有人能澄清一下您是否能够在ODBC内创建子数据表吗?

虽然您可以在链接的访问表上设置并使用子数据表,但该功能在链接到sql server的表上不起作用

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

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

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

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

因此,每个查询都基于一个表。这样你就可以走下去了

一旦设置了子数据表(不使用或不能使用“自动”),则可以在下一个表下面的UI中展开每个表

因此,您可以看到这样的视图(最上面的是tours)。然后是一个预约,一群人去那个预约,等等

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

当您在设计模式中提出查询时,您必须选择设计,然后右键单击空白查询画布上的“任意位置”并选择“属性”。 例如:

所以不能直接在链接表上执行此操作

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

是的,您可以使用Access中的ODBC数据源来实现这一点,但是(不幸的是)您不能使用链接到sql server(或Oracle或其他)的表。但是您可以构建和保存查询(记住先保存,然后重新打开)。因此,保存的查询确实支持数据表,它们甚至可以用于外部ODBC数据源

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

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

实际上,您从未见过,甚至不必编写任何SQL来实现这一点

编辑: 好,跟进: 当然,问题是上述方法非常有效。很酷,但有种拥抱而不亲吻的感觉。 问题当然是现在?单击一次以高亮显示第一个查询(最顶部),然后在功能区中的“表单”下选择“数据表”

呸!就像魔术一样,你可以得到一个数据表表单,但是没有“+”可以扩展

那么,该怎么办?好的,按照上面的步骤,创建3个表(或者不管设置为查询的表有多少)

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

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

怎么做

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

像这样:

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

现在,在设计模式下,将第二个表单(子表单)从导航面板拖放到表单上

你会得到一个非常好的烂摊子,就像这样:

请非常小心地注意子窗体的属性表。注意链接主/子设置

所以,继续用这种方式填写表格

按照上面的方法尝试,只需两个From。您会发现,当您切换回上面的数据表模式时,它将显示“+”和扩展,就像查询一样

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

现在在设计模式下打开第一个窗体,然后在另一个窗体上拖放

通常情况下,子窗体上的子窗体不允许堆叠连续窗体视图,但数据表窗体是例外,允许这样做


结果与堆叠查询相同,而且实际上工作量较小,因为表单实际上允许您使用“生成器”进行链接主设置和子设置。

ODBC只是客户端应用程序和数据库服务器之间的编程接口ODBC用于链接数据库对象。然后创建子数据表,以访问您自己的表单。嘿,谢谢您花时间写这个答案。但是,我有一个问题,粘贴到表单上时,可以显示查询的所有内容,因为它对查询有效,但对表单无效?是的,可以。这是一个相当巧妙的把戏。我将展开我的答案查看编辑-我展示了如何将表单作为数据表使用-结果是,与实际构建所有这些查询相比,工作更少。只需构建(创建)一些数据表表单,然后通过拖放将它们链接起来。如果采用这种方式,则无需设置或输入子数据表设置。我没有意识到你想要的是实际的形式,而不仅仅是数据表的效果。但这确实有效,而且我敢说,这比查询要少一些。