主题:vfp9 access2007 replace()
homayzh
[专家分:7040] 发布于 2011-12-16 16:23:00
我有一个库 access 格式,
其中有个 备注 字段 想把所有记录中备注里的“苹果”换成“水果”
用sqlexec (alen,[update book set 备注 = replace(备注,'苹果','水果')])
为什么不对呢,,请指教。
回复列表 (共5个回复)
沙发
homayzh [专家分:7040] 发布于 2011-12-16 17:03:00
附:
Replace 函数
全部显示
返回一个 String 值,其中的指定子字符串已经被另一子字符串替换了指定次数。
语法
Replace(expression, find, replace [, start ] [, count ] [, compare ] )
Replace 函数的语法包含以下参数:
参数
说明
expression
必选。其值为包含要替换的子字符串的字符串表达式。
find
必选。其值为被搜索的子字符串。
replace
必选。其值为用来进行替换的子字符串。
start
可选。其值为 expression 中的位置,将在此开始子字符串搜索。如果省略该参数,则假定为 1。
count
可选。其值为要执行的子字符串替换次数。如果省略该参数,则默认值为 –1,表示进行所有可能的替换。
compare
可选。数字值,表示在计算子字符串时所采用的比较类型。有关相应的值,请参见“设置”部分。
设置
compare 参数可以包含以下值:
常量
值
说明
vbUseCompareOption
-1
使用 Option Compare 语句的设置执行比较。
vbBinaryCompare
0
执行二进制比较。
vbTextCompare
1
执行文本比较。
vbDatabaseCompare
2
Microsoft Office Access 2007 专用。根据数据库中的信息执行比较。
返回值
Replace 返回以下值:
如果
Replace 返回
expression 长度为零
零长度字符串 ("")
expression 为 Null
错误。
find 长度为零
expression 的副本。
replace 长度为零
expression 的副本,其中删除了出现的所有 find。
start > Len(expression)
零长度字符串。
count 为 0
expression 的副本。
注解
Replace 函数的返回值是执行替换后的字符串,替换从 start 指定的位置开始并在 expression 字符串的结尾处结束。它不是原始字符串从头至尾的副本。
另请参阅
Filter 函数
板凳
yjr3032570 [专家分:3360] 发布于 2011-12-19 13:13:00
语法没错,最大的可能是表:book 已是导出来的临时表,而不是access库中的原表。
3 楼
homayzh [专家分:7040] 发布于 2011-12-19 15:47:00
我确定是原表,我用sqlexec()发的命令呀!!
你帮我高试一下吧!谢谢。
4 楼
yjr3032570 [专家分:3360] 发布于 2011-12-19 16:27:00
SQL,已试过,语法没问题,可以更新。
不知你的错误是什么?
5 楼
homayzh [专家分:7040] 发布于 2011-12-23 22:31:00
你确定你是access2007 是 mdb 2000格式,我怎么试都不能替换
我来回复