Excel → 开发工具 → Visual Basic:打开VBE后,点击插入,选择模块,就可以在该项目下新建一个空白模块。
Excel → 开发工具 → 插入 → 控件 → 右键控件 → 指定宏:可以直接将宏绑定到控件上,然后进行编辑。
进行编写代码前的准备工作:
Visual Basic → 工具 → 引用:引用 Microsoft ActiveX Data Objects 2.x Library,否则运行代码会报“用户定义类型未定义”提示。
Excel中用VBA根据输入的日期从Access数据库中提取相应的数据并插入到Excel表中:
Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发。但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入Excel中再进行处理。代码利用ADO组件可以方便地对各种数据进行连接和访问。ADO组件中的Connection对象可以实现对数据库的连接,并可以快速实现SQL语句的执行,然后再用VBA将SQL查询的结果输出到Excel表格中。
打开VBE窗口,选择菜单“工具”一“引用”,勾选MicrosoftActiveXDataObjects2.8Library,并单击“确定”按钮。
利用ADO连接数据库ADO的全称是ActiveXDataObject,是一个用于存取数据源的COM组件,用以快速实现各种数据库的连接、读取、写入。在ADO组件中有一个Connection对象,利用Connection对象的Open方法可以实现数据库的连接。
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。用vba代码将access数据库连接求代码,代码如下:
Sub FYMXDL()
Dim XQID As Integer
Dim JZID As Integer
Dim FYID As Integer
Dim FBXZ As String '分包性质
Dim DW As String
Dim SARR(1 To 31) As Double
Dim rst As New ADODB.Recordset
mYpath = ThisWorkbook.Path &"\jzfydata.accdb"
Set cONn = CreateObject("ADODB.Connection")
cONn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0Data Source=" &mYpath
cONn.ConnectionString = cONn.ConnectionString &"Jet OLEDB:Database "
cONn.Open
XQID = Cells(3, 2).Value
JZID = Cells(3, 5).Value
'清空改小区-建筑的费用明细
Sql = "delete from fymxb where 小区ID=" &XQID &" AND 建筑ID = " &JZID
cONn.Execute Sql
Const kshh = 7
hh = kshh
Do While Cells(hh, 3).Value >0
FYID = Cells(hh, 3).Value
FBXZ = Cells(hh, 11).Text
For i = 1 To 31
SARR(i) = Round(Cells(hh, 13 + i - 1).Value, 2)
Next i
Sql = Sql &"," &SARR(i)
Next i
Sql = Sql &" )"
cONn.Execute Sql
hh = hh + 1
Loop
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)