如何用vba将ACCESS窗体和查询导入另一个数据库中

如何用vba将ACCESS窗体和查询导入另一个数据库中,第1张

Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发。但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入Excel中再进行处理。

代码利用ADO组件可以方便地对各种数据进行连接和访问。ADO组件中的Connection对象可以实现对数据库的连接,并可以快速实现SQL语句的执行,然后再用VBA将SQL查询的结果输出到Excel表格中。

打开VBE窗口,选择菜单“工具”一“引用”,勾选MicrosoftActiveXDataObjects2.8Library,并单击“确定”按钮。

利用ADO连接数据库ADO的全称是ActiveXDataObject,是一个用于存取数据源的COM组件,用以快速实现各种数据库的连接、读取、写入。在ADO组件中有一个Connection对象,利用Connection对象的Open方法可以实现数据库的连接。

选中窗体,然后右击,选择“导出”,在d出的对话框里选择“另一个数据库”。

如果要导出多个窗体的话,建议先打开“另一个数据库”,然后选择“导入”,在d出的对话框里选择需要导入的Access,如图所示:

因为你没有给出表结构和窗体的具体要求,为了说明方便,做到示例一目了然:

1、表名称包括“测试表”,“作者”和“证书编码”两个字段。结构图如下:

2、窗体包括四个未绑定文本框(名称与对应标签同)和一个名为“保存数据”的按钮。如下图:

3、上图中录入显示的数据,然后点击“保存数据”按钮。“测试表”的数据变化如下:

4、窗体中“保存数据”按钮的【单击事件】代码为:

Private Sub 保存数据_Click()

On Error GoTo MyErr

' 定义变量并赋值

Dim i, m, n, k As Integer

Dim zsid As String

m = Val(Me.开始码)

n = Val(Me.结束码)

k = Len(Me.开始码)

' 检查数据录入是否正确

If IsNull(Me.作者) Or IsNull(Me.通用码) Or IsNull(Me.开始码) Or IsNull(Me.结束码) Then

 

  MsgBox "数据未保存!请把信息填写完整后重试...", 64 + 0 + 4096, "波涛工作室"

   

Exit Sub

ElseIf k <> Len(Me.结束码) Then

   

MsgBox "开始码与结束码位数不一致!请重新输入...", 64 + 0 + 4096, "波涛工作室"

   

Exit Sub

ElseIf m > n Then

   

MsgBox "开始码不能大于结束码!请重新输入...", 64 + 0 + 4096, "波涛工作室"

   

Exit Sub

End If

' 开始保存数据

For i = m To n

    ' 计算并格式化证书编码

   

zsid = Me.通用码 & Right(Left(Me.开始码, k - Len(m)) & i, k)

   

' 用INSERT语句写入数据

   

CurrentDb.Execute "INSERT INTO 测试表 VALUES ('" & Me.作者 & "', '" & zsid & "')"

Next i

Exit Sub

' 发生未知错误后的处理

MyErr:

 

 

MsgBox "错误类型:" & Err.Description, 64 + 0 + 4096, "波涛工作室"

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9722247.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存