我是这样做的:首先主从表关系已设好。1、打开主从表
2、主表增加记录,用Append,并post,可以做
3、从表增加记录,用Append,这里出错,提示意思‘ID不能被修改’。
4、关闭主从表。注:主从表都有主键ID.

解决方案 »

  1.   

    去掉从表ID后WinXP下可用,但Win98下用不成,这点已试过。
    从表ID是自增字段,我这想保留,在OFFICE access从表ID是自增字段也可以
    用呀。
      

  2.   

    ID 字段是自动增量的字段,所以你 不能对它修改的,它是由ACCESS自己来控制的
      

  3.   

    您说的意思我知道,但我并没有修改从表ID,我只是Append从表让它自己增加。和主表关联的是另外的字段。如“ID_2”。您说的意思是不是说从表根本不能有自动增量的ID 字段。请赐教!
      

  4.   

    你将从表append之后
    应该不会出错吧
    在你post或者是再次append时才出错
    要不你保存从表的数据时不要给id字段赋值
      

  5.   

    你设置主从关系字段时,是否把主表的ID和从表的ID相联起来了。
    这种错误的关联可能出现在两个地方。一是在程序中的错误关联,二是在数据库中错误的关联。
    都检查一下,试试看
      

  6.   

    如果id时自动增加的字段的话,在sql中不要把它选出来试试
      

  7.   

    用上面方法做,我的主从表别的都没问题,除了从表不能增加。
    另:
    我如果改用别的方法做,1、打开主表
    2、增加记录,并post,并记录主表ID值
    3、关闭主表
    4、打开从表
    5、增加记录,主表ID值付给与从表关联的ID_2,从表post
    3、关闭从表在WinXP下从表可增加,但Win98下却提示"主表没有相关
    记录"。这是为何,是否ADOQuery控件有BUG.
      

  8.   

    我不知道你是不是用这种方法,但我用它一样都没问题(98,2000,XP都没问题):
    主表SQL语句为:SELECT * FROM MasterTable
    从表SQL语句为:SELECT * FROM DetailTable WHERE ID=:ID
    主从表之间不再设其它关联。
    在主表的AfterScroll事件中写:
      adqDetail.Parameters[0].Value :=
        adqMaster.FieldByName(adqDetail.Parameters[0].Name).Value;
      if adqDetail.Active then
        adqDetail.Requery;
    在从表的NewRecord事件中写:
        DataSet.FieldByName(adqDetail.Parameters[0].Name).Value :=
          adqDetail.Parameters[0].Value;
    如果这样做,还会有相同的问题出现,那么问题肯定是出在数据库上!
      

  9.   

    用insert   
    post
    语句试试
      

  10.   

    我大学学的是别的专业,数据库理论没学,请谅解。
    谁有这方面的例子程序,麻烦给发一个。例子一看就可以了。十分感谢!!!Email:[email protected]
      

  11.   

    已解决,98二版odbcjt32.dll版本太低,用4.0.4403.2版本好了。
    多谢各位。
      

  12.   

    我还是不能理解:
    主表可以用自增ID没错,但从表与主表的关联自段绝对不能用自增ID的,这才是问题所在吧。
    从表的自增ID可以保留,但是你还要增加一个与主表ID关联的字段,这个自段应该是整形,而不是自增ID类型。