请问如果用sql语句insert、update的话,关键字为空怎么控制啊
如果使用赋值更新的话,recordset的一些属性应该如何设置啊(需要添加记录和修改记录)谢谢了!
如果使用赋值更新的话,recordset的一些属性应该如何设置啊(需要添加记录和修改记录)谢谢了!
解决方案 »
- datagirid控件问题
- 什么网站是FTP类型网站?
- vb 十六进制转字符串
- 想在datagrid中显示数据,但数据很多,想知道vb能不能实现像网页中翻页一样的功能?
- 请问什么叫无模式窗体?
- VB中一个自定义的函数问题???
- 求助:各位高手朋友,小弟不得不再麻烦您一次了,能否再帮小弟一把 (附带感谢 mjcom(风声水起)上次对我的帮助)
- 如果在程序运行的过程中屏蔽ALT+F4键的功能!
- MSChart能不能输入立体饼图???二维的太难看了!!还有如何将多个图表打印在一张纸上??高手回答
- 如何拦截LISTVIEW中的水平滚动消息?
- 如何在tabstrip控件中用代码添家选项卡??
- datagrid与msflexgrid到底谁好?用datagrid有什么要求?
第一问, 没看明白。问得不清楚。
如果目标表的关键字对应的源表中字段为空,那么如何处理(用sql语句)
如果是直接一个一个字段赋值(方便判断是否为空),那么recordset的一些属性因该如何设置?也就是CursorType和LockType的属性
拷贝数据到新表,只要两表结构一样,可以这样:
insert into 新表 select * from 旧表
其它就不用管了。
a1(key) b1(key)
a2 b2
a3
如果系统用户选择将b2对应于a1,b1对应于a2,那么如果有一个记录b2为空,那么拷贝给a表示后就不对了。所以需要判断和控制一下谢谢了
Dim rsb As New ADODB.Recordsetrsa.Open "select * from a", cn, adOpenKeyset, adLockOptimistic
rsb.Open "select * from b", cn, adOpenDynamic, adLockReadOnlyWhile Not rsb.EOF
If rsb("b2") Is Null Then
MsgBox "error"
Else
rsa.AddNew
rsa("a1") = rsb("b2")
rsa("a2") = rsb("b1")
rsa.Update
End If
rsb.MoveNext
Wend
我用了你的这种方法,可是我用.update报错说太多挂起的数据没有更新
但是用.updatebatch就可以了,请问这两种有什么不同吗?
用cancelupdate方法可删除已经做过的任何改变.
.updatebatch 方法是将所有末声明的批处理改变保存到数据库里.
recordset对象.updatebatch affectrecords中的affectrecords决定所影响的记录数目.它有4个参数.