这应该是一个初级的问题:
表有二十几个字段,其中一个是日期字段,在窗体分别用text,dtpiker等控件通过DATASOURCD和DATAFIELD绑定到所有字段,通过RS.UPDATA来更新修改,但是总是无法更新成功,提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法.经多次测试,发现是日期格式的这个字段的问题,dtpiker的值无法更新到access中的日期字段中。
我已经在ACCESS中将这个字段设成短日期格式,在控件格式上也设置为短日期格式,怎么,但是还是老样子,请问我要怎么写才能通过?
难道非要写CMD.COMMANDTEXT=一大堆的&&&?我可是有二十几个字段,还有其他的一些表都是十几二十个字段,每次都写sql的&&&?
**************************************************
能不能麻烦大家多打几个字啊?哭ing,在数据库版发了一周,只有一个回复,还只有几个字:“设置有问题”,说句不好听的,这不是废话吗?这叫啥回答啊?

解决方案 »

  1.   

    使用自定义格式
    yy-mm-dd
    这样的自定义格式。
      

  2.   

    在哪里改成这种格式?dtpiker控件上?不行,照旧出现-2147217888的错误
      

  3.   

    update 的时候 convert(char(10),'2006-11-11 10:25:32',120)
    转化一下看看
      

  4.   

    楼主可以把你dtpiker赋值的sql语句写出来吗?
      

  5.   

    Private Sub Form_Load()'载入窗体
        rS.Open "分店", cN, adOpenKeyset, adLockOptimistic
        If rS.EOF Then
            rS.AddNew
            rS.Fields(2).Value = Date
            rS.Fields(3).Value = Date
        End If
        
        Set DTP1.DataSource = rS
        Set DTP2.DataSource = rS
        DTP1.DataField = rS.Fields(2).Name
        DTP2.DataField = rS.Fields(3).Name
        
        For i = 0 To 21
            If i <> 2 And i <> 3 Then Set Text1(i).DataSource = rS
        Next i
        For i = 0 To 21
            If i <> 2 And i <> 3 Then Text1(i).DataField = rS.Fields(i).Name
        Next i
    End Sub
    ***************************
    Private Sub Command1_Click()'保存按钮按下事件
        Dim sqlStr As String
        
        On Error GoTo errxxx
        
        If Len(Text1(0).Text) <> 5 Then
            MsgBox "分店代码只能为5位数字"
            Exit Sub
        End If
        
        rS.Update
        
        Exit Suberrxxx:
        MsgBox Err & ":" & Err.DescriptionEnd Sub第一个是frmload的事件,如果为空就新增一行,如果不空就直接绑定,后面是各个控件绑定到各个字段
    第二个是窗体上的保存按钮按下时,保存记录,其他的记录都可以保存,只有这两个日期保存不了我是一个新手,对VB的很多细节不是很了解,不过我知道可以用SQL写cmd.commandtext来执行sql语句更新,我尝试着写了一下,好象很麻烦,很吃力,而且很容易出错,我不想通过那样来实行,我想直接通过这个rs.updata就实现所有的更新
      

  6.   

    现在其他的字段和TEXT绑定都很良好,可以实现修改,保存,更新的操做,只是这几个日期型的不行,我删掉这两个日期控件就没问题
      

  7.   

    dtpicker里面有一个属性CustomFormat。你试试看在这里改成你要的格式。不知道是否可行
      

  8.   

    设置customformat也不行啊,我设置成yyyy-mm-dd和yy-mm-dd都不行
      

  9.   

    你设置后dtpicker如何显示呢?你要设置customformat的同时还要设置format属性呢我做数据库从来不用datafield绑定,万一网络连接出问题了,还是错误。我都是单写一个函数添加或者更新的
      

  10.   

    楼主 应该是yyyy-MM-dd
    记住大写MM
      

  11.   

    楼上讲的设置customformat同时设置format是不是指 dataformat?
    如果是这个的话我也设置了
    另外我这个是单机程序,只是做一个方便自己使用的小程序,不存在网络连接出问题的情况
    还有你的单写一个函数来更新是用什么语句来更新的?是用adobd.command 的SQL语句来实现?
      

  12.   

    whu305:
    我改成yyyy-MM-dd了,还是提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法TMD,这个错误提示到底是什么意思呢?
      

  13.   

    不是有个属性就叫format么,我想知道你设置后你的dtpicker怎么显示的就用普通的sql, 
    sql="update...."
    或者recordset
    rs.addnew
    rs.update就是这样的
      

  14.   

    你定义一个时间变量,然后先把dtpicker的值赋给变量再UPDATE应该就可以了
      

  15.   

    唉,暂时解决了,虽然最后的方法不是我想象中的理想办法,不过能实现程序正常执行了想象中还是dtpicker控件直接绑定到字段的好,不过最后还是没有绑定,单用update语句来写这两个日期字段的算了,结贴了