我很久不用VB了。
1、在Form_Unload中检查adodc的状态,如果有未保存的数据则尝试保存,如果出错则撤销;
2、应该不会出现这样的错误的,是否属性设置有误?
3、记得TextBox应该有个属性可以控制焦点位置的,好像是SelPos?真的不太记得了。

解决方案 »

  1.   

    ADODC.RECORDSET.CANCELUPDATE另外,还是不要用绑定的好,没省多少事还容易出问题。
      

  2.   

    为什么不用绑定呢?我觉得不绑定的话。更容易出错,而且程序代码也多了很多,
    上面说的方法好像不行,我用的是Maskedbox和textbox不是很一样吧
    Adodc和Datagrid就没有别的方法解决么?
      

  3.   

    同意lingyu2001(灵雨)的说法。回答问题:可以在form的QueryUnload或者unload事件中判断adodc1.recordset.state看记录正处于什么状态,如果正处于增加或修改状态,就提问是否保存,然后按按选择调用cancelupdate或update.
      

  4.   

    你肯定在添加了记录以后没有UPDATE,或者修改记录以后没有更新,在FORM_UNLOAD时判断ADODC的EDITMODE,如果处于添加状态、修改状态进行相应的处理。
      

  5.   

    不是这样的。如果我在和ado绑定的文本框中填入了东西的话,就不会提示这个了。但是什么都没有改变,即一addnew 。在unload form 。那么就会有了
      

  6.   

    可以在GotFocus事件中加入得到焦点的代码
      

  7.   

    我想你是用文本框输入数据吧?dg只是方便看的,对吗?如果是这样,我有一方法如下:
    点“添加”(表示按钮,下同),不调用ADDNEW,只把文本框全部为空,点保存时在ADDNEW、赋值、保存。
      

  8.   

    : 810303(810303)  正如你说的。但是保存时用addnew 所有绑定的textbox全部为空值了
      

  9.   

    : Amoon(阿木)   我还要察看。修改。。等等。不绑定。太麻烦了。没有什么好方法么?
      

  10.   

    可以了 用canlebatch 。。
      

  11.   

    1.如果最后一项为空,试一试在Unload之前调用CancelUpdate
    2.看看MaskedBox的Text类型和字段类型是否相符。(没用过这个控件:-P)
    3.在GotFocus事件中设置SelStart属性。