数据库中,有一表:abc
表中有数据
abc.A abc.B abc.C
若A、B经过修改了C没有做修改,而C=A-B
现在为使数据C的数值正确,做一个按键更新C
请各位指点一下~~~另,若有abc和bcd表
表中有abc.a ,abc.b 和bcd.a ,bcd.b理应要相同的,但经过数据的不同修改后
可能abc.a的数据与bcd.a的不同了,abc.b的数据与bcd.b的也不同了
这种情况又如何更新呢?
表中有数据
abc.A abc.B abc.C
若A、B经过修改了C没有做修改,而C=A-B
现在为使数据C的数值正确,做一个按键更新C
请各位指点一下~~~另,若有abc和bcd表
表中有abc.a ,abc.b 和bcd.a ,bcd.b理应要相同的,但经过数据的不同修改后
可能abc.a的数据与bcd.a的不同了,abc.b的数据与bcd.b的也不同了
这种情况又如何更新呢?
-----------------
update abc set c=A-B
-----------------
update abc set c=A-B
程序显示“缺少语句结束”
可以详细点吗?
----------------------------------------
Private Sub Redo_Click()
update abc set c=a-b
End Sub
------------------------------------
???????
需要引用ADO("工程"/"引用"/Microsoft ActiveX Data Object 2.X Library)
Private Sub Redo_Click()
Dim cn As New ADODB.Connection
'Access库的连接
' cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Jet OLEDB:DataBase password=12345;"
' 如果是MSSql库,这样连接:
'混合验证方式的连接:
'cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=登陆用户名;Password=登录密码;Initial Catalog=数据库名;Data Source=服务器别名/IP"
'集成验证的连接:
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=服务器别名/IP"
cn.Open
cn.Execute ("update abc set c=a-b")
cn.Close
Set cn = Nothing
End Sub
Thanks~如果第二个问题,bcd是以abc为主体的,即,无论bcd修改得如何,最终都以abc为准,又如何做呢(麻烦可以详细一点,呵~~~CaiNiao一只,不好意思)
-----------------
a b c
张一 xxxx bbbbbbbbb
张一 yyyy fdfdfd
李二 zzz fffffffffffff
王四 34343 434
王四 343 434
王四 34r3 434
伍五 4343 43434
-----------------------
abc里有数据
----------------------
a b
张一 1
李二 2
王四 3
---------------
*注:abc里的数据b是自动编号的!要将bcd里的a数据分组
然后更新到abc里的a中如何实现呢?
-----------------
a b c
张一 xxxx bbbbbbbbb
张一 yyyy fdfdfd
李二 zzz fffffffffffff
王四 34343 434
王四 343 434
王四 34r3 434
伍五 4343 43434
-----------------------
abc里现有数据
----------------------
a b
张一 1
李二 2
王四 3更新后,bcd和abc的数据分别为??
abc里的数据是:
---------------------
a b
张一 1
李二 2
王四 3
伍五 4
-----------------------
*注:由于bcd里出现的“伍五”abc里是没有的
而系统要自动识别“伍五”的存在与否,如果存在,则不需要改动
如果不存在,则要在abc中加入伍五的名称,而且b要接着连号...(已说明,abc里的b是自动编号的)
insert into abc select b.a from bcd b where b.a not in( select a.a from abc a)
这个只是写成了sql语句,具体应用到vb里,像上面的做法一样就可以了
这样吧
以上的bcd改为B abc改为A
bcd中的a改了x abc中的a改为y b改为z
再麻烦给出~~~:P
其中T1和T2为别名,不用管它们
列1 列2 列3
张一 xxxx bbbbbbbbb
张一 yyyy fdfdfd
李二 zzz fffffffffffff
王四 34343 434
王四 343 434
王四 34r3 434
伍五 4343 43434
-----------------------
A表:
列1 列2
张一 1
李二 2
王四 3更新后的结果:
A表:
列1 列2
张一 1
李二 2
王四 3
伍五 4
sql语句(把B表中A表不存在的记录插入到A表里,因为A表的列2是自增的,所以插入数据时,不用给它指定值):insert into A表(列1) select T2.列1 from B表 T2 where T2.列1 not in( select T1.列 from A表 T1)
如果A表中的列1是有索引且已设定了不重复的呢?
因为B表中是有重复,但要求A表名称不能重复的~~~
小弟再有一个问题,呵~~~
如果B表的列2要以A表的列2为准呢?
即:
==========================================
B表:
列1 列2 列3
张一 xxxx bbbbbbbbb
张一 yyyy fdfdfd
李二 zzz fffffffffffff
王四 34343 434
王四 343 434
王四 34r3 434
伍五 4343 43434
-----------------------
A表:
列1 列2
张一 1
李二 2
王四 3更新后的结果一:
A表:
列1 列2
张一 1
李二 2
王四 3
伍五 4
=======================================
先得出结果一,再求以下结果:
B表:
列1 列2 列3
张一 1 bbbbbbbbb
张一 1 fdfdfd
李二 2 fffffffffffff
王四 3 434
王四 3 434
王四 3 434
伍五 4 43434
update b set b.列2= a.列2 from 表B b join 表A a on b.列1= a.列1
你语句中的“b”、“a”
分别是?!表B、表A 还是 列2、列1 ?按你语句,运行时出现“语法错误”
-----------------------------------------
语句中的"b"、"a"分别是表B和表A的别名,整个语句是将表B的列2更新,使得列2的数据与表A对应的列2一样
按语句,运行时出现“语法错误”