ACCESS-VBA编程
以有前导零的数字来显示月 (01 – 12)。如果m是直接跟在h或hh之后,那么显示的将是分而不是月。 mmm
以简写来表示月 (Jan –Dec)。 mmmm
以全称来表示月 (January –December)。 oooo
与mmmm一样,它只是该字符串的本地化版本。 Q
将一年中的季以数值表示 (1 – 4)。 Y
将一年中的日以数值表示 (1 – 366)。 Yy
以两位数来表示年 (00 – 99)。 yyyy
以四位数来表示年 (00 – 99)。 H
以没有前导零的数字来显示小时 (0 – 23)。 Hh
以有前导零的数字来显示小时 (00– 23)。 N
以没有前导零的数字来显示分 (0 – 59)。 Nn
以有前导零的数字来显示分 (00 – 59)。 S
以没有前导零的数字来显示秒 (0 – 59)。 Ss
以有前导零的数字来显示秒 (00 – 59)。 t t t t t
以完整时间表示法显示(包括时、分、秒),用系统识别的时间格式定义的时间分隔符进行格式化。如果选择有前导零并且时间是在 10:00 A.M. 或 P.M.之前,那么将显示有前导零的时间。缺省的时间格式为 h:mm:ss。 AM/PM
在中午前以 12 小时配合大写 AM 符号来使用;在中午和 11:59 P.M.间以 12 小时配合大写 PM 来使用。 Am/pm
在中午前以 12 小时配合小写 am 符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写 pm 来使用。 A/P
在中午前以 12 小时配合大写A符号来使用;在中午和 11:59 P.M.间以12 小时配合大写P来使用。 a/p
在中午前以 12 小时配合小写a符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写p来使用。 AMPM
在中午前以 12 小时配合系统设置的 AM字符串文字来使用;在中午和 11:59 P.M. 间以 12 小时配合系统设置的 PM 字符串文字来使用。AMPM 可以是大写或小写,但必须和您的系统设置相配。其缺省格式为 AM/PM。 日期函数示例
当天日期:=Date() 当日:=Day(date) 当月:=Month(date()) 当年:=Year(date())
当季:=DatePart(\把日期大写
Function Date2Chinese(iDate) Dim num(10) Dim iYear
11
ACCESS-VBA编程
Dim iMonth Dim iDay
num(0) = \〇\ num(1) = \一\ num(2) = \二\ num(3) = \三\ num(4) = \四\ num(5) = \五\ num(6) = \六\ num(7) = \七\ num(8) = \八\ num(9) = \九\
iYear = Year(iDate) iMonth = Month(iDate) iDay = Day(iDate)
Date2Chinese = num(iYear \\ 1000) + _
num((iYear \\ 100) Mod 10) + num((iYear _ \\ 10) Mod 10) + num(iYear Mod _ 10) + \年\ If iMonth >= 10 Then
If iMonth = 10 Then
Date2Chinese = Date2Chinese + _ \十\月\ Else
Date2Chinese = Date2Chinese + _ \十\月\ End If Else
Date2Chinese = Date2Chinese + _ num(iMonth Mod 10) + \月\ End If
If iDay >= 10 Then
If iDay = 10 Then
Date2Chinese = Date2Chinese + _ \十\日\
ElseIf iDay = 20 Or iDay = 30 Then Date2Chinese = Date2Chinese + _ num(iDay \\ 10) + \十\日\ ElseIf iDay > 20 Then
Date2Chinese = Date2Chinese + _ num(iDay \\ 10) + \十\ num(iDay Mod 10) + \日\ Else
Date2Chinese = Date2Chinese + _ \十\日\ End If Else
Date2Chinese = Date2Chinese + _ num(iDay Mod 10) + \日\
12
ACCESS-VBA编程
End If End Function
算出每个月的天数 一法:
Dim a, b, c a = Year(Now()) b = Month(Now())
c = Format((a & \二法:
DateDiff(\DateDiff可以算出两个日期之间相差几天! 三法:
Day(DateAdd(\
day函数可以知道某个日期是这个月的第几天,我们把这个月的最后一天拿出来DAY一下! 应该还有更好的方法!
比如说可以定义一个数组,把每个月的日子放进去,或者说写一个函数算每一个月的天数 只要考虑一下闺年的问题就可以了!
如何得到某年每个月的第一天是星期几 Private Sub Command1_Click()
Dim i As Integer, A As Integer, B As Integer, C As String A = InputBox(\请输入年份\某年每个月的第一天是星期几\Form1.Cls
For i = 1 To 12
C = A & \B = Weekday(C) Select Case B Case vbSunday
Print A & \年\月1日是 星期日\Case vbMonday
Print A & \年\月1日是 星期一\Case vbTuesday
Print A & \年\月1日是 星期二\Case vbWednesday
Print A & \年\月1日是 星期三\Case vbThursday
Print A & \年\月1日是 星期四\Case vbFriday
Print A & \年\月1日是 星期五\Case vbSaturday
Print A & \年\月1日是 星期六\End Select Next i End Sub
计算天数及月初月末日期
Function 本月天数(日期 As Date) As Byte
本月天数 = DateSerial(Year(日期), Month(日期) + 1, Day(日期)) - 日期 End Function
13
ACCESS-VBA编程
Function 月末(日期 As Date) As Date
月末 = DateSerial(Year(日期), Month(日期) + 1, 1) - 1 End Function
Function 月初(日期 As Date) As Date 月初 = 日期 - Day(日期) + 1 End Function
本月最后一日是周几 SELECT
Weekday(DateAdd(\本月最后一日是周几, 下月最后一日是周几 SELECT
Weekday(DateAdd(\下月最后一日是周几, 本月最后一个周5到月底的天数 SELECT
(Weekday(DateAdd(\本月最后一个周5到月底的天数;
下月最后一个周5到月底的天数 SELECT
(Weekday(DateAdd(\下月最后一个周5到月底的天数;
本月最后一个周5的日期 SELECT
DateAdd(\(Date()),Month(Date()),1)-1))+1) Mod 7 AS 本月最后一个周5的日期; 下月最后一个周5的日期 SELECT
DateAdd(\(Date()),Month(Date()),1)-1))+1) Mod 7 AS 下月最后一个周5的日期;
数据输入、查询、计算、连接: 通过英特网的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
14
ACCESS-VBA编程
Debug.Print rs(\rs.MoveNext Loop End Sub
数据库网络使用时,速度很慢!
即使采取始终隐藏运行一个联接后端表的窗体的办法!也必须运行一次一个无条件的查询(窗体状态)后,速度才比较令人满意!!有没有更好的办法!! 在ADSL连接的互连网,而不是局域网!
一,建立一个隐藏运行的连接后端的窗体.
二,在打开启动窗体时自动运行一个用窗体显示的查询,注意,要显示到最后一条记录,不然,速度只能提高一部分,然后自动关闭该窗体(以上过程都要隐藏,所以实际上看不见,另因为要运行一定的时间,最好设置一个正在连接和连接完毕的的提示框),这样一来,读取速度几乎跟在单机上使用没有区别! 将用户输入的身份证号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 = \ 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), \女\男\
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Access - VBA编程(使用技巧大全)[1](3)在线全文阅读。
相关推荐: