现有两个表客户信息(消费合计),订单信息(金额)
要把订单信息中的“金额”的合计赋值给a中的“消费合计”,即客户信息中的“客户号码”等于订单信息中的“客户号码”
数据库为access该如何操作啊?Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
Adodc1.RecordSource = "客户信息"
Adodc1.Refresh
Adodc2.RecordSource = "订单信息"
Adodc2.Refresh
Dim query As Recordset
Dim a As Single
Dim b As Single
Set query = Data1.Database.OpenRecordset("select 客户信息.客户号码,sum(金额) as a from 订单信息 where 客户信息.客户号码=订单信息.客户号码")
b = query.Fields("a").Value
Connection1.Execute "UPDATE 客户信息 SET 客户信息.消费合计=b"
End Sub
我是这样写的,不行啊 到了
Set query = Data1.Database.OpenRecordset("select 客户信息.客户号码,sum(金额) as a from 订单信息 where 客户信息.客户号码=订单信息.客户号码")
就出错啊
要把订单信息中的“金额”的合计赋值给a中的“消费合计”,即客户信息中的“客户号码”等于订单信息中的“客户号码”
数据库为access该如何操作啊?Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
Adodc1.RecordSource = "客户信息"
Adodc1.Refresh
Adodc2.RecordSource = "订单信息"
Adodc2.Refresh
Dim query As Recordset
Dim a As Single
Dim b As Single
Set query = Data1.Database.OpenRecordset("select 客户信息.客户号码,sum(金额) as a from 订单信息 where 客户信息.客户号码=订单信息.客户号码")
b = query.Fields("a").Value
Connection1.Execute "UPDATE 客户信息 SET 客户信息.消费合计=b"
End Sub
我是这样写的,不行啊 到了
Set query = Data1.Database.OpenRecordset("select 客户信息.客户号码,sum(金额) as a from 订单信息 where 客户信息.客户号码=订单信息.客户号码")
就出错啊
"select 客户信息.客户号码,sum(金额) as a from 订单信息 where 客户信息.客户号码=订单信息.客户号码"
语句中where涉及了两个表,而from才一个表,怎么会对呢?
你改成:
"select 客户信息.客户号码,sum(金额) as a from 订单信息,客户信息 where 客户信息.客户号码=订单信息.客户号码"应该就可以了
b = query.Fields("a").Value
上面去掉,直接執行:
Connection1.Execute "update 客户信息 set 消费合计 = tmp.合計 from 客户信息 inner join
(select 客户号码,isnull(sum(金额),0) as 合計 from 订单信息 Group by 客户号码) tmp
on 客户信息.客户号码=tmp.客户号码"