精华内容
下载资源
问答
  • 根据EXCEL表格中的数据表结构,一键自动生成sqlserver数据库表结构,create语句。VBA方便快捷,一键生成。减去大量的重复工作,节省开发时间。同时支持sql语句生成excel数据表.
  • 大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的...

    大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的数据表。为什么要有这样的操作呢?我们举个实例:如果您是一个部门的销售人员,每月的销售数据是一个EXCEL表格,如果可以把这些数据放到数据库中,这样会更方便的实现查找和统计。

    为什么要借助数据库呢?EXCEL不可以吗?当然,理论上是可以的,但实际不推荐。为什么呢?把数据保存在EXCEL中,容易误操作,而且当数据量大的时候,EXCEL的操作远比数据库操作要慢。这是我多年工作经验的体会。所以我们在学习的时候,该更新自己知识结构的要及时更新。比如有的朋友的EXCEL还是2003版本的甚至是2000版本的,还是建议你尽快的升级吧。

    言归正传,我们还是研究如何实现上述的逆运算的过程。实例:在我的EXEL表格中有一份19年2月份的销售记录,我要新建立一个数据表保存它。EXCEL工作表内容如下截图:

    6cf5b6c067128acd22bbdf108138eca6.png

    导入的数据表名称为“19年销售情况”,下面我们看看如何能实现这个过程。

    由于可能的方法很多,我要一个一个的给大家讲解,或许有的朋友会说,怎么不用那种方法啊?对的,你的方法也可以,或许我在后续的文章中会讲到你的方案,不要紧,先看我的思路:

    代码:

    Sub mynzCreateDataTable() '将工作表生成新数据表

    Dim cnADO, rsADO As Object

    Dim strPath, strSQL, strTable As String

    Set cnADO = CreateObject("ADODB.Connection")

    Set rsADO = CreateObject("ADODB.Recordset")

    strPath = ThisWorkbook.Path & "\mydata2.accdb"

    strTable = "19年销售情况"

    cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

    Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, strTable, Empty))

    '如果存在这个数据表,那么删除

    If Not rsADO.EOF Then

    strSQL = "DROP TABLE " & strTable

    cnADO.Execute strSQL

    End If

    '按工作表创建数据表

    strSQL = "SELECT * INTO " & strTable _

    & " FROM [Excel 12.0;Database=" _

    & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$]"

    cnADO.Execute strSQL

    MsgBox "已经将工作表数据生成新数据表。", vbInformation, "数据表创建"

    rsADO.Close

    cnADO.Close

    Set rsADO = Nothing

    Set cnADO = Nothing

    End Sub

    代码截图:

    a7ee4b4159e04c06fda26cdd9c0f155e.png

    代码的讲解:

    1 Dim cnADO, rsADO As Object

    Dim strPath, strSQL, strTable As String

    Set cnADO = CreateObject("ADODB.Connection")

    Set rsADO = CreateObject("ADODB.Recordset")

    strPath = ThisWorkbook.Path & "\mydata2.accdb"

    strTable = "19年销售情况"

    cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

    Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, strTable, Empty))

    上述代码用于创建ADO对象和连接,不清楚的朋友要回过头看看我之前的讲解,这段代码其实是相对固定的,朋友可以作为固定的格式来利用,很多类似的地方都是如此的。

    2 '如果存在这个数据表,那么删除

    If Not rsADO.EOF Then

    strSQL = "DROP TABLE " & strTable

    cnADO.Execute strSQL

    End If

    这段代码我加了注释是如果存在这个数据表,那么删除,具体的解释我也不再多说,我之前都有详细的讲解

    3 '按工作表创建数据表

    strSQL = "SELECT * INTO " & strTable _

    & " FROM [Excel 12.0;Database=" _

    & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$]"

    cnADO.Execute strSQL

    如果您将来会买到我的这套《VBA数据库解决方案》一书,在书中我会有关于数据库和EXCEL工作表连接的讲解,这里我们理解的是SELECT INTO 语句:SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

    SQL SELECT INTO 语法

    ①把所有的列插入新表:

    SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename

    ②只把希望的列插入新表:

    SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename

    4 rsADO.Close

    cnADO.Close

    Set rsADO = Nothing

    Set cnADO = Nothing

    上述代码用于关闭连接和释放内存。

    下面我们看运行的结果:

    c43146ec0537b152bfafdbf997a651be.png

    今日内容回向:

    1 如何把EXCEL数据备份到数据表中?

    2 通过以前的学习你是否还有他的设想,可以实现把数据表中的数据备份到数据库的表中?

    展开全文
  • 大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的...

    大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的数据表。为什么要有这样的操作呢?我们举个实例:如果您是一个部门的销售人员,每月的销售数据是一个EXCEL表格,如果可以把这些数据放到数据库中,这样会更方便的实现查找和统计。

    为什么要借助数据库呢?EXCEL不可以吗?当然,理论上是可以的,但实际不推荐。为什么呢?把数据保存在EXCEL中,容易误操作,而且当数据量大的时候,EXCEL的操作远比数据库操作要慢。这是我多年工作经验的体会。所以我们在学习的时候,该更新自己知识结构的要及时更新。比如有的朋友的EXCEL还是2003版本的甚至是2000版本的,还是建议你尽快的升级吧。

    言归正传,我们还是研究如何实现上述的逆运算的过程。实例:在我的EXEL表格中有一份19年2月份的销售记录,我要新建立一个数据表保存它。EXCEL工作表内容如下截图:

    1d49b06be090cf033239685020b75ba8.png

    导入的数据表名称为"19年销售情况",下面我们看看如何能实现这个过程。

    由于可能的方法很多,我要一个一个的给大家讲解,或许有的朋友会说,怎么不用什么方法啊?对的,你的方法也可以,或许我在后续的文章中会讲到你的方案,不要紧,先看我的思路:

    代码:

    Sub mynzCreateDataTable() '将工作表生成新数据表

    Dim cnADO, rsADO As Object

    Dim strPath, strSQL, strTable As String

    Set cnADO = CreateObject("ADODB.Connection")

    Set rsADO = CreateObject("ADODB.Recordset")

    strPath = ThisWorkbook.Path & "mydata2.accdb"

    strTable = "19年销售情况"

    cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

    Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, strTable, Empty))

    '如果存在这个数据表,那么删除

    If Not rsADO.EOF Then

    strSQL = "DROP TABLE " & strTable

    cnADO.Execute strSQL

    End If

    '按工作表创建数据表

    strSQL = "SELECT * INTO " & strTable _

    & " FROM [Excel 12.0;Database=" _

    & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$]"

    cnADO.Execute strSQL

    MsgBox "已经将工作表数据生成新数据表。

    展开全文
  • 大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的...

    大家好今日我们继续讲解VBA数据库解决方案的第22讲:如何利用工作表数据,生成数据库新的数据表。在之前的讲解中我们讲了很多把数据从数据表中导出到工作表的方法,今日我们讲解如何把数据由工作表存储到数据库中的数据表。为什么要有这样的操作呢?我们举个实例:如果您是一个部门的销售人员,每月的销售数据是一个EXCEL表格,如果可以把这些数据放到数据库中,这样会更方便的实现查找和统计。

    为什么要借助数据库呢?EXCEL不可以吗?当然,理论上是可以的,但实际不推荐。为什么呢?把数据保存在EXCEL中,容易误操作,而且当数据量大的时候,EXCEL的操作远比数据库操作要慢。这是我多年工作经验的体会。所以我们在学习的时候,该更新自己知识结构的要及时更新。比如有的朋友的EXCEL还是2003版本的甚至是2000版本的,还是建议你尽快的升级吧。

    言归正传,我们还是研究如何实现上述的逆运算的过程。实例:在我的EXEL表格中有一份19年2月份的销售记录,我要新建立一个数据表保存它。EXCEL工作表内容如下截图:

    0d18be36d8f6ec83e1b24c8c5d3789af.png

    导入的数据表名称为"19年销售情况",下面我们看看如何能实现这个过程。

    由于可能的方法很多,我要一个一个的给大家讲解,或许有的朋友会说,怎么不用什么方法啊?对的,你的方法也可以,或许我在后续的文章中会讲到你的方案,不要紧,先看我的思路:

    代码:

    Sub mynzCreateDataTable() '将工作表生成新数据表

    Dim cnADO, rsADO As Object

    Dim strPath, strSQL, strTable As String

    Set cnADO = CreateObject("ADODB.Connection")

    Set rsADO = CreateObject("ADODB.Recordset")

    strPath = ThisWorkbook.Path & "mydata2.accdb"

    strTable = "19年销售情况"

    cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

    Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, strTable, Empty))

    '如果存在这个数据表,那么删除

    If Not rsADO.EOF Then

    strSQL = "DROP TABLE " & strTable

    cnADO.Execute strSQL

    End If

    '按工作表创建数据表

    strSQL = "SELECT * INTO " & strTable _

    & " FROM [Excel 12.0;Database=" _

    & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$]"

    cnADO.Execute strSQL

    MsgBox "已经将工作表数据生成新数据表。

    展开全文
  • VBA从Excel中生成Oracle create table

    千次阅读 2013-12-15 00:07:02
    有时会碰到Oracle设计文档用Excel,需要根据Excel生成create table语句。当多,列多,设计变更时,这个VBA小函数就能节省很多时间。在google, baidu搜了一圈,没有找到类似的。写出来方便自己也方便他人。 假设:...
    有时会碰到Oracle设计文档用Excel,需要根据Excel生成create table语句。当表多,列多,设计变更时,这个VBA小函数就能节省很多时间。在google, baidu搜了一圈,没有找到类似的。写出来方便自己也方便他人。

    假设:
    Sheet名字为表名
    第一行作为Excel表格表头
    第一列为列名
    第二列null 约束
    第三列数据类型

    目前还不支持分区语法

    Private Sub Worksheet_Activate()
        Dim ddl As String
        Dim i As Integer
        ddl = "Create table " + Sheet1.Name + " ("
        'MsgBox (Sheet1.Range("A" & 2).Value)
        For i = 2 To 27
            ddl = ddl + Sheet1.Range("A" & i).Value + " "         'Column name
            ddl = ddl + Sheet1.Range("C" & i).Value + " "              'Data type
            If Sheet1.Range("B" & i).Value = "N" Then
                ddl = ddl + "not null"
            End If
            ddl = ddl + ","
        Next i
        ddl = Left(ddl, Len(ddl) - 1) + ");"
        'Write the DDL to Sheet11
        Sheet11.Range("A2").Value = Sheet1.Name
        Sheet11.Range("B2").Value = ddl
    End Sub


    展开全文
  • pandas 数据分析必备包,用来对二维表数据进行分析整合。 os 更改系统配置信息,如列出工作目录的文件,更改工作目录等。 json 用来处理json数据,或者把字符串等其他格式的数据转化为json数据。 base64 用来对图片...
  • 在处理财务数据时,可能需要根据某一行中的数据对整个工作进行分类创建各自的工作 待处理的表格 解决思路及代码 1、对整个excel进行分析,判断是否存在一些无意义的工作(这里只是为了让最终生成的工作...
  • 1、需求:有1个工作簿,多个工作,格式一致,按某列作为关键字(具有唯一性),汇总数据,以...需要的结果:3、代码实现简单分析:读取数据根据姓名确定数据要存放的行号,并累加到合计列输出个人碰到的很多VBA...
  • 然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的...
  • 然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的...
  • 然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的...
  • 然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的...
  • Excel VBA用Copy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。...根据模板表生成表格的效果如图2所示。 图2 使用Copy方法复制粘贴,代码如下所示: Sub Copy复制粘贴困惑() Dim x A...
  • 块和属性的结合使用非常灵活,自动标题栏和块属性生成表格两个程序演示了这种应用。实现“斜切”功能应该属于块应用的一个副产品,利用插入块参照时可以指定不同X、Y、Z坐标的特点,实现特殊的图形变换。 第8章介绍...
  • Access 2007 VBA宝典 4/4

    2012-03-31 08:36:49
    完整清晰版 PDF ,有目录。共 120MB,分为四个分卷 ... 无论是否打算以Access报表、数据透视图或数据透视,或者Word文档或Excel工作来表现数据数据都可存储在Access中,并在Access窗体中输入和编辑数据
  • Access 2007 VBA宝典 2/4

    2012-03-31 08:22:16
    完整清晰版 PDF ,有目录。共 120MB,分为四个分卷 ... 无论是否打算以Access报表、数据透视图或数据透视,或者Word文档或Excel工作来表现数据数据都可存储在Access中,并在Access窗体中输入和编辑数据
  • Access 2007 VBA宝典 3/4

    2012-03-31 08:31:46
    完整清晰版 PDF ,有目录。共 120MB,分为四个分卷 ... 无论是否打算以Access报表、数据透视图或数据透视,或者Word文档或Excel工作来表现数据数据都可存储在Access中,并在Access窗体中输入和编辑数据
  • Access 2007 VBA宝典 1/4

    2012-03-31 08:12:09
    完整清晰版 PDF ,有目录。共 120MB,分为四个分卷 ... 无论是否打算以Access报表、数据透视图或数据透视,或者Word文档或Excel工作来表现数据数据都可存储在Access中,并在Access窗体中输入和编辑数据
  • 测试数据管理器2.0

    2013-02-07 11:47:21
    本工具使用Excel VBA编写,根据数据库结构自动生成测试数据表格,用户手工管理测试数据后,系统可将数据自动插入到数据库中或生成SQL文件,系统会根据外键计算数据库之间的依赖关系。
  • 测试数据管理器1.0

    2007-06-03 08:31:39
    本工具使用Excel VBA编写,根据数据库结构自动生成测试数据表格,用户手工管理测试数据后,系统可将数据自动插入到数据库中或生成SQL文件,系统会根据外键计算数据库之间的依赖关系。 本工具不支持测试...
  • 测试数据管理器1.2

    2009-04-13 14:53:11
    本工具使用Excel VBA编写,根据数据库结构自动生成测试数据表格,用户手工管理测试数据后,系统可将数据自动插入到数据库中或生成SQL文件,系统会根据外键计算数据库之间的依赖关系 2.0版本已经发布了。请下载...
  • 根据工资表生成工资条 • 利用CHOOSE函数重新生成内存数组 • 利用查找函数进行多表数据标识 • 实现多区域联合判断求值 • VLOOKUP函数实现向左查询 • 从生产配件编号中提取连续的数字编码 • 利用MATCH 函数...
  • “导入”按钮:如果你有现成原始成绩数据表,可点导入选择你的原始成绩工作簿和工作表(默认为1)追加或导入数据到总表,如果追加,你的原始工作表第二行为标题且须与总表首行标题完全一致方可。 “记录单”按钮:你...
  • “导入”按钮:如果你有现成原始成绩数据表,可点导入选择你的原始成绩工作簿和工作表(默认为1)追加或导入数据到总表,如果追加,你的原始工作表第二行为标题且须与总表首行标题完全一致方可。 “记录单”按钮:你...
  • EXCEL 2007 宝典 附光盘文件

    热门讨论 2010-04-02 14:43:05
    loan data tables.xlsx:一个演示如何使用一种方法和两种方法计算数据表中的贷款。 loan payment.xlsx:一个包含计算贷款还款的公式的工作簿。 Chapter 18 calendar array.xlsx:一个演示如何使用复杂的数组公式...
  • 你可以先在总输入、导入、复制粘贴或在记录单逐条录入原始成绩,经设置简单设置后即可在“表册”中根据你的需要自动生成各种表册,包括分班成绩册等各种表册、成绩单、各种统计等。 ※※※※二、与众不同 1...
  • 1.1.3 数据表、记录、字段、查询、SQL、索引和键 3 1.2 MySQL 4 1.3 MySQL的不足 6 1.4 MySQL的版本编号 7 1.4.1 Alpha、Beta、Gamma、Production(Generally Available) 8 1.4.2 按版本编号排列的MySQL功能...
  • 8.3.1 生成表查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) 195 8.3.4 删除查询(DELETE) 195 8.4 使用高级的查询操作 195 8.4.1 总计查询 195 8.4.2 在单独或所有选项中...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

vba根据数据表生成表格