有无可能通过Access的二次开发做一个词典的制作和查询的综合方案

VBA 是依附于 Access 的,VB.NET 是独立的语言,用VB因为它做桌面软件的界面简单。

1 个赞

啥意思,Python的pywin32库?如果VB能方便地操作SQLite数据库的话,这也就一个VB初学者的小作业

都说 python 简单好学,其实我感觉并不算简单,方便倒是方便,不用编译就可直接运行

python自带sqlite支持,还有pyqt5写界面,当然要我做我也不会考虑python

1 个赞

现在这年月说自己写VB都不太好意思,不过VB做几个窗口是真简单,虽然看微软的手册有时也会愁死人

qt也不难,我之前从来没做过qt,现在接手一个qt项目搞了快2个星期,感觉入门也没那么难

我也一直在想,python或许也会有个库象VB一样,拉拉扯扯几下一个简单的应用就好了。VB的窗口不光是界面,关键是它的事件驱动,你说的这个 pyqt5 也是类似的吗?

qt有个designer专门拖控件的,然后可以用uic去生成python或C++代码,甚至都可以不用生成代码,直接动态加载

1 个赞

听上去还是有点复杂,有空去YT上看看有没有人演示。如果 Python能像 VB一样,那可好,不要编译还是方便很多

How to Connect or Show Data from SQLite in VB.Net or C# - SKOTechLearn Tips

刚才的docmd等是Access专有的,在其他环境里,你可以用SQL及专用的,不难,简单的,你多熟悉下,其实都差不多的,每种工具都有它的pros and cons,看你喜欢,特别重要的是你的坚持。

1 个赞

谢谢!说的很对,写程序就怕这个语言也想搞那个也想搞,结果啥都没搞明白。还是打算走走VB+SQLite的路子看看,以前写VBA就被那个编辑器搞得很难受实在不想用它。

其实也不复杂,又不是上c++这种大魔王级别的语言

可能还是个习惯问题,用严格缩进分块大括号也不见了、把一个for循环封在一个表达式里,这种写法实在是太不习惯,和以前的语言都大不同,老脑筋理解起来困难

我这人做事凭兴趣。这个 Access 的玩意儿个人觉得还不错,难度也不高,实用性还是有,用的上的人可以继续整下去,也不难,有问题提上来坛子里比我这个三脚猫高的高手多的是,我本来就是打算尝试一下这个路线,就没有计划再继续了。那个html编辑器本打算完善下,但估量了下个人能力达不到,一般用应该还行。目前的兴趣点转移到了安卓,尝试看看有没有一样简单的方法捣鼓个简单清爽的安卓查词端。诚挚感谢以上各位尤其是 @jiangws 老兄给予的指点!

不要因为手里有了锤子就到处钉钉子,技术路线走歪啦!这种需求真正要用到的工具是 NoSQL/全文搜索引擎,比如本论坛 Tio 词典在用的 Sphinx 或者现在主流的 Elasticserach。

Access 是结构化数据库,而我们的词典内容常常结构太丰富。因为每本字典都有自己独特的排版,每个段落的作用都不尽相同。用 Access 的结果是把一堆 HTML 文本扔进了字段里,不堪重负。

而这种需求正是 NoSQL 的强项。

2 个赞

不瞒你说我还的确认真考虑过 NoSQL,大致看过一下 MangoDB(结果是囫囵吞枣不明所以),因为:1. 数据导入Access 后数据库文件大小膨胀了至少5倍以上;2. 我的一个目标是要拆解词典的释义项目,我就想那是不是就要求每条记录的字段数是可变的,RDBMS 很有可能不支持。全文检索是必须的,我觉得倒是不难通过在搜索时把文本从 html 中剥离出来达到目的,不过也的确十分笨拙。(没想到全文搜索还有“分词”这样的技术真是学无止境)

我是数据库的完全门外汉,你说的 Sphinx 或 Elasticsearch 我真的要找时间好好学习一下,非常感谢老兄和前面的 @jiangws 老兄慷慨分享这么具体的技术细节 !

( [Tio词典网页版(中英、中日)] (Tio词典(中英、中日) | 登樓古籍全文檢索 - #184,来自 AnLuoRidge) 这个帖子之前没读过,刚看到,惭愧惭愧)

1 个赞

补充说明一下,以免给阅读本帖的坛友造成不必要的误解:

Access的VBA二次开发在很多中小公司有广泛的应用,因其只需极低的编程技能和时间成本就能满足很多普通场景的定制化需求。如有坛友在资料管理中难以投入大量的时间精力用于复杂的编程,建议不妨尝试一下,以我对Excel和Word的一些二次开发的经验看,绝对是性价比极高的一项投资。而且掌握相关的技能之后升级到其它工具也不难,时间投入完全不浪费。对上面这个Access小程序如有任何疑问可在本帖提问,无须分享你制作的任何字典或资料。

另外:Acesss数据库文件有2G的容量限制,极其粗略估计如为纯文本数据量可能只能到500M左右。

(网上很多做Access培训,但本人不做这个生意,请不要过度联想。如上述说明有误,请专家指正。)

1 个赞

关于容量限制,有些办法的,可参考以下文档:
ms access - How to deal with Databases which exceed 2gb - Stack Overflow

1 个赞

提供的解决方法完整透彻,谢谢!

补充一下,微软已经开放了 Office 的 JavaScript API。现在做各种 Word,Excel 定制开发有了更好的选择。(甚至顺便支持了 TypeScript)

另外现在主流的编辑器 VS Code 也是微软开发的,它,也被整合进了 Office。当我第一次在 Office 中看到熟悉的 VS Code 界面时真的是震惊到无以复加。

1 个赞

完全的新知识,谢谢!

1 个赞