關於一個主表明細更新的問題!特急,望各位大哥給予幫助!在線等待 (50分)

S

sydan

Unregistered / Unconfirmed
GUEST, unregistred user!
現在正在開發一個主表明細的數據庫系統!

有二個數據表A和B,都是Access2000的表,索引有一點點不同,其它什麼都一模一樣.現在
我想用B表的內容來更新A表的相應滿足條件的記錄!怎麼做呢,我用BDE的BatchMove也不行,
因為它只征對DB表,怎麼辦啊!我很急啊!!

第三方控件都行,只要達到我的目的了!!
如果這樣不行的話,那我又想問一下我在主表明細的情況下,修改了主表中一條記錄下的明細表
的資料,就像BDE一樣利用緩存來一次性存檔資料和放棄資料,怎麼做呢,ADO中沒有這麼一項功
能啊!
 
用SQL语句UPDATE
 
多條記錄哦!怎麼做啊!我用了Update試過,感覺不太可行!您能提提你的見議嗎?請
給出詳細答案好嗎?
 
你在说什么呀,不太明白
 
TO:tomol
我的意思是用一個Access2000的表來更新另一個Access2000表的記錄!(需要加條件)

它們都在同一個Access2000的數據庫中,它同都擁有完全相同的字段名及字段格式!但
索引有一點點不同!

[就像BDE中的BatchMove一樣,用一個db表來更新另一個表!怎麼做]
 
把你的表结构、部份数据及更新条件列出来看看
 
A表
PNO ID Date Units
123 001 2002/01/20 M
123 002 2002/12/10 K
123 003 2002/10/01 K
234 002 2002/01/01 K


B表

PNO ID Date Units
123 001 2002/01/20 M
123 003 2002/10/01 M

如果我是用B表來更新A表中,並且要求PNO為123的記錄的話,那麼A表應變為這樣吧!
A表
PNO ID Date Units
123 001 2002/01/20 M
123 003 2002/10/01 M
234 002 2002/01/01 K

怎樣來更新呢??我就不會了!說難不難,說簡單也不簡單!!懇求各位給予幫助!
 
UPDATE 表A AA,表B BB
SET AA.UNITS=BB.UNITS
WHERE AA.PNO=BB.PNO AND AA.PNO='123'



UPDATE 表A AA,(SELECT TOP 1 PNO,UNITS FROM 表B WHERE PNO='123') BB
SET AA.UNITS=BB.UNITS
WHERE AA.PNO=BB.PNO
 

DELETE FROM 表A WHERE PNO='123'

INSERT INTO 表A SELECT * FROM 表B WHERE PNO='123'

刚才没注意看,这个才是你想要的吧
 
TO:QuickSilver
能否有辦法直接UPdate呢?我感覺那樣還有一點點麻煩!!謝謝您了
 
to QuickSilver:
每次你都出现在我前面!

to sydan:
从你的数据分析,如果不要更新的话,可以
Insert into A select b.* from b left join a on b.id=a.id where isnull(a) and b.pno='123'
 
To:Sydan
抱歉,今天才看到信
就我的所知,你这种更新就只能这样先删除再增加的,看MikeZ兄有什么好办法。

To:MikeZ
呵,当然了,你看看日期啊,那是9月3日发的,呵,要是出现在你后面,就要找孙老师
来看看是不是DFW出错了,呵!
 
to QuickSilver:
你给我留下最大印象的是解决一个查询加密access的问题。我费了很大精力,差了microsoft的网站,有分析了access还是没有找到,最后自己试出来了,没想法帖的时候,发现你一给出了答案。分数都被你抢去了!
开玩笑了!分数并不重要,我是刚上dfw的,觉得这里很有趣,也有不少向你这样的dx,看看动动,漫游收获的!
怎么样?有意的话,联系一下!
前面给你发过铁字,受到没有?
mike6912@sina.com
 
TO MikeZ
其实不是我厉害,是我自己在用Access的碰到不少问题,上来边看边学时,有看到这题,
当时我解不了,后来ugvanxk大侠给解了,觉得这问题蛮典型的,就收藏了,呵
铁字没收到啊!
awfi.jf@sohu.com
 
To:QuickSilver
謝謝您的答案,問題我已按照您的意思解決好!
再謝謝各位仁兄的幫助!
 
謝謝,不知為啥沒有為大家及時分到分,真不好意思!
 
顶部