如果编程生成ACCESS宏并运行,或者PARADOX转ACCESS

蒙飞鸿 2013-01-31 11:51:01
没有使用ADO,因为貌似ADO会碰到系统不同而出错的BUG,用ODBC执行SELECT * FROM [PARADOX;。。。这样的语句一直没能试成功。现在的需求是.db文件转.mdb文件,手工导入速度很理想,现在有两条思路一条如前即SQL,另一条就是编程生成ACCESS宏并运行之。求各种帮助。
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyq5945 2013-01-31
  • 打赏
  • 举报
回复
不在同一个CPP文件中includeEXCEL和ACCESS的头文件,放在不同的CPP文件中就可以了。
蒙飞鸿 2013-01-31
  • 打赏
  • 举报
回复
没分了,借贴再问一个问题,如果我要在一个EXE代码里同时存在EXCEL和ACCESS组件,怎么解决诸如_Application重名的问题,应该是用namespace吧,但不知道具体怎么用
蒙飞鸿 2013-01-31
  • 打赏
  • 举报
回复
使用如下方法解决了:
::CoInitialize(0);
	
	_Application app;
	DoCmd docmd;
	if(!app.CreateDispatch("Access.Application")) 
	{
		AfxMessageBox("无法启动Access服务器!");
		return;
	}	
	app.SetVisible(false);
	app.SetUserControl(false);
	app.OpenCurrentDatabase("d:\\t5.mdb",FALSE,"");
	
	
	//app.SetDisplayAlerts(FALSE);
	LPDISPATCH lpDisp = app.GetDoCmd();
	docmd.AttachDispatch(lpDisp);
	docmd.TransferDatabase(0,COleVariant("Paradox 5.X"),COleVariant("d:\\test"),0,COleVariant("钢筋计算表.db"),COleVariant("m1554"),
		COleVariant((short)0),COleVariant((short)0));
	docmd.Quit(0);
	docmd.DetachDispatch();


	app.Quit(0);          // 退出_Application
    app.ReleaseDispatch ();       // 释放_Application
	::CoUninitialize();
	
zyq5945 2013-01-31
  • 打赏
  • 举报
回复
生成Access,搜下ADOX就出来了。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧