【问题标题】:Visual Basic RunSQL Syntax error using Tablesample使用 Tablesample 的 Visual Basic RunSQL 语法错误
【发布时间】:2013-03-16 07:55:08
【问题描述】:

我在 Microsoft Access 中有一个表单,可以将记录从文本文件导入到表中。原代码是这样的:

DoCmd.RunSQL "UPDATE QC_File SET QC_File.ToQC = 'x' " & _
"WHERE (((QC_File.ID) In (Select TOP " & VarPer & " PERCENT ID " & _
"FROM QC_File As DUPE " & _
"WHERE [DUPE].[HIST_USUS_ID] = [QC_File].[HIST_USUS_ID] And [DUPE].[Client1] = 'CLIENT' " & _
"ORDER BY [DUPE].[ID] DESC;)))"`

当我希望它随机抽取 10% 时,此代码仅抓取前 10%,因此我尝试了以下操作,但一直收到错误消息(“查询表达式中的语法错误” ) 并且它没有指定错误发生在哪一行,它只是返回整个代码。

DoCmd.RunSQL "UPDATE QC_File SET QC_File.ToQC = 'x' " & _
"WHERE (((QC_File.ID) In (Select ID " & _
"FROM QC_File As DUPE Tablesample(10 PERCENT) " & _
"WHERE [DUPE].[HIST_USUS_ID] = [QC_File].[HIST_USUS_ID] And [DUPE].[Client1] = 'CLIENT' " & _
"ORDER BY [DUPE].[ID] DESC;)))"

我已经尝试过使用NEWID(),但所做的只是以随机顺序返回前 10%。用Visual Basic写SQL时不能使用Tablesample命令吗?

【问题讨论】:

    标签: sql vba ms-access


    【解决方案1】:

    Access 将反对子查询中的这个FROM 子句:

    FROM QC_File As DUPE Tablesample(10 PERCENT)
    

    Access SQL 不支持Tablesample()

    我建议您构建一个新的 Access 查询,它可以从子查询中完成您想要的。一旦你有这个工作,将它用作子查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多