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程序中不成功提示语法错误,不知怎么解决!!!!!!!!!!!!!! 郁闷已一天了
我想可能是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不允许
既然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 以上代码测试成功希望高手能给出更好的答案
楼上的方法在我机器上执行不成功, 提示外部表不是预期的格式,我是FOXPRO的表
提示外部表不是预期的格式 , 估计是FOXPRO6.0的DBF表, 这个问题我也遇到过 不知道为什么, 会有这个提示你打开你的表, 用FOXPRO换成fox2x的格式 命令是copy to test2 type fox2x 然后用这些代码处理test2.dbf 试试
INSERT INTO TEST(A,B,C,D) SELECT A,SUM(B),SUM(C),SUM(D) FROM TEST GROUP BY A我的理解是,ACCESS可以允许这个语法操作,但FOXPRO不允许
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
以上代码测试成功希望高手能给出更好的答案
提示外部表不是预期的格式,我是FOXPRO的表
不知道为什么, 会有这个提示你打开你的表, 用FOXPRO换成fox2x的格式
命令是copy to test2 type fox2x
然后用这些代码处理test2.dbf 试试
谢谢