项目开始一般都是用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语句的更多相关文章

  1. Excel VBA 操作 Word(入门篇)

    原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人.   一.新建Word引用 需要首先创建一个对 Word A ...

  2. Python3:sqlalchemy对sybase数据库操作,非sql语句

    Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...

  3. Python3:sqlalchemy对mysql数据库操作,非sql语句

    Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...

  4. 如何根据实体动态生成sql语句

    该文章同时解决了,如何向数据库中添加Null值,以及如何处理“参数化查询未提供参数”的错误.解决方案请看第二段折叠的代码. 背景: 在项目开发的过程中,往往需要根据实体的值来修改sql语句,比如说,有 ...

  5. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

  6. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  7. 利用反射自动生成SQL语句(仿Linq)

    转:http://www.cnblogs.com/the7stroke/archive/2012/04/22/2465597.html using System; using System.Colle ...

  8. Excel数据生成Sql语句的方法

    选中想要生成的列,套用表格格式,选中表包含标题的选项确定,然后在最右边的一列第二行处,点击函数功能,选择CONCATENATE,在文本里输入想要的结构即可  代码如下 复制代码 ,=CONCATENA ...

  9. 利用反射生成SQL语句

    // 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBui ...

随机推荐

  1. Idea项目如何迁移到Eclipse

    CTRL + SHIFT + ALT + S键 (即File>Project Structure), 按照如图一样设置,设置完成后就可以直接导入到eclipse了

  2. s7-200 PID控位

    只有加热模块,没有风扇,所以温度上冲达到5度左右 TITLE=程序注释 Network // 网络标题 // 初始化 LD SM0. LPS MOVW , VW500 MOVW , VW502 MOV ...

  3. java Concurrent包学习笔记(三):ReentrantLock

    一.可重入性的理解 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大.两者都是同一个线程每进入一次,锁 ...

  4. 音频管理器(AudioManager)

    MainActivity.java package com.wwj.serviceandboardcast;   import android.app.Activity; import android ...

  5. python处理中文

    python 清洗中文文件 需要用到的两个链接: 1,unicode编码转换器 http://www.bangnishouji.com/tools/chtounicode.html 2,Python匹 ...

  6. 启动Android App时,动态将Sqlite数据库文件导入到手机中类方法

    package com.aqioo.db; import java.io.File; import java.io.FileOutputStream; import java.io.InputStre ...

  7. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  8. python的基础socket知识

    对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 代码意思if __name__ == '__main__':是主文件的话就先执行main函数, ...

  9. webservice之helloword(web)rs

    spring整合webservice 1.pom.xml文件 <dependencies> <!-- cxf 进行rs开发 必须导入 --> <dependency> ...

  10. SSM_CRUD新手练习(6)分页后台控制器编写

    经过测试基础环境已经搭建好了,现在我们开始编写CRUD. 我们来看一下查询的逻辑该怎么写: 1.访问index.jsp页面 2.index.jsp页面发送查询员工的请求 3.EmployeeContr ...