在Access保存的查询中动态添加字段

时间:2013-10-18 15:21:49

标签: sql vb.net ms-access combobox oledb

我的程序中有一个名为ComboBox的{​​{1}}充满了计算(例如Current_Ratio,Total_Debt_To_Assets_Ratio)。 ComboBox_Calculations实际上是使用我的Access数据库中名为ComboBox_Calculations的表格中的字段内容填充的。

我需要创建一个名为Criteria的已保存查询。查询需要包含Calculations_QuarterlyTicker[Year]字段,然后是Period中每个项目的一个字段。因此,对于此示例,我还需要名为ComboBox_CalculationsCurrent_Ratio的字段。

到目前为止,这是我的表格:

标准 Criteria Calculations_Quarterly Calculations_Quarterly 以下是我一次添加一个字段的代码(在本例中为Total_Debt_To_Assets_Ratio。但我不知道如何为Current_Ratio

中的每个项添加一列
ComboBox_Calculations

1 个答案:

答案 0 :(得分:1)

我无法找到你的组合名称或它是如何被填充所以假设它被命名为Combo1,并且你用Combo1.Items.Add("...")填充它,你会想要这样的东西:

Dim sb as new System.Text.StringBuilder("")
For each s as string in Combo1.Items
  sb.Append("," & s)
Next

然后在你的SQL中:

Dim cmd2 As OleDbCommand = New OleDbCommand("CREATE PROC " & Calculation & " AS SELECT Income_Statements.Ticker, Income_Statements.[Year], Income_Statements.Period, " & Formula & " AS " & Calculation & sb.ToString & " FROM Income_Statements INNER JOIN Balance_Sheets ON (Income_Statements.Ticker = Balance_Sheets.Ticker) AND (Income_Statements.[Year] = Balance_Sheets.[Year]) AND (Income_Statements.Period = Balance_Sheets.Period)" & Where_Statement & "", con)