在表VBA Access中更新记录

时间:2016-06-18 09:45:46

标签: vba ms-access

我正在尝试使用以下代码更新Access表中的记录,并在条件表达式中获取数据类型不匹配的错误:

library(binomSamSize)
library(dplyr)
p0_vec <- seq(0.8, 0.9, by = 0.02)

rbind(
  ciss.wald(p0=p0_vec, 
            alpha=0.1, 
            d=0.05),
  ciss.agresticoull(p0=p0_vec, 
                    alpha=0.1, 
                    d=0.05),
  vapply(p0_vec,
         ciss.binom,
         numeric(1),
         alpha=0.1, 
         d=0.05,
         prior.shape1 = 0.5,
         prior.shape2 = 0.5, 
         method = "bayes")
) %>%
  as.data.frame() %>%
  bind_cols(
    data.frame(type = c("Wald", "AC", "Jeff"), 
               stringsAsFactors = FALSE),
    .
  ) %>%
setNames(c("type", p0_vec))

1 个答案:

答案 0 :(得分:1)

由于您要与文本进行比较,请尝试这样:

CurrentDb.Execute " UPDATE damaged_card " & _
" SET Quantity='" & Me.txtquantity & "'" & _
" WHERE Quantity='" & Me.txtquantity.Tag & "'"

注意添加的' - s。

调试

如果仍然失败,请检查运行时的值并尝试手动运行SQL,看看它是否以这种方式工作。要在运行时提取语句,让VBA将它输出到立即窗口(ctrl + g),如下所示:

 debug.print " UPDATE damaged_card " & _
" SET Quantity='" & Me.txtquantity & "'" & _
" WHERE Quantity='" & Me.txtquantity.Tag & "'"

在尝试执行此操作之前执行此操作。

然后,您可以转到Access,创建新查询,将视图更改为SQL视图,然后粘贴生成的SQL语句。在使用Run执行它之前,通过单击View按钮并选择数据表视图来查看受影响的行是值得的。

Query View button

这将显示目标表中将受更改影响的所有行。如果没有显示任何行,则表示没有符合您条件的行,并且不会更改任何行。

说实话,您的查询没有多大意义,因为它说:&#34;将数量更新为5,其中数量为5&#34;。您可能想重新考虑where where子句。

在Access中优化您的查询,一旦工作,将其粘贴回VBA代码。