access数据库vba开发实例,access vba代码大全
Access VBA 创建新MDB数据库
'下列ACCESS窗体按钮单击事件过程(VBA代码)实现在当前目录下创建一个新MDB数据库,
'并在该数据库内新建一张学生表同时插入一条学生信息。
'有关代码需要引用ADO数据访问对象及其扩展ADOX类库
'引用方法:
'打开VBE窗口
'引用ADO—— 菜单"工具"- "引用 "--勾选 Microsoft ActiveX Data Objects 2.1 Library 或更高版本,点击确定按钮
'引用ADOX—— 菜单"工具"- "引用 "-- 勾选 Microsoft ADO Ext.2.7 for DDL ado Security 或更高版本,点击确定按钮
Private Sub Command0_Click()
Dim MyMDB As New ADOX.Catalog '声明并示例化一个ADOX.Catalog对象
Dim cn As New ADODB.Connection '声明并示例化一个ADO连接对象
Dim cnStr As String '声明一个连接字符串变量
'在当前目录下创建一个名为“NewAccessDB”的ACCESS数据库
MyMDB.Create ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" CurrentProject.Path "\NewAccessDB.mdb" ";")
'设置连接上述代码新创建的数据库之连接字符串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" CurrentProject.Path "\NewAccessDB.mdb" ";"
'打开与该数据库的连接
cn.Open cnStr
'新建一张学生表
cn.Execute "create table students(sname text(30),sex text(1),birth date)"
'向学生表插入一条数据
cn.Execute "insert into students values('张三','男',#1998-02-03#)"
'关闭连接
cn.Close
'提示操作成功
MsgBox "新数据库已成功创建,并在其中建立了一张学生表同时并插入一条学生信息"
End Sub
ACCESS里打开某数据库后如何用VBA引用表、记录及字段值
在
Access
2003
中,您可以使用
Visual
Basic
编辑器查看当前选择的
VBA
引用。为此,请按照下列步骤操作:
启动
Access
2003。
打开一个
Access
数据库。
按
ALT+F11
打开
Visual
Basic
编辑器。
在
Visual
Basic
编辑器窗口中,单击“工具”菜单上的“引用”。在“引用”对话框中,您可以看到所选的引用。注意
当选择了一个引用后,您还可以查看有关使用该引用必须加载的文件的信息。相关文件可能是类型库、对象库或控件库。每个引用的相关文件会根据“引用”对话框中显示的信息进行加载。但是,如果找不到相应的文件,Access
2003
将在计算机上的其他位置搜索它。对于所选的每个
VBA
引用,Access
2003
都会执行以下任务:
Access
验证是否已加载了引用的文件。
如果当前未加载引用的文件,Access
将验证
RefLibPaths
注册表项是否存在。
如果
RefLibPaths
注册表项存在,Access
将搜索与引用具有相同名称的命名值。如果有匹配的命名值,则
Access
将从命名值中提及的路径加载引用。注意
您可以将
RefLibPaths
注册表项手动添加到注册表中,然后可以添加
RefLibPaths
注册表项下任何外接程序或任何库的名称和位置。为此,请按照下列步骤操作。
单击“开始”,然后单击“运行”。
在“打开”框中,键入
regedit,然后单击“确定”。
在“注册表编辑器”窗口中,找到以下注册表项:HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access
右键单击“Access”注册表项,指向“新建”,然后单击“项”。
将新创建的项命名为
RefLibPaths。
单击“RefLibPaths”。
右键单击右窗格中的任意位置,然后单击“字串值”。
使用与
VBA
引用相同的名称命名新创建的字符串值。
右键单击您在第
8
步中创建的字符串值,然后单击“修改”。
在“编辑字符串”对话框中,键入必须加载的文件的位置以与
VBA
中的引用对应。注册表值名称必须是文件名加扩展名。位置(数值数据)必须是路径加文件名。例如,如果设置对
Northwind
示例数据库的引用,则可以添加以下值:
数值名称:Northwind.mdb
数值数据:C:\Program
Files\Microsoft
Office\Office11\Samples\Northwind.mdb
重复第
7
步到第
10
步,将适当的外接程序或库的名称和位置作为字符串值添加。
在“文件”菜单上,单击“退出”。如果
RefLibPaths
注册表项不存在或未包含正确的引用,则
Access
使用“SearchPath”API
搜索引用的文件。将执行以下搜索:
搜索范围说明
应用程序目录
Msaccess.exe
的位置。
当前目录在“文件”菜单上单击“打开”时所看到的目录。
系统目录
Windows
文件夹或
WINNT
文件夹中的
System
文件夹和
System32
文件夹。
WinDir
操作系统文件在其中运行的文件夹。这通常是
Windows
文件夹或
WINNT
文件夹。
PATH
环境变量此系统变量包含系统可直接访问的一组文件夹。Microsoft
Windows
NT
4.0:在控制面板中,双击“系统”,然后单击“环境”选项卡。PATH
变量显示在“系统变量”列表中。Microsoft
Windows
2000
或
Microsoft
Windows
Server
2003:在控制面板中,双击“系统”,单击“高级”选项卡,然后单击“环境变量”。PATH
显示在“系统变量”列表中。
文件目录包含
.mdb
文件、.mde
文件、.adp
文件或
.ade
文件的文件夹和任何子文件夹。注意
如果您要引用的文件位于上表中提到的任何目录中,则
Access
不需要
RefLibPaths
注册表项。如果
Access
2003
无法找到相关引用,当您编译项目或尝试运行某个过程时,将收到以下错误信息:
Your
Microsoft
Office
Access
database
or
project
contains
a
missing
or
broken
reference
to
the
file
file
name.*
To
ensure
that
your
database
or
project
works
properly,
you
must
fix
this
reference.
注意
在数据库已打开的情况下,对于每个无法找到的引用,您都会收到一次前面提及的错误信息。例如,如果您打开了
MyDatabase.mdb
并且
MyDatabase.mdb
丢失了对
Microsoft
Calendar
控件和
Microsoft
DAO
库的引用,则您会收到两条错误信息,丢失的每个引用对应一条错误信息。如果您未修复这些引用,那么当您关闭数据库然后再重新打开时,您将再次收到这些错误信息。如果您修复了这些引用并保存了数据库,则下次打开该数据库时就不会收到这些错误信息了。BrokenReference
属性Access
的
Application
对象具有一个
BrokenReference
属性,该属性可以告诉您是否有任何引用出现了错误。若要检查
BrokenReference
属性,请按照下列步骤操作:
启动
Access
2003。
打开一个
Access
数据库。
按
ALT+F11
打开
Visual
Basic
编辑器。
按
CTRL+G
组合键打开“立即”窗口。
在“立即”窗口中,键入以下命令,然后按
Enter
键:?Application.BrokenReference请注意,如果存在丢失的引用,Application
对象的
BrokenReference
属性将返回“True”。否则,BrokenReference
属性将返回“False”。
如何用vba代码将access数据库连接求代码
下面这段程序是连接数据库,并将excel表格内容写入数据库。代码如下:
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.0;Data 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 = "INSERT INTO fymxb(小区ID,建筑ID,费用ID,分包性质,工作量,单价合计_中标,人工费_中标, 主材费_中标, 辅材费_中标, 机械费_中标, 管理费_中标, 利润_中标,规费_中标,税金_中标,合价_中标,单价合计_标准成本,人工费_标准成本,主材费_标准成本,辅材费_标准成本,机械费_标准成本,管理费_标准成本,利润_标准成本,规费_标准成本,税金_标准成本,合价_标准成本,单价合计_实际成本,人工费_实际成本,主材费_实际成本,辅材费_实际成本,机械费_实际成本,管理费_实际成本,利润_实际成本,规费_实际成本,税金_实际成本,合价_实际成本) VALUES (" XQID ", " JZID ", " FYID ", '" FBXZ "'"
For i = 1 To 31
Sql = Sql "," SARR(i)
Next i
Sql = Sql " )"
cONn.Execute Sql
hh = hh + 1
Loop
End Sub
如何用vba代码将access数据库连接求代码?
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.0;Data 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