项目开始一般都是用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. unity3DGI

    Realtime GI,实时全局光照, 1.构成 : 可实时更新的lightmap + 可实时更新的光照探头(light probe)+ 可实时更新的cubemap(Reflection probe) ...

  2. 使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

    虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下 ...

  3. 2018.12.22 bzoj3277: 串(后缀自动机+启发式合并)

    传送门 跟这道题是一模一样的. 于是本蒟蒻又写了一遍10min1A庆祝 代码: #include<bits/stdc++.h> #define ri register int using ...

  4. CLE的使用笔记

    CLE官网http://www.srplab.com/cn/index.html 下载CLE for Android,解压文件,拷贝 starcore_android_rX.X.jar到工程的libs ...

  5. 解决maltab的中文和英文字体问题,中文乱码

    用比较好看的编程字体,偏偏不显示中文,用支持中文的字体,英文不是等宽的,非常难看. 最近在网上找这方面的解决方法,发现解决问题的方法还是有的. 其实这个问题的原因就是系统自带的等宽字体,不支持中文,解 ...

  6. js基础学习笔记(一)

    * 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1    输出内容 docment.write(‘aileLi’); 改变某I ...

  7. AFNetworking网络请求数据

    //创建AFNetworking的请求操作    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWit ...

  8. (转)eclipse下配置tomcat7的几个重要问题,值得一看

    转自:http://jingyan.baidu.com/article/ab69b270ccc4792ca7189fd6.html 这段时间开始接触的servlet,今天尝试在eclipse下配置to ...

  9. (01背包)Buy the souvenirs (hdu 2126)

    http://acm.hdu.edu.cn/showproblem.php?pid=2126 Buy the souvenirs Time Limit: 10000/1000 MS (Java/Oth ...

  10. mysql_变量

    set names gbk; 变量 变量分为两种:系统变量,自定义变量 系统变量:系统定义好的,大部分情况用户不需要使用系统变量,如autocommit,auto_increment_incremen ...