日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

excel数据命令导入mysql_如何将EXCEL数据导入MYSQL

發布時間:2023/12/2 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 excel数据命令导入mysql_如何将EXCEL数据导入MYSQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VBA對MySql數據庫進行讀取和寫入操作時間:2009-10-06 09:18:47來源:網絡 作者:未知 點擊:178次

'以下代碼用于32位系統,Office 2003,環境,MySql版本5.1

'在使用前需要先安裝MySql的驅動,進行正確配置

'注意:必須給出正確的服務器名、數據庫名、表名、數據庫連接的用戶名、密碼

Option Explicit

Dim Cnn As ADODB.Con

'以下代碼用于32位系統,Office 2003,環境,MySql版本5.1

'在使用前需要先安裝MySql的驅動,進行正確配置

'注意:必須給出正確的服務器名、數據庫名、表名、數據庫連接的用戶名、密碼

Option Explicit

Dim Cnn As ADODB.Connection '定義ADO連接對象

Dim Records As ADODB.Recordset '定義ADO記錄集對象

'連接到數據庫

Function CnnOpen(ByVal ServerName As String, ByVal DBName As String, ByVal TblName As String, ByVal User As String, ByVal PWD As String) '服務器名或IP、數據庫名、登錄用戶、密碼

Dim CnnStr As String '定義連接字符串

Set Cnn = CreateObject("ADODB.Connection") '創建ADO連接對象

Cnn.CommandTimeout = 15 '設置超時時間

CnnStr = "DRIVER={MySql ODBC 5.1 Driver};SERVER=" & ServerName & ";Database=" & DBName & ";Uid=" & User & ";Pwd=" & PWD & ";Stmt=set names GBK" '

Cnn.ConnectionString = CnnStr

Cnn.Open

End Function

'關閉連接

Function CnnClose()

If Cnn.State = 1 Then

Cnn.Close

End If

End Function

'取得記錄集

Function GetRecordset(ByVal SqlStr As String)

Set Records = CreateObject("ADODB.recordset")

Records.CursorType = adOpenStatic '設置游標類型,否則無法獲得行數

Records.CursorLocation = adUseClient '設置游標屬性,否則無法獲得行數

'對于Connection對象的Execute方法產生的記錄集對象,一般是一個只讀并且只向前的記錄集

'如果需要對記錄集進行操作,譬如修改和增加,則需要用一個Recordset對象

'并正確設置好CursorType和LockType為適當類型,然后調用Open方法打開

Records.Open SqlStr, Cnn '使用這個語句,行數將返回-1,Set Records = Conn.Execute(SqlStr)

End Function

'寫入Excel表

Function InputSheet(ByVal SheetName As String)

Dim Columns, Rows As Integer

Dim i, j As Integer

Columns = Records.Fields.Count

Rows = Records.RecordCount

If Records.EOF = False And Records.BOF = False Then

For i = 0 To Rows - 1

For j = 0 To Columns - 1

Sheets(SheetName).Cells(i + 2, j + 1).Select

Sheets(SheetName).Cells(i + 2, j + 1) = Records.Fields.Item(j).Value

Next

Records.MoveNext

Next

End If

Sheets(SheetName).Cells(1, 1).Select

MsgBox "Output!", vbOKOnly, "MySql to Excel"

End Function

'把Excel寫入MySql中的數據庫

Function InsertToMySql(ByVal SheetName As String, ByVal TblName As String)

Dim SqlStr As String

Dim i, j As Integer

Dim Columns, Rows As Integer

Columns = VBAProject.func_public.GetTotalColumns(SheetName)

Rows = VBAProject.func_public.GetTotalRows(SheetName)

Set Records = CreateObject("ADODB.recordset")

'取得結果集并插入數據到數據庫

Set Records = CreateObject("ADODB.Recordset")

'以下語句提供了插入思路,我只是把單條記錄的插入方式改為循環,以把所有的記錄添加到表中

'rs.Open "insert? ?into? ?newtable??values('" & ActiveSheet.Cells(i, 1).Value & "'," & "'" & ActiveSheet.Cells(i, 2).Value & "')", cnn, 0

For i = 2 To Rows

SqlStr = "INSERT INTO " & TblName & " values('" & Sheets(SheetName).Cells(i, 1).Value & "'" '注意:" values('",字母“v”之前是有空格的!!!

For j = 2 To Columns

SqlStr = SqlStr & ",'" & Sheets(SheetName).Cells(i, j).Value & "'"

Next

SqlStr = SqlStr & ")"

Set Records = Cnn.Execute(SqlStr) 'rs.Open SqlStr, cnn, 0??不能用這條語句實現!!!

Next

MsgBox "Insert!", vbOKOnly, "Excel To MySql"

End Function

'清除對象

Function ClearObj()

Set Cnn = Nothing

Set Records = Nothing

End Function

'獲得數據表的字段名稱

'OpenSchema可以獲得數據庫的各種信息

Function InputColumns(ByVal SheetName As String)

CnnOpen "localhost", "mydb", "employees", "root", ""

Set Records = Cnn.OpenSchema(adSchemaColumns)

Dim i As Integer

i = 1

While Not Records.EOF

Sheets(SheetName).Cells(1, i) = Records!COLUMN_NAME

i = i + 1

Records.MoveNext

Wend

CnnClose

ClearObj

End Function

本篇文章來源于:開發學院 http://edu.codepub.com? ?原文鏈接:http://edu.codepub.com/2009/1006/16171.php

總結

以上是生活随笔為你收集整理的excel数据命令导入mysql_如何将EXCEL数据导入MYSQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。