我正在尝试使用以下代码更新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))
答案 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按钮并选择数据表视图来查看受影响的行是值得的。
这将显示目标表中将受更改影响的所有行。如果没有显示任何行,则表示没有符合您条件的行,并且不会更改任何行。
说实话,您的查询没有多大意义,因为它说:&#34;将数量更新为5,其中数量为5&#34;。您可能想重新考虑where where子句。
在Access中优化您的查询,一旦工作,将其粘贴回VBA代码。