# ExcelVBAUtils **Repository Path**: hepengju/ExcelVBAUtils ## Basic Information - **Project Name**: ExcelVBAUtils - **Description**: ExcelVBA 数据库设计工具; 可以通过ODBC连接到各种数据库, 拉取表结构与生成创建表结构等功能 - **Primary Language**: Visual Basic - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-01-27 - **Last Updated**: 2022-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ExcelVBAUtils --- [![Badge](https://img.shields.io/badge/link-996.icu-%23FF4D5B.svg?style=flat-square)](https://996.icu/#/zh_CN) [![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg?style=flat-square)](https://github.com/996icu/996.ICU/blob/master/LICENSE) ## 项目目的: 将项目设计,开发,测试等工作过程中常用的Excel工具分享,提高工作效率,并借助平台更新升级工具. ### 1.数据库设计工具 ******************************************************************************************* ``` # 数据库设计工具 --- - 作者: 何鹏举 - 功能: 数据库设计辅助工具 - 邮箱: --- ## 目标 * **简约**: 简约明了 * **实用**: 不追求功能齐全 ## 说明 - **初始化**: 清空表,清空函数存储过程触发器,清空字典,删除所有非默认的工作表(即数据库表的Sheet) - **测连接**: 测试是否能与数据库联通 1. 在《说明》工作表中配置 2. 采用的是ODBC驱动,可以在控制面板,管理工具,ODBC数据源中查看是否已经有MySQL或Oracle的ODBC驱动及名称是否一致 3. 连接串可以根据配置自动产生,也可以手工输入 4. Oracle客户端安装:是否的解释 - 是: 情景在XX银行内部,所有外包人员使用的虚机都安装了Oracle客户端,那么采用OLEDB驱动连接即可) - 否: 个人电脑不想安装太大的Oracle客户端,可以采用instantClient连接,此时安装简单的ODBC驱动即可 - **删表名**: 《目录》中左侧A:G列清空,填入标题 - **取表名**: 数据库中取出所有表及其表的注释(中文名) - **表注释**: "取表名"后,会发现数据库中有些名,没有加入相应的中文名注释,可以填写后点击,自动生成注释语句,并复制到剪贴板 - **删表细**: 删除除了默认的就有的《目录》,《修订》,《说明》,《字典》,《临时》工作表之外的所有工作表 - **取表细**: 根据"取表名"后取得的所有表,去数据库中逐一取出表的信息,并放置在新建立的工作表中 1. 其中《注释》作为新建立的工作表的名称,注释为空则采用原英文表名作为工作表的名称 2. 中文名注释与默认的五个工作表名称相同的时,相应的工作表不会建立(防止误删,如果追加后缀等,那么"删表细"又麻烦,建议改中文名注释) - **表链接**: 如果《目录》中的注释(中文表名)与某个工作表一致,则在英文表名单元格建立超链接,并在相应的工作表建立返回按钮 - **表字典**: 在《字典》工作表中,从数据库中取得所有表和所有列,方便在单个工作表中查看 - **删字典**: 《字典》工作表清除所有内容 - **狂建表**: 将所有表的建表语句放在一起,放入剪贴板 1. 一般不建议这么做,建议一张张表分析清楚后,单独建立。或修改字段后,重新生成建表语句。 2. 在除了默认表以外的表,A3单元格输入C,则会将这个表的创建表语句复制到剪贴板。 - **取函过**: 从数据库中取出所有的函数过程触发器,放在《目录》工作表 - **删函过**: 《目录》中右侧M:T列清空,填入标题 - **美字体**: 在《说明》工作表中配置,可设置*两种字体*。 代码会设置两次!原因是某些字体(比如华文细黑)中文比较好看,英文丑的不行, 再次设置为某些英文字体(比如Courier New)的时候,仅仅会修改表格中的英文字。 - **备份下**: 将整个Excel备份到当前目录,追加日期后缀YYYYMMDD - **其他内容简要说明** 《目录》中,完成列如果填入√,则此列相应内容会变色,便于区分。 (主要应用情景为刚开始设计数据库表结构时作用大) - **已知BUG记录** Oracle数据中的列的默认值。在其字典中采用的是Long类型,读入到Excel时为空。 网上搜索Long如何转换为字符串,仅仅发现自定义个函数可以处理,但此工作表仅仅读取下数据库的信息,这么做不合适。 ## 版本 - **V0.88 2017/10/14** 基本功能完成 - **V0.89 2017/10/16** 1. 《说明》目录的数据库连接串联动处理 2. MySQL数据库字典表查询语句修改 3. MySQL数据库取列的默认值(longtext,默认取出为空,用substr取前100位) --》 修改"取字典"和"取表细" - **V0.93 2017/10/16** 1. writeRst方法的错误处理,取消,以便可以看出数据库连接报错信息 2. 注释格式改为Markdown语法格式 3. MySQL的Char和Varchar类型,字段的长度追加 4. MySQL和Oracle数据库Number,Numeric, Decimal,Double, Float数据类型长度和精度追加 5. 《说明》中增加驱动程序批注: 32位Office采用32位的ODBC驱动,64位Office采用64位的ODBC驱动 6. 增加“备份下”功能 7. “初始化”的时候,自备备份 8. “表注释”和“取表细”两个功能所采用的表数组的判断依据由注释列,改为表名列。 9. “表链接”中文注释不存在时,采用链接到英文名,与“取表细”对应 ******************************************************************************************* ``` ![](https://github.com/hepengju/ExcelVBAUtils/blob/master/01_%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E5%B7%A5%E5%85%B7/%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C/screenshot-01.png?raw=true) ![](https://github.com/hepengju/ExcelVBAUtils/blob/master/01_%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E5%B7%A5%E5%85%B7/%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C/screenshot-02.png?raw=true)