环境:
1 access数据库
2 VB中
3 database是一个数据库的连接
4 "出生年月日"是数据库中的byk表中的字段名
database.Execute "Update byk set 出生年月日= Replace(出生年月日, '-', '')"

解决方案 »

  1.   

    不要给我写replace函数的什么参数之类,replace函数的参数我都知道.直接修改无的语句就是.
    补充说明:该语句的功能是替换指定字段中的指定字符.
      

  2.   


    fvflove说的对
    你的出生年月日如果是日期型的“20080523”是存不了的
      

  3.   

    这样不知行不行,当然"出生年月日"应该的字符型数据才行.  Dim oldBirthday As String '从数据库取得的"出生年月日"
      Dim newBirthday As String '转换用的"出生年月日"
      Dim nArray, i As Integer      oldBirthday = "出生年月日"
          nArray = Split(oldBirthday, "-")      For i = 0 To UBound(nArray)
              newBirthday = newBirthday & nArray(i)
          Next  database.Execute "Update byk set 出生年月日= '"& newBirthday & "'"
      

  4.   

    1、回icando0901,replace(目标,替换的内容,替换成的内容)是这个函数所决定的三。我现在是要把出生年月日字段的"-"字符去掉,所以"替换成的内容"处什么都没有三。2、出生年月日是文本型的哈。
    3、现在这种形式错误提示是“未定义replace函数”
    4、如果换成database.Execute "Update byk set 出生年月日= Replace(出生年月日, "-", "")"又提示数据类型不一致。
      

  5.   

    database.Execute "Update byk set 出生年月日= Replace(nz(出生年月日,''), "-", "")"
      

  6.   

    数据库设置了允许为空,但replace不允许为空.
    先用isnull判断再replace.
      

  7.   

    改成以下两种方式均提示"类型不匹配"
    database.Execute "Update byk set 出生年月日= CStr(Replace(出生年月日, " - ", "")) where isnul(出生年月日)<>0"
    database.Execute "Update byk set 出生年月日= CStr(Replace(出生年月日, " - ", "")) where len(ltrim(出生年月日))>0"
      

  8.   

    干吗用Replace呀,date()就搞定,根本不需要转换
      

  9.   

    Update byk set 出生年月日= Replace(nz(出生年月日,''), '-', '')
    在access中是可以实现的

    database.Execute "Update byk set 出生年月日= Replace(nz(出生年月日,''), '-', '')"
    显示Replace函数未定义
    是Jet.OLEDB的支持有问题
      

  10.   

    在access中做非要在vb中做,不知是否有其他的连接方法,好像有,
    用的Microsoft.Jet.OLEDB.4.0连接办法,有一个笨办法查出后一个一个改,
    Microsoft.Jet.OLEDB.4.0 连nz也不支持
      

  11.   

    isnull写漏了个l,而且也不是这样用的,试试:
    database.Execute "Update byk set 出生年月日= CStr(Replace(出生年月日, " - ", "")) where not isnull(出生年月日)"
    另外你的-号前后都有空格,希望你的格式也是这样.
      

  12.   

    可以改用 Left()、Right()、SubString() 之类的字符串函数取各个分段,然后再拼接。