云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ACCESS-VBA编程

ACCESS-VBA编程

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 10:26:26

ACSSESS-VBA

第四章 数据输入、查询、计算、连接

通过英特网的ACCESS联接 在ACCESS中使用ADO: Private Sub ABC_Click()

Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.OPEN \

rs.OPEN \ rs.ABC App.Path & \rs.Close cn.Close

MsgBox (\End Sub

Private Sub OPEN_Click() Dim strConnect As String

strConnect = \Dim rs As New ADODB.Recordset

rs.OPEN \远程服务器的IP/test/testdata.dat\Do While Not rs.EOF

Debug.Print rs(\rs.MoveNext Loop End Sub

将用户输入的身份证号15位数据转化为18位。 Function IDCode15to18(sCode15 As String) As String

'* 功能:将15的身份证号升为18位(根据GB 11643-1999) '* 参数:原来的号码

'* 返回:升位后的18位号码 Dim i As Integer Dim num As Integer Dim code As String num = 0

IDCode15to18 = Left(sCode15, 6) + \' 计算校验位

For i = 18 To 2 Step -1

num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode15to18, 19 - i, 1)) Next i

num = num Mod 11 Select Case num Case 0 code = \Case 1 code = \

17-87

ACSSESS-VBA

Case 2 code = \Case Else

code = Trim(Str(12 - num)) End Select

IDCode15to18 = IDCode15to18 + code End Function

据身份证号自动输入出生日期 Dim Length As Integer

Length = Len(Me.[身份证号]) If Not IsNull(Length) Then If Length = 15 Then

Me.[性别] = IIf(Val(Mid(Me.身份证号, 15, 1)) / 2 = Int(Val(Mid(Me.身份证号, 15, 1)) / 2), \女\\男\

Me.[出生日期] = \身份证号], 7, 2) & \身份证号], 9, 2) & \身份证号], 11, 2)

ElseIf Length = 18 Then

Me.[性别] = IIf(Val(Mid(Me.身份证号, 17, 1)) / 2 = Int(Val(Mid(Me.身份证号, 17, 1)) / 2), \女\\男\

Me.[出生日期] = Mid([身份证号], 7, 4) & \身份证号], 11, 2) & \身份证号], 13, 2) Else

MsgBox \身份证号错误!\End If End If

两行代码打开另一数据库 Private Sub 命令4_Click()

On Error GoTo Err_命令4_Click Dim strDb As String strDb = \

SendKeys \Exit_命令4_Click: Exit Sub

Err_命令4_Click:

MsgBox Err.Description Resume Exit_命令4_Click End Sub

实现打开外部数据库中的报表。

Private Declare Function apiSetForegroundWindow Lib \Alias \(ByVal hwnd As Long) _ As Long

Private Declare Function apiShowWindow Lib \Alias \

18-87

ACSSESS-VBA

(ByVal hwnd As Long, _

ByVal nCmdShow As Long) _ As Long

Private Const SW_MAXIMIZE = 3 Private Const SW_NORMAL = 1

Function fOpenRemoteReport(strMDB As String, strReport As String, _ Optional intView As Variant) _ As Boolean

' strMDB: 外部数据库名称(含路径) ' strReport: 报表名称

' intView: 报表的打开方式

Dim objAccess As Access.Application Dim lngRet As Long

On Error GoTo fOpenRemoteReport_Err

If IsMissing(intView) Then intView = acViewPreview If Len(Dir(strMDB)) > 0 Then

Set objAccess = New Access.Application With objAccess

lngRet = apiSetForegroundWindow(.hWndAccessApp)

lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL) ' 第一次调用ShowWindow似乎不做任何事情

lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL) .OpenCurrentDatabase strMDB

.DoCmd.OpenReport strReport, intView Do While Len(.CurrentDb.Name) > 0 DoEvents Loop End With End If

fOpenRemoteReport_Exit: On Error Resume Next objAccess.Quit

Set objAccess = Nothing Exit Function

fOpenRemoteReport_Err: fOpenRemoteReport = False Select Case Err.Number Case 7866:

' mdb 已经被用独占方式打开

MsgBox \该数据库:\

vbCrLf & \已经被用独占方式打开!\

& vbCrLf & \请重新用共享方式打开,再试一次!\vbExclamation + vbOKOnly, \不能打开数据库\Case 2103:

19-87

ACSSESS-VBA

' 报表不存在

MsgBox \在这个\数据库中不存在该报表:\vbCrLf & vbCrLf , _

vbExclamation + vbOKOnly, \报表不存在\Case 7952:

' 用户关闭了这个 mdb fOpenRemoteReport = True Case Else:

MsgBox \错误#: \vbCritical + vbOKOnly, \运行时错误\End Select

Resume fOpenRemoteReport_Exit End Function

为列表框定数据源 Dim str3 As String

str3 = \jhd_mx_jiage.wp_leibie AS 类别, jhd_mx_jiage.wp_migceg AS 名称, jhd_mx_jiage.wp_xighao AS 型号, jhd_mx_jiage.jhmx_danwei AS 单位, jhd_mx_jiage.jhmx_danjia AS 单价FROM jhd_mx_jiage \& \where jhd_mx_jiage.wp_leibie='\Me.Listjhwp.RowSource = str3 Me.Listjhwp.Requery

为组合框、子窗体设置数据源

下面的示例将组合框的 RowSourceType 属性设为“Table/Query”,然后将 RowSource 属性设为“雇员列表”查询。

Forms!Employees!cmboNames.RowSourceType = \Forms!Employees!cmboNames.RowSource = \一:

Dim str1 As String

str1 = \ziyuag.zy_daihao, ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmig FROM ziyuag \Me.Child6zy.Form.RecordSource = str1 Me.Child6zy.Requery 二: 子窗体.FORM.recordsourse=\ziyuag.zy_daihao, ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmig FROM ziyuag \& \where zy_daihao='\& Text8dldh & \三:

Private Sub Command38_Click() Dim sjy As String Dim pd As Integer pd = True

sjy = \病历明细表.* FROM 病历明细表\If Not IsNull(Text0) Then If pd Then

20-87

搜索更多关于: ACCESS-VBA编程 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

ACSSESS-VBA 第四章 数据输入、查询、计算、连接 通过英特网的ACCESS联接 在ACCESS中使用ADO: Private Sub ABC_Click() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.OPEN \rs.OPEN \ rs.ABC App.Path & \rs.Close cn.Close MsgBox (\End Sub Private Sub OPEN_Click() Dim strConnect As String strConnect = \Dim rs As New ADODB.Recordset rs.OPEN \远程服务器的IP/tes

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com