从数据库 table 中读取(查找多个条件)记录,并使用匹配条件写入数据库 table
Read (lookup multiple criteria) records from database table, and Write to database table with matching criteria
如何在 Access 查询或 VB.net 代码中复制下面的等式?
{=SUM(IF('Customer '!$G='Glass Fabrication'!$D:$G,IF("Hole"='Glass Fabrication'!$A:$A,'Glass Fabrication'!$D:$G)))*E3}
上面的等式是我在 excel 中用于 Vlookup 超过 1 个值和 returns 匹配 2 个条件的值。 (现在,这可以一直持续下去,并且有尽可能多的标准)
现在,我正在 VB.net
使用 MS Access
database
(.mdb) 创建报价系统。
我有一个 table
,它列出了具有多个标识符和 4 个不同价格的所有产品。为简单起见,假设我有 2 个标识符和 4 个价格。
我有像 Name
Category
这样的字段作为标识符,示例数据如下所示。
Name
Category
Tier 1
Tier 2
Tier 3
Tier 4
苹果……水果…………$2………………$2………………$1.7…… ....$1.5
苹果……果汁......$1.......$1......$.75.. ......$.75
橘子..水果.......$1.8.......$1.8.......$1.5........$1.3
可口可乐...饮料......$1.......$1......$.75.. ......$.75
用户输入 = 苹果、果汁、第 1 层
我可以在 excel 中创建 =Sum(If
公式来检查 Name
列以匹配所选值,然后检查 Category
列以检查第二个值,然后检查第一行 header 是否有 Tier 1 value
和 returns </code>.</p>
<p>我是 Access 数据库的新手,所以我很难复制它。我试过查询,但它只有 "filters" 这样的条件,并没有 return 一个值。</p>
<p>最终,我想要一个名为 <code>Shopping Cart
的 table/query 来接受用户输入,例如“Apple
、Juice
、Tier 1
”和第 4 列(read-only) 会通过查找这 3 个东西自动计算并找到 </code> 中的 <code>Price
。
我已经设置了购物车 table,它运行良好,只是我不知道如何自动包含此 read-only calculated/vlookup 列。 (我在 VB.net 中使用 DataGridView 绑定到需要 3 个用户输入的购物车 table。)
最好的方法是什么?在 Access 中进行查询并使其在数据库本身中计算 or
VB.net 以处理计算并在每次用户输入 3 个值时写入第 4 列?
在 MS Access 中尝试这个 SQL 查询,前提是您的示例数据保存为 Access table:
SELECT Table.Name, Table.Category, [Enter Tier],
IIF([Enter Tier] = 'Tier 1', Table.[Tier 1], IIF([Enter Tier] = 'Tier 2', Table.[Tier 2],
IIF([Enter Tier] = 'Tier 3', Table.[Tier 3], IIF([Enter Tier] = 'Tier 4', Table.[Tier 4], Null)))) As Price
FROM Table
WHERE Table.Name = [Enter Name] AND Table.Category = [Enter Category]
当您打开查询时,将弹出输入字段供用户填写作为参数请求。最好使用 Access 表单让用户填写未绑定的文本框,然后命令按钮使用文本框值打开查询。表单字段可以替换上面的输入字段。
Dim row AS DataRow = DataTable.Select("ColumnName1 = 'value3'").FirstOrDefault()
If Not row Is Nothing Then
searchedValue = row.Item("ColumnName2")
End If
这里的value3是一个常数值。要使用对象(变量),
Dim row AS DataRow = DataTable.Select("ColumnName1 = '" & variable & "'").FirstOrDefault()
已被使用。
如何在 Access 查询或 VB.net 代码中复制下面的等式?
{=SUM(IF('Customer '!$G='Glass Fabrication'!$D:$G,IF("Hole"='Glass Fabrication'!$A:$A,'Glass Fabrication'!$D:$G)))*E3}
上面的等式是我在 excel 中用于 Vlookup 超过 1 个值和 returns 匹配 2 个条件的值。 (现在,这可以一直持续下去,并且有尽可能多的标准)
现在,我正在 VB.net
使用 MS Access
database
(.mdb) 创建报价系统。
我有一个 table
,它列出了具有多个标识符和 4 个不同价格的所有产品。为简单起见,假设我有 2 个标识符和 4 个价格。
我有像 Name
Category
这样的字段作为标识符,示例数据如下所示。
Name
Category
Tier 1
Tier 2
Tier 3
Tier 4
苹果……水果…………$2………………$2………………$1.7…… ....$1.5
苹果……果汁......$1.......$1......$.75.. ......$.75
橘子..水果.......$1.8.......$1.8.......$1.5........$1.3
可口可乐...饮料......$1.......$1......$.75.. ......$.75
用户输入 = 苹果、果汁、第 1 层
我可以在 excel 中创建 =Sum(If
公式来检查 Name
列以匹配所选值,然后检查 Category
列以检查第二个值,然后检查第一行 header 是否有 Tier 1 value
和 returns </code>.</p>
<p>我是 Access 数据库的新手,所以我很难复制它。我试过查询,但它只有 "filters" 这样的条件,并没有 return 一个值。</p>
<p>最终,我想要一个名为 <code>Shopping Cart
的 table/query 来接受用户输入,例如“Apple
、Juice
、Tier 1
”和第 4 列(read-only) 会通过查找这 3 个东西自动计算并找到 </code> 中的 <code>Price
。
我已经设置了购物车 table,它运行良好,只是我不知道如何自动包含此 read-only calculated/vlookup 列。 (我在 VB.net 中使用 DataGridView 绑定到需要 3 个用户输入的购物车 table。)
最好的方法是什么?在 Access 中进行查询并使其在数据库本身中计算 or
VB.net 以处理计算并在每次用户输入 3 个值时写入第 4 列?
在 MS Access 中尝试这个 SQL 查询,前提是您的示例数据保存为 Access table:
SELECT Table.Name, Table.Category, [Enter Tier],
IIF([Enter Tier] = 'Tier 1', Table.[Tier 1], IIF([Enter Tier] = 'Tier 2', Table.[Tier 2],
IIF([Enter Tier] = 'Tier 3', Table.[Tier 3], IIF([Enter Tier] = 'Tier 4', Table.[Tier 4], Null)))) As Price
FROM Table
WHERE Table.Name = [Enter Name] AND Table.Category = [Enter Category]
当您打开查询时,将弹出输入字段供用户填写作为参数请求。最好使用 Access 表单让用户填写未绑定的文本框,然后命令按钮使用文本框值打开查询。表单字段可以替换上面的输入字段。
Dim row AS DataRow = DataTable.Select("ColumnName1 = 'value3'").FirstOrDefault()
If Not row Is Nothing Then
searchedValue = row.Item("ColumnName2")
End If
这里的value3是一个常数值。要使用对象(变量),
Dim row AS DataRow = DataTable.Select("ColumnName1 = '" & variable & "'").FirstOrDefault()
已被使用。