【问题标题】:Concatenate SQL in Access VBA在 Access VBA 中连接 SQL
【发布时间】:2018-12-04 16:15:14
【问题描述】:

我正在尝试在我的表单上的一个字段中运行更新后查询,以使用连接值填充表单中的另一个 ComboBox。我可以使查询在 SQL 本身中工作,但在 VBA 中获取正确的语法时遇到了麻烦。如果有人有任何建议,我将不胜感激。查询如下。

[Prod_List].RowSourceType = "Table/Query"
[Prod_List].RowSource = "SELECT ProductID, Make '" & " - " & "' Model '" " - " & "' ProductNum AS product FROM dbo_ProductInfo " & _
"WHERE ProductID = "SELECT ProductID from dbo_ProductInfo " & _
                 "WHERE Make = '" & Make.Value & "'""

【问题讨论】:

  • 您缺少一个 & 符号。一个简单的错字不适合stackoverflow。实际上,还引入了一个额外的报价,但仍然不适合 SO。 (你确定它在 SQL 中有效吗?)
  • @AndyG 如果您认为错别字不适合stackoverflow,那您完全错过了stackoverflow的要点。
  • @Jeffrey 你错了。当您有足够的声誉提交关闭投票时,您会发现简单的印刷错误是建议关闭主题的正当理由,因为它们对未来读者的价值有限。他们只是增加了混乱。然而,在这种情况下,事实证明它不仅仅是一个错字。
  • @AndyG 你是对的,错别字是关闭主题的充分理由,但这并不排除它们成为这个场景的合适问题。如果正确询问并且不违反stackoverflow.com/help/dont-ask 中的任何内容,则拼写问题遵循stackoverflow.com/help/on-topic 的所有规则大多数时候OP 不知道他们犯了拼写错误,因此他们提出了这个问题。通过告诉某人他们的问题是无效的,您会阻止他们提出更多问题并获得帮助以提高他们的编码技能,即本网站的目的。
  • @Jeffrey 指出一个错字,并解释说这样的话题不适合 我不认为说这个问题无效那么强烈.此外,在这种特殊情况下,我怀疑 OP 意识到问题和问题可能只是关于正确构建表达式 - 修复错别字。在大多数其他情况下,我只会评论指出错字并使用关闭原因。

标签: ms-access vba


【解决方案1】:

尽量减少一点:

[Prod_List].RowSource = "SELECT ProductID, Make & '" - "' & Model & '" - "' & ProductNum AS Product FROM dbo_ProductInfo " & _
"WHERE ProductID IN (SELECT ProductID from dbo_ProductInfo " & _
                    "WHERE Make = '" & Make.Value & "')"

它可能只适用于 IN,因为查询可能不知道是否可以从子查询返回多个记录。使用 IN,它可以是任意计数,尽管它可能总是只有 一个

【讨论】:

  • 我认为你应该提到对IN的更正。
  • 对@AndyG,忘记了。谢谢。
  • 谢谢你,我因为错过了 IN 而感到愚蠢,但这就是我匆忙的结果。这个精简版效果更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多