
代码利用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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)