我用accsess做数据库,用adoquery连接,有如下两张表.
a1                            b1
项目编码    项目名称             人员 项目编码     金额
 1001        x1              p1   1001      50
 1002        x2              p1   1002      10
 1003        x3              p1   1003      12
                             p2   1001      18
                             p2   1002      40
                             p2   1003      56
sql语句如下:
select b.人员,a.项目名称 b.金额 from a1 a,b1 b
where a.项目编码 =b.项目编码
and b.人员='p1'在DBgrid中显示结果为:
人员  项目名称   金额
p1   x1       50
p1   x2       10
p1   x3       12  查询结果显示在DBGrid中,我想在DBgrid中修改金额,然后在post或是delete,
可运行后一但修改或删除就提示"缺少更新或刷新的键列信息";
请问各位我应怎样做才能通过DBGrid更新数据?
给个一般处理这种这问题的思路也行

解决方案 »

  1.   

    你返回的是一个视图不可以通过dbgrid直接修改吧
      

  2.   

    to楼上的
    a1表的主键是"项目编码"和b1表的主键是"人员"和"项目编码";
    可就是不行 ,运行后一但修改或删除就提示"缺少更新或刷新的键列信息"; 
      
      

  3.   

    to楼上的各位:
    sql改为:
    select 
          b.人员,
          a.项目名称,
          b.金额 
    from a1 as a 
          inner join b1 as b on a.项目编码 =b.项目编码
    where b.人员= 'p1 '
     
    可以在access产生的视图里修改,但是仍然不能在ado->dbgrid中修改这是为什么呢?