INSERT INTO TEST(A,B,C,D) SELECT A,SUM(B),SUM(C),SUM(D) FROM TEST GROUP BY A以上SQL语句用Access打开ODBC执行对dbf表的操作可以成功执行
但放在VB程序中不成功提示语法错误,不知怎么解决!!!!!!!!!!!!!!
郁闷已一天了

解决方案 »

  1.   

    我想可能是FOXPRO不能执行INSERT INTO (查询结果) 因为我试了一下, 在FOXPRO里也不能执行
    INSERT INTO TEST(A,B,C,D) SELECT A,SUM(B),SUM(C),SUM(D) FROM TEST GROUP BY A我的理解是,ACCESS可以允许这个语法操作,但FOXPRO不允许
      

  2.   

    既然ACCESS支持
    INSERT INTO TEST(A,B,C,D) SELECT A,SUM(B),SUM(C),SUM(D) FROM TEST GROUP BY A
    而FOXPRO不支持, 
    琢磨了很久, 想出个“另类”的方法
    就用DAO连接一个MDB文件, “控制”DBF文件
    Dim db1 As DAO.Database
    Set db1 = Workspaces(0).OpenDatabase("D:\DBF\DB1.MDB", dbDriverNoPrompt, False)
    db1.Execute "INSERT INTO [dBase 5.0;database=D:\DBF].[TEST.DBF](A,B,C,D)  SELECT  A,SUM(B) AS B1 ,SUM(C) AS C1 ,SUM(D) AS D1  FROM [dBase 5.0;database=D:\DBF].[TEST.DBF] GROUP BY A"MsgBox "OK"
    db1.Close
    假设你的DBF文件目录在d;\dbf
    以上代码测试成功希望高手能给出更好的答案
      

  3.   

    楼上的方法在我机器上执行不成功,
    提示外部表不是预期的格式,我是FOXPRO的表
      

  4.   

    提示外部表不是预期的格式 , 估计是FOXPRO6.0的DBF表,  这个问题我也遇到过
    不知道为什么, 会有这个提示你打开你的表, 用FOXPRO换成fox2x的格式
    命令是copy to test2 type fox2x
    然后用这些代码处理test2.dbf 试试
      

  5.   

    问题解决了,我用ACCESS建了联接表,然后用DAO方式执行,
    谢谢