【问题标题】:Not sure how to formulate this query不确定如何制定此查询
【发布时间】:2013-07-22 09:45:46
【问题描述】:

我正在使用 VBA 在 access 中运行查询。

这是我插入变量的查询:

SQL = "SELECT * INTO " & _
strNEW & _
" FROM tblTotaalVerlies WHERE 'Filename' LIKE *\" & _
strNEW & _
"\*;"

其中,当使用 Debug.Print(SQL) 时,我会得到以下查询:

SELECT * INTO 1300 FROM tblTotaalVerlies WHERE 'Filename' LIKE *\1300\*

我已经尝试了这个查询的几种变体,例如:

SELECT * INTO 1300 FROM tblTotaalVerlies WHERE 'Filename' LIKE *\1300\*;
SELECT * INTO 1300 FROM tblTotaalVerlies WHERE 'Filename' LIKE *\1300\*
SELECT * INTO 1300 FROM tblTotaalVerlies WHERE Filename LIKE %\1300\*%;

没有任何工作。运行此查询的正确方法是什么?

【问题讨论】:

  • 你有名称为 1300 的表吗?
  • 你得到什么错误?
  • @Kamal 我得到的错误是Error 3075 Syntax error: missing operator

标签: sql vba ms-access


【解决方案1】:
SQL = "SELECT * INTO " & _
strNEW & _
" FROM tblTotaalVerlies WHERE [Filename] LIKE '%" & _
strNEW & _
"%';"

【讨论】:

  • 嗯,我正在寻找的字符串取决于 Var "strNEW"
  • 请参阅下面@CheemunLow 的回答,我错过了有关您将列名用单引号括起来的部分,这意味着它检查字符串“FileName”而不是列的内容。但是在你的 Like 字符串' SQL = "SELECT * INTO " & _ strNEW & _ " FROM tblTotaalVerlies WHERE [Filename] LIKE '%" & _ strNEW & _ "%';" 周围添加单引号和百分号。
【解决方案2】:

文件名是sql保留字

用括号覆盖您的文件名,如下所示[FileName]

SQL = "SELECT * INTO " & _
strNEW & _
" FROM tblTotaalVerlies WHERE [Filename] LIKE *\" & _
strNEW & _
"\*;"

【讨论】:

  • 显然,“Like”中使用的通配符是访问中的“%”
  • 哎呀,忘了检查你的查询 = = 但似乎有人已经为你纠正了它
猜你喜欢
  • 2013-05-06
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多