EXCEL汇出资料到MYSQL与PHP、Phthon、R、APP共用资料

 

将资料存放在MYSQL可以解决多平台不同开发工具共用资料问题,

PHP、Phthon、R、APP的共用资料,EXCEL又是最普遍的办公室应用程式,

所以若能将两者串连,相信可以让资料运用更加弹性。

此外,一般会和EXCEL VBA连接的大多都是用到ACCESSMS SQL资料库

但ACCESS资料库与MS SQL资料库都不是自由软体,所以会有授权费用

另外ACCESS资料库基本上是单机型的资料库,对于多台电脑连线就会有问题

虽然可以透过网芳共用来解决,但还是非常的麻烦的,

所以改用MYSQL资料库,似乎就可以解决前两者资料库的问题,

首先它是自由软体,再者它也可以让大家在同个网路区段里连线。

以下介绍如何安装EXCEL VBA连线

这篇文章主要是在VBA中呼叫ADO,并用SQL语言和MYSQL沟通,

浅显易懂,而且容易操作,和大家分享,

不过比较困难的部分,

可能要注意:

1.Windoms有没有安装IIS,有就一定要停止,或换PORT号。

2.执行ADO一定要安装MYSQL的驱动程式。

3.连线字串可以参考 ConnectionStrings 网站:https://www.connectionstrings.com/

 

预览画面:

 

可以先参考:

PHP与云端资料库教学懒人包(2015)

https://terry55wu.blogspot.tw/p/blog-page_18.html

 

PHP云端资料库教学之1(打造PHP与MySQL环境)

https://terry55wu.blogspot.tw/2015/03/php1phpmysql.html

 

这是PHP云端资料库第一次上课,主要是了解学生的程度学习需求
并且打造PHP与MySQL环境下载XAMPP安装的懒人包 [下载]

 

1.XAMPP563.zip解压缩到D碟与执行setup_xampp.batxampp-control.exe

 

 

启动Apache 与 MySQL (注意要允许防火墙)

 

 

1.如何设定XAMPP与MQSQL的安全性

 

 

2.如何新增MQSQL资料库与资料表

建立资料库

3.建立资料表

 

建立问题2资料表

 

 

INSERT INTO `问题2`(`编号`, `品名`, `单价`, `数量`, `小计`, `地区`) VALUES ('0001','玩具',399,46,18354,'东')

 

 

程式码:

Sub 新增单笔()

 

   r = Range("A2").End(xlDown).Row

   A = Cells(r, 1)

   B = Cells(r, 2)

   C = Cells(r, 3)

   D = Cells(r, 4)

   E = Cells(r, 5)

   F = Cells(r, 6)

   Call 利用ADO新增资料(A, B, C, D, E, F)

   MsgBox "资料新增成功!!", vbInformation

End Sub

Sub 新增全部()

 

   For i = 2 To Range("B2").End(xlDown).Row

       A = Cells(i, 1)

       B = Cells(i, 2)

       C = Cells(i, 3)

       D = Cells(i, 4)

       E = Cells(i, 5)

       F = Cells(i, 6)

       Call 利用ADO新增资料(A, B, C, D, E, F)

       Application.StatusBar = "新增到第" & i - 1 & "笔"

   Next

   MsgBox "资料新增全部成功!!", vbInformation

End Sub

Sub 利用ADO新增资料(A, B, C, D, E, F)

 

   '1.建立Connection物件

   Set myCon = CreateObject("ADODB.Connection")

   '2.连结资料库

   myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=问题2;User=root;Password=1234;Option=3;"

   '3.建立Recordset物件&连结资料表

   Sql = "INSERT INTO 问题2 (编号, 品名, 单价, 数量, 小计, 地区) VALUES ('" & _

   A & "','" & B & "', " & C & ", " & D & "," & E & ",'" & F & "')"

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

End Sub

Public Sub 删除EXCEL资料()

 

   Range("A2:F" & Range("A2").End(xlDown).Row).ClearContents

End Sub

Sub 从MYSQL资料库全部汇入()

 

   '1.建立Connection物件

   Set myCon = CreateObject("ADODB.Connection")

   '2.连结资料库

   'myCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ThisWorkbook.Path & "\问题1.accdb;"

   myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=问题2;User=root;Password=1234;Option=3;"

   '3.建立Recordset物件&连结资料表

   Sql = "Select * from 问题2"

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

   Range("A2").CopyFromRecordset myRs

End Sub

Sub 删除所有MYSQL资料()

 

   '1.建立Connection物件

   Set myCon = CreateObject("ADODB.Connection")

   '2.连结资料库

   'myCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ThisWorkbook.Path & "\问题1.accdb;"

   myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=问题2;User=root;Password=1234;Option=3;"

   '3.建立Recordset物件&连结资料表

   Sql = "Delete from 问题2"

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

End Sub

 

**如何远端连线

1.新增使用者

 

2.设定权限(任意主机)

 

3.修改连线主机的IP或名称


 

**新增全部_进度状态列

 

完成画面:

 

 

表单属性

 

标签属性

 

 

Private Sub UserForm_Activate()

 

   '状态列归零

   PB.Width = 0

   '取得总列数

   r = Range("A2").End(xlDown).Row

   For i = 2 To r

       A = Cells(i, 1)

       B = Cells(i, 2)

       C = Cells(i, 3)

       D = Cells(i, 4)

       E = Cells(i, 5)

       F = Cells(i, 6)

       Call 利用ADO新增资料(A, B, C, D, E, F)

       '更新状态列用400去除

       PB.Width = (i - 1) * (400 / (r - 1))

       '更新表单

       home.Repaint

       Application.StatusBar = "新增到第" & i - 1 & "笔"

   Next

   home.Hide

End Sub


 

Sub 新增全部_进度状态列()

 

   home.Show

   MsgBox "资料新增全部成功!!", vbInformation

End Sub

 

教学影音(完整版在论坛):

 

教学影音完整版在论坛:

https://groups.google.com/forum/#!forum/scu_excel_vba2_86

 

课程特色:

1.如何将函数转成VBA2.VBA与资料库快速结合

EXCEL函数 VBA程式设计资料库是分别属于三个领域的知识,

但却是目前大家都需要的一项专业技能,要把三者融合的很好实在非常不容易,

刚好我有近20年的VB程式设计与资料库设计的经验,

教EXCEL函数与相关课程也有多年,因此清楚如何把最重要的知识教给大家,

ADO资料库设计的知识非常多,但根据我多年的设计实务经验,

觉得最重要的是掌握SQL语言,就可以轻易的完成查询、新增、修改与删除等功能,

就可以轻易的完成自己想处理的大量资料,大大提高工作效率了!

 

完整教学影音DVD申请:http://goo.gl/ZlBZE

 

其他相关学习:

 

1.EXCEL VBA设计(自强基金会2012)第4次上课

http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

 

2.如何把EXCEL"函数"变为 "VBA"?自强基金会2012第5次上课

http://terry55wu.blogspot.tw/2012/04/excel-vba.html

 

3.自强基金会2012第8次上课

http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

 

4.自强基金会2012第9次上课

http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

 

5.EXCEL_VBA与资料库--自强基金会2012(Ending)

http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

 

EXCEL,VBA,函数,文化大学推广部,EXCEL VBA 函数 程式设计 线上教学 excel vba 教学 excel vba指令教学 vba范例教学excel  excel vba教学视频 excel函数教学 excel函数 MYSQL

相关文章