注册 登录
编程论坛 VFP论坛

请教可以用EXCEL做数据库吗?如何解决被多次打开的问题?

kmyz_yyl 发布于 2023-06-19 22:27, 1464 次点击
请教可以用EXCEL做数据库吗?如何解决被多次打开的问题?
每次写数据时我是先通过关闭进程"EXCEL.EXE"后再写,否则就会产生一个副本,如果能通过API关闭指定的EXCEL文档,而不是全部关闭EXCEL。

[此贴子已经被作者于2023-6-19 22:53编辑过]

12 回复
#2
吹水佬2023-06-20 07:51
EXCEL做数据库肯定是可以,只是规模有限。
“多次打开的问题”具体操作不明,最好提供测试代码。
#3
kmyz_yyl2023-06-21 08:58
回复 2楼 吹水佬
我使用EXCEL做数据量不大,辅助的数据涉及5个不同类型或形式的数据,比如主数据是课表,辅助数据是教师姓名、科目、时间等其他数据。
使用的存储的方法就是用VFP对EXCEL的一般性读写,但问题就在于有时候会手动直接打开EXCEL,如果没及时关闭又从程序打开就会产生副本,所以每次程序打开就使用关闭进程的方法,我用木瓜老师的FLL就直接关闭全部EXCEL了
我看到吹版主您有个帖子可以关闭进程,就想到能否在程序打开EXCEL数据前遍历进程中所有的EXCEL,一发现相关名字就关闭,这样就解决了产生副本的情况。

能否请吹版主给一个遍历进程,发现目标就关闭的代码,我想这样就解决了用EXCEL做数据库产生副本的烦恼。

[此贴子已经被作者于2023-6-21 09:11编辑过]

#4
kmyz_yyl2023-06-21 09:16
用EXCEL做数据库就解决了用DBF或DBC多个单独数据表的遗憾,又避免了使用MDB的局限和MYSQL之类大数据库的无奈。
#5
吹水佬2023-06-21 12:45
允许用户打开,用户就可以随时打开,谁先谁后没定数。
#6
kmyz_yyl2023-06-21 15:14
能否遍历所有进程中的EXCEL,并找出某一个符合条件或文档名的EXCEL关闭它?
#7
吹水佬2023-06-21 18:44
直接关闭用户操作的文件不好吧
可以尝试独占打开XLS文件,如果失败说明在用,提示用户保存关闭后再继续。
#8
kmyz_yyl2023-06-23 10:41
请教吹版主,VFP如何使用独占方式打开EXCEL?
#9
吹水佬2023-06-23 13:20
以下是引用kmyz_yyl在2023-6-23 10:41:53的发言:

请教吹版主,VFP如何使用独占方式打开EXCEL?

独占EXCEL也不是好事,怕用户对你有意见。

#10
kmyz_yyl2023-07-01 00:12
经过测试,用 PostMessage 可以实现关闭指定的 EXCEL 文档。这样就避免了用关闭进程方式会全部关闭所有EXCEL的问题了

另外再请教吹版主,我用 FindWindow 找不到EXCEL文档,始终返回“0”,是哪里出错?
 m.hWnd = FindWindow(null, JUSTFNAME(lpszfile)+" - Microsoft Excel")
#11
吹水佬2023-07-01 06:59
按标题找兼容性是不是有问题,测试结果有点不同:
只有本站会员才能查看附件,请 登录

DECLARE long FindWindow IN user32 string@,string@
? FindWindow(NULL,"Microsoft Excel - Book1.xls  [兼容模式]")
#12
sam_jiang2023-07-01 11:48
电子表格就是电子表格,数据库就是数据库,怎么可以张冠李戴?
#13
kmyz_yyl2023-07-01 21:16
能抓到老鼠的就是好猫。OK 困扰好几天的EXCEL控制问题全部解决!
用EXCEL做数据库为什么不可以?VFP的灵活+EXCEL的方便,我看就很好,至少我用着顺手。
我已经不用VFP的报表多年,用VFP做的EXCEL报表功能更强大
1