VBA操作word生成sql语句
项目开始一般都是用word保存下数据库的文档
但是从表单一个一个的建表实在是很困难乏味,查查资料
1、可以生成一个html或者xml,检索结构生成sql。但是这个方式也蛮麻烦
2、查到vba可以操作word读取表格。所以采用这种方式写了一个小程序。这样就可以直接生成sql了,在这里做个记录。
代码很初级,意见欢迎,勿喷。
Public Sub test()
'Word对象定义
Dim objWord As New Word.Application
Dim objWordNew As New Word.Application 'Doc对象定义
Dim objDoc As Word.Document
Dim objDocNew As Word.Document '读取指定文件至Doc对象
Set objDoc = objWord.Documents.Open("D:\新建 Microsoft Word 文档.docx")
Set objDocNew = objWordNew.Documents.Open("D:\sql.docx") 'Table对象定义
Dim objTable As Word.Table
Dim tempStr
tempStr = "" '读取指定文件中的表1至Table对象
'Set objTable = objDoc.Tables(2)
For a = To objDoc.Tables.Count
Set objTable = objDoc.Tables(a)
tempStr = tempStr + "CREATE TABLE ("
tempStr = tempStr + Chr()
For i = To objTable.Rows.Count 'tempStr = tempStr + "'" + Application.WorksheetFunction.Clean(objTable.Cell(i, 2).Range.Text) + "' " + objTable.Cell(i, 4).Range.Text + " COMMENT '" + objTable.Cell(i, 2).Range.Text + objTable.Cell(i, 6).Range.Text + "'"
tempStr = tempStr + "'" + Replace(Replace(objTable.Cell(i, ).Range.Text, Chr(), ""), Chr(), "") + "' " + Replace(Replace(objTable.Cell(i, ).Range.Text, Chr(), ""), Chr(), "") + " COMMENT '" + Replace(Replace(objTable.Cell(i, ).Range.Text, Chr(), ""), Chr(), "") + Replace(Replace(objTable.Cell(i, ).Range.Text, Chr(), ""), Chr(), "") + "'" 'tempStr = Replace(tempStr, Chr(10), "")
'tempStr = Replace(tempStr, Chr(13), "")
tempStr = tempStr + Chr()
Next
tempStr = tempStr + ")ENGINE=MyISAM DEFAULT CHARSET=utf8;"
tempStr = tempStr + Chr()
tempStr = tempStr + Chr()
Next objDocNew.Range.Text = tempStr
'关闭Doc对象
objDoc.Close
objDocNew.Close '关闭Word对象
objWord.Quit
objWordNew.Quit '清除Table对象
Set objTable = Nothing
'清除Doc对象
Set objDoc = Nothing
'清除Word对象
Set objWord = Nothing
End Sub
中间有一些替换回车换行符的,也有添加的,为了生成理想的格式,拼接字符串。
VBA操作word生成sql语句的更多相关文章
- Excel VBA 操作 Word(入门篇)
原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人. 一.新建Word引用 需要首先创建一个对 Word A ...
- Python3:sqlalchemy对sybase数据库操作,非sql语句
Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- 如何根据实体动态生成sql语句
该文章同时解决了,如何向数据库中添加Null值,以及如何处理“参数化查询未提供参数”的错误.解决方案请看第二段折叠的代码. 背景: 在项目开发的过程中,往往需要根据实体的值来修改sql语句,比如说,有 ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- Aspose.Words操作word生成PDF文档
Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...
- 利用反射自动生成SQL语句(仿Linq)
转:http://www.cnblogs.com/the7stroke/archive/2012/04/22/2465597.html using System; using System.Colle ...
- Excel数据生成Sql语句的方法
选中想要生成的列,套用表格格式,选中表包含标题的选项确定,然后在最右边的一列第二行处,点击函数功能,选择CONCATENATE,在文本里输入想要的结构即可 代码如下 复制代码 ,=CONCATENA ...
- 利用反射生成SQL语句
// 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBui ...
随机推荐
- unity中的构造函数
避免使用构造函数 不要在构造函数中初始化任何变量,使用Awake或Start实现这个目的.即使是在编辑模式中Unity也自动调用构造函数,这通常发生在一个脚本被编译之后,因为需要调用构造函数来取向一个 ...
- Arbiter
from 2015-EDCAV-Problems encountered in various arbitration techniques used in NOC router-A survey ...
- jq页面加载分割截图
<script> $(document).ready(function() { if (!Array.prototype.forEach) { Array.prototype.forEac ...
- redis概览
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串 ...
- asp.net 重写URL方法和封装好的DLL
.net 重写URL方法和封装好的DLL URL重写方法DLL(2.0)
- php 大文件上传的实现
最近公司做工程项目,实现大文件上传 网上找了很久,发现网上很多代码大都存在很多问题,不过还是让我找到了一个符合要求的项目. 工程: 对项目的文件上传功能做出分析,找出文件上传的原理,对文件的传输模式深 ...
- (转)WAMP多站点配置
转自:http://wislab.net/archives/43.html Wamp正在被广泛使用,其傻瓜式的安装配置,使得我们可以得心应手地完成以往较为烦琐的服务器环境搭建过程,直接进入到网页程序的 ...
- 阿里云服务器 OSS的使用限制
使用限制 更新时间:2019-02-12 16:50:27 编辑 · OSS的使用限制及性能指标如下: 限制项 说明 归档存储 已经存储的数据从冷冻状态恢复到可读取状态需要 1 分钟的等待时间. ...
- java基础-day18
第07天 集合 今日内容介绍 u HashSet集合 u HashMap集合 第1章 HashSet集合 1.1 Set接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一 ...
- spring父子Ioc容器的关系
在网上找了一下,没有直接解说ioc父子容器关系的文章,所以大概看了下代码,自己写下吧,写俩行做个笔记. 1. 在进行dean的注册的时候,父容器和子容器是互不干扰的,各自注册自己的 2. 在实例化的时 ...