好文档 - 专业文书写作范文服务资料分享网站

ACCESS VBA编程 

天下 分享 时间: 加入收藏 我要投稿 点赞

End Sub

*在报表的打开事件中写:

Private Sub Report_Open(Cancel As Integer)

'根据交叉表查询的实际字段数来设定报表各节可以显示的控件数。 '需要使用DAO 3.6

'=============================== Dim rst As DAO.Recordset, intFieldsNum As Integer, I As Integer

'打开查询

Set rst = CurrentDb.OpenRecordset(\存书查询_交叉表] Where 1=2\

rst.MoveLast rst.MoveFirst

Debug.Print rst.RecordCount

'记录字段总数

intFieldsNum = rst.Fields.Count

'由于报表仅有10个可变字段+1个固定字段,所以,如果字段总数>11时, '只显示前面的11个字段,并给出提示。 If intFieldsNum > 11 Then intFieldsNum = 11

MsgBox \字段总数太多,报表仅显示前11个字段。\提示\End If

For I = 1 To 10

If I <= (intFieldsNum - 1) Then

'有对应字段,rst.Fields(I) 中 rst.Fields(0)是第一个,是“类别”字段。

'页眉标签可见

Section(acPageHeader).Controls(\标签\Section(acPageHeader).Controls(\标签\

'主体字段可见

Section(acDetail).Controls(\Section(acDetail).Controls(\

'报表页脚合计可见

Section(acFooter).Controls(\合计\rst.Fields(I).Name & \

Section(acFooter).Controls(\合计\

Else

'没有对应字段

'页眉标签不可见

Section(acPageHeader).Controls(\标签\

'主体字段不可见

Section(acDetail).Controls(\Section(acDetail).Controls(\

'报表页脚合计可见

Section(acFooter).Controls(\合计\Section(acFooter).Controls(\合计\

End If Next

rst.Close

Set rst = Nothing

End Sub

进行多条件查询, 希望某一条件为空时显示全部 where name1 like *temp1* and name2 like *temp2*

如何判断奇数(单数)、偶数(双数)? dim a as string

(这里有一段给a赋值的代码) if a mod 2=0 then

msgbox\这是一个偶数\esle

msgbox\这是一个奇数\end if

计算在每个范围内的数量

本示例假设您有一个“Orders”表,且里头含有一个“Freight”字段。程序建立一个“选择”来计算运费落在某些范围内的订单数量。Partition 函数是用来确定这些范围,然后调用 SQL Count 函数来计算在每个范围内的订单数量。本示例中,Partition 函数的参数值为 start = 0,stop = 500,interval = 50。第一个范围会是 0:49,每隔 50 一个范围,依次而下直到运费为 500 为止。

Select DISTINCTROW Partition([freight],0, 500, 50) AS Range, Count(Orders.Freight) AS Count

FROM orders

GROUP BY Partition([freight],0,500,50);

使用 Trim 函数显示字段的值,并且删除首尾的空格。

使用 Trim 函数显示“地址”字段的值,并且删除首尾的空格。 =Trim([地址]) Like函数示例:

查询条件为“Like \销售单输入]![文本26]”,当我输入60时,所有包含60的记录全部得出,诸如160、260、360等

只想要60的记录,并且当不输入任何数据时,所有记录全部得出

Like IIf([forms]![销售单输入]![文本26] Is Not Null,[forms]![销售单输入]![文本26],\使用 Left 函数来得到某字符串最左边的几个字符。 Dim AnyString, MyStr

AnyString = \定义字符串。 MyStr = Left(AnyString, 1) ' 返回 \。

MyStr = Left(AnyString, 7) ' 返回 \。

MyStr = Left(AnyString, 20) ' 返回 \。

使用 Mid 语句来得到某个字符串中的几个字符。 Dim MyString, FirstWord, LastWord, MidWords

MyString = \建立一个字符串。 FirstWord = Mid(MyString, 1, 3) ' 返回 \。 LastWord = Mid(MyString, 14, 4) ' 返回 \。

MidWords = Mid(MyString, 5) ' 返回 \。

使用 Right 函数来返回某字符串右边算起的几个字符。 Dim AnyString, MyStr

AnyString = \定义字符串。 MyStr = Right(AnyString, 1) ' 返回 \。

MyStr = Right(AnyString, 6) ' 返回 \。

MyStr = Right(AnyString, 20) ' 返回 \。

使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。 Dim SearchString, SearchChar, MyPos

SearchString =\被搜索的字符串。 SearchChar = \要查找字符串 \。

' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。 ' 小写 p 和大写 P 在文本比较下是一样的。 MyPos = Instr(4, SearchString, SearchChar, 1)

' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。 ' 小写 p 和大写 P 在二进制比较下是不一样的。 MyPos = Instr(1, SearchString, SearchChar, 0)

' 缺省的比对方式为二进制比较(最后一个参数可省略)。 MyPos = Instr(SearchString, SearchChar) ' 返回 9。

MyPos = Instr(1, SearchString, \返回 0。

使用 Space 函数来生成一个字符串,字符串的内容为空格,长度为指定的长度。 Dim MyString

' 返回 10 个空格的字符串。 MyString = Space(10)

' 将 10 个空格插入两个字符串中间。 MyString = \

使用 String 函数来生成一指定长度,且只含单一字符的字符串。 Dim MyString

MyString = String(5, \返回 \。 MyString = String(5, 42) ' 返回 \。

MyString = String(10, \返回 \。 使用 DLookup 函数

=DLookup(\联系人姓名]\供应商]\供应商ID] =\供应商ID])

一、变量为数字

If IsNull(DLookup(\纺号]\另一个表的名字\纺号] = \文本框的值)) Then Msgbox \该纺号不存在!\End If

二、变量为字符串

If IsNull(DLookup(\纺号]\另一个表的名字\纺号] = '\文本框的值 &\Msgbox \该纺号不存在!\End If

使用 Len 函数来得知某字符串的长度(字符数)或某变量的大小(位数)。 Type...End Type 程序区块定义一个自定义数据类型 CustomerRecord。如果该数据类型定义在对象类模块中,则必需以关键字 Private 开头(表示为私有)。若定义在常规模块中,

Type 定义就可以为 Public。

Type CustomerRecord ' 定义用户自定义的数据类型。 ID As Integer ' 将此定义放在常规模块中。 Name As String * 10 Address As String * 30 End Type

Dim Customer As CustomerRecord ' 声明变量。 Dim MyInt As Integer, MyCur As Currency Dim MyString, MyLen

MyString = \设置变量初值。 MyLen = Len(MyInt) ' 返回 2。

MyLen = Len(Customer) ' 返回 42。 MyLen = Len(MyString) ' 返回 11。 MyLen = Len(MyCur) ' 返回 8。

Round四舍五入。

Round(数值表达式,小数点右边应保留的位数)

用按钮在窗体中按指定字段查找记录 例一:

Private Sub 查找记录_Click()

On Error GoTo Err_查找记录_Click ''指定字段名称[学生编号]

DoCmd.GoToControl \学生编号\

DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

Exit_查找记录_Click: Exit Sub

Err_查找记录_Click: MsgBox Err.Description

Resume Exit_查找记录_Click End Sub 例二

Private Sub 按毕业时间查找_Click()

On Error GoTo 按毕业时间查找_Click_Err ''在窗体中按基础表的参数筛选

DoCmd.ApplyFilter \学生基本情况]![学生编号],4)+6=[请输入学生毕业年份(四位数)]\

按毕业时间查找_Click_Exit: Exit Sub

按毕业时间查找_Click_Err:

MsgBox Error$

Resume 按毕业时间查找_Click_Exit End Sub

ACCESS VBA编程 

EndSub*在报表的打开事件中写:PrivateSubReport_Open(CancelAsInteger)'根据交叉表查询的实际字段数来设定报表各节可以显示的控件数。'需要使用DAO3.6'===============================DimrstAsDAO.Recordset,i
推荐度:
点击下载文档文档为doc格式
6dlmk8ujjx6c4rp7oypx5gf8x599m300sw0
领取福利

微信扫码领取福利

微信扫码分享