导航:首页 > 编程大全 > excelvba与数据库整合应用

excelvba与数据库整合应用

发布时间:2023-08-28 17:15:01

① Excel VBA 连接SQL数据库后的操作。

呵呵,以前就帮人家解决过这个,请看下面的代码,有注释的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODB.Connection '定义ADODB连接对象
Dim ConnStr As String '定义连接字符串
Dim xiao As String

xiao = ComData.Text

'对于SQL 2008,如果以IP方式访问服务器,必须要启动SQL Server Browser服务,如果是Express版本,要以“IP(计算机名)\实例名”方式访问
ConnStr = txtData.Text

Dim Records As New ADODB.Recordset '定义ADODB对象的记录集
Dim Sheet As Worksheet '定义工作表

Set Sheet = ThisWorkbook.Worksheets("Sheet2") '给变量Sheet赋值,注意:是工作簿中索引为1的那个表(通常一个新的工作簿Sheet1的索引为1)
'Sheet.Name = "Data" '把Sheet名称改为Data
Sheet.Cells.Clear '清空表中原有的数据

'连接状态是打开就不在进行Open操作

Conn.Open ConnStr
Dim SQLStr As String '要执行的SQL语句
SQLStr = "select * from Shift_Code where Club='" + xiao + "'" '可以执行更复杂的SQL语句

Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '读取SQL查询结果到Records记录集
'Records.Open
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count

'下面的循环把表头(即列名)写到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2.Cells(1, i + 1) = Records.Fields(i).Name
Next

'下面的循环把查询结果写到Excel表中
Do While Not Records.EOF

For i = 0 To TotalColumns - 1
Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next

Records.MoveNext
j = j + 1

Loop
Records.Close '关闭记录集
Conn.Close '关闭连接

Set Records = Nothing '清空对象
Set Conn = Nothing '清空对象

End Sub

有什么不懂的话Hi我!

② 用excel的VBA合并汇总多个工作薄,每个工作薄的格式一样,需要合并的内

1原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。

2在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。

3按Alt+F11进入VBA代码编辑和调试界面。

4根据提示,插入一个模块。

5将下述代码粘贴到模块空白处:
Sub CombineSheetsCells()

Dim wsNewWorksheet As Worksheet
Dim cel As Range
Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant
Dim TitleRow, TitleColumn As Range
Dim Num As Integer
Dim DataRows As Long
DataRows = 1
Dim TitleArr()
Dim Choice
Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$
Dim n, i
n = 1
i = 1
Application.DisplayAlerts = False
Worksheets("合并汇总表").Delete
Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))
wsNewWorksheet.Name = "合并汇总表"

MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")

If MyFileName = "False" Then
MsgBox "没有选择文件!请重新选择一个被合并文件!", vbInformation, "取消"

Else

Workbooks.Open Filename:=MyFileName

Num = ActiveWorkbook.Sheets.Count
MyName = ActiveWorkbook.Name
Set DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:", Type:=8)
AddressAll = DataSource.Address
ActiveWorkbook.ActiveSheet.Range(AddressAll).Select

SourceDataRows = Selection.Rows.Count
SourceDataColumns = Selection.Columns.Count
Application.ScreenUpdating = False
Application.EnableEvents = False

For i = 1 To Num
ActiveWorkbook.Sheets(i).Activate
ActiveWorkbook.Sheets(i).Range(AddressAll).Select
Selection.Copy

ActiveSheetName = ActiveWorkbook.ActiveSheet.Name
Workbooks(ThisWorkbook.Name).Activate
ActiveWorkbook.Sheets("合并汇总表").Select

ActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetName
ActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

DataRows = DataRows + SourceDataRows

Workbooks(MyName).Activate

Next i

Application.ScreenUpdating = True

Application.EnableEvents = True

End If

Workbooks(MyName).Close
End Sub

6在“首页”工作表中按下图示范插入一个窗体控件并指定宏为插入的代码名称。

7点击“首页”工作表中插入的按钮,根据提示,浏览到原始数据工作簿。

8下一步,用鼠标选择要合并的数据范围。
注意:每个工作表数据可能不一样,比如说有的是10行数据,有的是30行数据。在这里我们可以用鼠标选择任意工作表的一个较大范围,比如说A1:D100,保证比最多行数的工作表数据还多就可以,一会再删除空行。

9点击确定按钮,待代码运行完毕后,所有的数据就都合并到了“合并汇总表”中。
注意:
1)A列的文本说明右侧的数据来自于原始数据表的哪个工作表;
2)数据之间会有一些空行,下面通过筛选删除。

10选中全部数据区域,执行自动筛选。然后选择其中一个字段,选择“空白”和标题内容。

11然后将筛选出来的无用行鼠标右键删除,再删除A列整列即可,完成效果

③ excel中vba怎么连接mysql数据库并展示数据

可以使用以下代码在EXCEL上使用VBA连接MYSQL数据库 :

DimstrconntAsString
strconnt=""
Setconnt=NewADODB.Connection
Dimsevip,Db,user,pwdAsString
'设服务器地址、所连数据,及登录用户密码
sevip="localhost"
Db=“test"
user="root"
pwd="123456"
strconnt="DRIVER={MySqlODBC5.3UnicodeDriver};SERVER="&sevip&";Database="&Db&";Uid="&user&";Pwd="&pwd&";Stmt=setnamesGBK"
connt.ConnectionString=strconnt
connt.Open

④ vbaExcel连接数据库的好处

EXCEL vba 数据库连接

听语音

阅读全文

与excelvba与数据库整合应用相关的资料

热点内容
java点击按钮选择本地文件 浏览:908
自己制作ps渐变预设文件包 浏览:358
怎么登陆苹果账号 浏览:951
java随机百分比 浏览:625
c语言数学函数头文件 浏览:625
历年温度数据怎么下载 浏览:360
新qq如何改密码忘了怎么办 浏览:123
函数的编程是什么 浏览:522
什么网站上能叫小姐 浏览:534
压缩文件解压打开方式 浏览:86
高中生查成绩用哪个app 浏览:874
win10家庭组无法离开 浏览:102
微信插件文件 浏览:493
不让修改的pdf文件 浏览:946
会声会影模板文件格式 浏览:59
iphone6邮件删除容量 浏览:784
暑假编程培训怎么学 浏览:88
对商家怎么推广app 浏览:92
xplane10安卓破解 浏览:309
下载中国知网免费入口登入工具 浏览:959

友情链接