访问如何使一个单元格值依赖于另一个单元格中的值

Posted

技术标签:

【中文标题】访问如何使一个单元格值依赖于另一个单元格中的值【英文标题】:Access How to make one cell value depend on the value in another 【发布时间】:2013-12-10 09:59:07 【问题描述】:

注意:为清楚起见,已重写整个问题。

我一直在为这个看似简单的问题而烦恼,我确切地知道我想做什么,但不知道如何去做。

我有 2 个包含以下相关列的表

Products: ProductID, ProductName

每个条目都是该公司生产的一种产品。 ProductID 是主键。很少有新的条目。

Orders: OrderID, ProductName, ArticleID

每个条目都是对公司的订单。 OrderID 是主键。新条目不断产生。

这是我正在寻找的用户体验:

用户在 Orders.ProductName 中输入产品名称。

Orders.ProductID 自动成为产品的 ProductID。 这可以通过转到 Products 表,找到 ProductName 与用户输入的名称匹配的行,然后返回该行的 ProductID。

在 Excel 中,这就像在单元格中输入“=”,后跟所需的代码。我不想在自动生成的字段中存储任何数据,因为它存在于其他地方,并且最好不要将相同的信息存储在两个不同的地方。

我已经尝试了几个 SQL 查询,包括内部连接,但我终其一生都无法弄清楚如何从单个单元格中获取信息(代码中没有预定义。从中获取 ProductID 的行取决于用户- 书面产品名称)。

再次:最好所有这一切都以一种方式完成,不仅将最终数据输入到单元格中,而且将所有这些都作为一个函数,如果任何数据发生变化,都会随时重新评估(就像“ =SUM(B4, B5)" 在 excel)

【问题讨论】:

您的意思是您想要符合该行唯一 ID 的记录?如果是这样,为什么不只是 WHERE id = 你想要什么 id? 为什么在使用 MS Access 时使用mysql 标签? @StevenSmith:问题是,我希望查询适用于所有行,而不是代码中输入的特定行。 【参考方案1】:

好吧,不知道你在问什么,但这里是。

您的查询似乎没问题,只是您需要根据某种原因对其进行选择性。

我的意思是您当前返回匹配两个表的所有记录,您想根据下拉框过滤它吗?

如果这是真的,您可以使用 MS SQL 存储过程来执行此操作。 像下面这样:

USE [YourDatabaseName]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[MyProcedureName]
@dropDownID int
AS

SELECT Articles.ArticleID
FROM Articles 
INNER JOIN Orders ON Articles.ArticleNr=Orders.ArticleNr
WHERE articles.ID = @dropDownID

然后在您的代码 vb 或 c# 中,只需将所选下拉列表的值传递给过程并返回结果。

这是你的追求吗?

【讨论】:

Orders.ArticleNr 下拉框就位,我可以在其中选择出现在 Articles.ArticleNr 中的任何值。我不关心从下拉框中获取信息,我只想能够弄清楚书面/选定的 ArticleNr 所暗示的 ArticleID。我尝试了您的查询,但 MS Access 无法识别“USE”,因此不允许我运行查询。 啊,我的错,忘记了你对使用 Access 的感觉。【参考方案2】:

你可能会这样设计

articleTable -- ArticleID, ArticleNr

订单 -- OrderID、ArticleID

select Orders.OrderID, Orders.ArticleID, articleTable.ArticleNr
from Orders
    left join articleTable on Orders.ArticleID = articleTable.ArticleID

当一个新订单输入到订单表中,并且用户键入 在“96964-A”进入ArticleNr,我希望ArticleID自动 变成“2”。如果这反过来起作用,那将是最佳的 好吧。

只需将 ArticleID 设置为 SQL Server 中的标识或 MS Access 中的自动编号

【讨论】:

Articles.ArticleID 是一个自动编号。 (以及该表的主键)我想要自动化的是 Orders.ArticleID。当 Orders.ArticleNr 输入数据库时​​,我希望同一行上的 Orders.ArticleID 的值成为 ArticleNr 值匹配的行中的 Articles.ArticleID。另外,我运行了您的查询,但它似乎与我正在寻找的相反。我希望查询返回的是 Articles.ArticleID 的一个实例

以上是关于访问如何使一个单元格值依赖于另一个单元格中的值的主要内容,如果未能解决你的问题,请参考以下文章

赢表格。使用 BindingNavigator 时如何使 DataGridView 写入单元格值

当另一个更改客户端时,Telerik RadGrid设置单元格值

C#datagridview在拖放值之前获取当前单元格值

Excel VBA:复制增量单元格值

如何使用开放的 XML C# 从 .xlsx 获取单元格中显示的值

VBA:如何搜索单元格范围的值,并返回该位置旁边的单元格?