20161208xlVBA工作表数据导入Access

Sub InsertToDataBase()

    Dim DataPath As String
    Dim SQL As String
    Const DataName As String = "yunying.mdb"
    Const TableName As String = "关键词效果分析"

    DataPath = ThisWorkbook.Path & "\" & DataName

    Dim Rng As Range
    Dim Arr As Variant
    Dim EndRow As Long
    Dim Fileds As String
    Dim Values As String

    With ThisWorkbook.Worksheets(1)
        EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
        Set Rng = .Range("A1:R" & EndRow)
        Arr = Rng.Value

        For i = 2 To Rng.Rows.Count
            Fileds = ""
            Values = ""
            For j = 1 To 6
                Fileds = Fileds & Arr(1, j) & ","
                Values = Values & "‘" & Arr(i, j) & "‘," ‘数值转为文本
            Next j

            For j = 7 To Rng.Columns.Count
                Fileds = Fileds & Arr(1, j) & ","
                Values = Values & Arr(i, j) & ","
            Next j

            Fileds = Left(Fileds, Len(Fileds) - 1)
            Values = Left(Values, Len(Values) - 1)

            SQL = "INSERT INTO " & TableName & " (" & Fileds & ") VALUES(" & Values & ")"

            Debug.Print SQL
            CnnRunSQL DataPath, SQL

            ‘If i = 2 Then Exit Sub
        Next i
    End With
    Set Rng = Nothing
End Sub
Sub CnnRunSQL(ByVal DataPath As String, ByVal SQL As String)
‘对象变量声明
    Dim CNN As Object
    Dim RS As Object
    ‘数据库引擎——Excel作为数据源
    Const DATA_ENGINE As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
    ‘创建ADO Connection 连接器 实例
    Set CNN = CreateObject("ADODB.Connection")
    ‘ On Error Resume Next
    ‘创建 ADO RecordSet  记录集 实例
    ‘Set RS = CreateObject("ADODB.RecordSet")
    ‘连接数据源
    CNN.Open DATA_ENGINE & DataPath
    ‘执行查询 返回记录集

     CNN.Execute (SQL)
    ‘RS.Open SQL, CNN, 1, 1
    ‘关闭记录集
    ‘RS.Close
    ‘关闭连接器
    CNN.Close
    ‘释放对象
    Set RS = Nothing
    Set CNN = Nothing
End Sub

  

时间: 2024-10-01 08:04:39

20161208xlVBA工作表数据导入Access的相关文章

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

Excel表数据导入数据库表中

***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为一张临时表,在插入到正式表中.语句如下: --YK_TYPK插入数据 insert into YK_TYPK --插入'YK_TYPK(通用品库)'数据 select * from Sheet1$_TYPK_caoyao ---------------------------------------

利用Sql实现将指定表数据导入到另一个数据库示例

因为工作中经常需要将数据从一个数据库导入到另一个数据库中,所以将这个功能写成一个存储过程,以方便调用.现在粘贴出来供大家参考: 注意:1,以下示例中用到了syscolumns,sysobjects等系统视图,在sql2005及以后的版本中,大家也可以使用sys.columns与sys.objects来代替,只要修改对应的字段即可.2,以下示例还用到了set identity_insert设置,有对该设置不太清楚的朋友可以点击链接查看其用法.3,结合sys.tables表与游标,大家可以循环调用以

EXCEL表数据导入到ORACLE数据库中

将EXCEL表导入ORACLE数据库中 一.建立表 1.建立表 2.查询表 select * from yy; 二.导入程序 在excel中找到需要导入的数据 2.将excel中的数据另存为文本文件(有制表符分割的) 3.在pl*sql中选择tools-->text importer,在出现的窗口中选择"Data from Textfile",然后再选择"Open data file", 在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data fr

mysq将表数据导入文件并将文件从远程服务下载到本地

1,将mysql中某个表的数据导入到文件: 首先,将要执行的sql写在一个后缀为".sql"的文件(比如:sql20170720.sql,内容为:select * from db_deb.t_low where  create_time between "2017-06-19 00:00:00" and "2017-07-20 23:59:59" ;). 然后执行:mysql -h100.11.111.20 -Pabvf.--default-ch

oracle表结构表数据导入导出

--------------------------------------imp/exp--------------------------------------------------------------------------- //导入表数据以及表结构 imp 用户名/密码@数据库名称 fromuser(文件的指定用户,即从那个用户导入数据)=用户名 touser(目标用户,即导入到当前登录的那个用户)=用户名 file=要导入的dmp文件位置 ignore=y(忽略错误创建) /

把Excel表数据导入数据库

导入格式 //导入Excel(导入资产信息) private void button2_Click(object sender, EventArgs e) { OpenFileDialog openfilediaglog = new OpenFileDialog(); openfilediaglog.Filter = "xls文件|*.xls"; if (openfilediaglog.ShowDialog() == DialogResult.OK) { string str = Im

将excel表数据导入sqlserver2008R2 报错

错误信息: 正在复制到 [dbo].[Sheet1sss$] (错误)消息错误 0xc020901c: 数据流任务 1: 输出“Excel 源输出”(9) 上的 输出列“FDESC”(93) 出错.返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项.”. (SQL Server 导入和导出向导) 错误 0xc020902a: 数据流任务 1: “输出列“FDESC”(93)”由于发生截断而失败,而且针对“输出列“FDESC”(93)”的截断行处理设置指定截断时出错.在指定组