设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: tmtony

[Access本身] Access技巧接龙

[复制链接]
发表于 2005-1-25 03:36:00 | 显示全部楼层
楼上非常棒!
发表于 2005-1-28 04:14:00 | 显示全部楼层
哇,这么多好技巧,我也弄了一些,在:http://www.accessoft.com/Article_Special.asp?SpecialID=1
发表于 2005-2-2 08:57:00 | 显示全部楼层
vba.kill

vba.copy

发表于 2005-3-9 23:50:00 | 显示全部楼层
hehe这个好玩
发表于 2005-3-23 20:45:00 | 显示全部楼层
ceiling函数  是Excel中的向上舍入函数,可以在引用Excel对象库后使用(包括其它Excel中的函数),如msgbox Excel.WorksheetFunction.Ceiling(129.99,0.05)另外也可以在Access中自定义:Public Function Ceiling(Num As Double, Sign As Double) As Double

    Dim intDot As Integer

    intDot = IIf(InStr(Sign, ".") = 0, 0, Len(Sign) - InStr(Sign, "."))

    Num = Int(Num * 10 ^ intDot)

    Sign = Sign * 10 ^ intDot

    Ceiling = (Num + IIf(Num Mod Sign = 0, 0, Sign) - (Num Mod Sign)) / 10 ^ intDot

End Function





发表于 2005-3-26 03:39:00 | 显示全部楼层

我也正有一个这样的问题急待回答

如何让OLE对象反映到窗体或报表上的尺寸正好匹配

在数据库中保存或链接的OLE对象,反到窗体和报表上尺寸大小不匹配,有时只是显示局部一点,怎样使其匹配。请帮助.
发表于 2005-3-29 20:48:00 | 显示全部楼层
好厉害
发表于 2005-3-30 16:39:00 | 显示全部楼层
下面的程序效率不是很高,但超大整数乘法、加法的函数还是比较实用

Public Function factorial(num As Integer) As String

    factorial = "1"

    For num = num To 1 Step -1

        factorial = strMult(factorial, Trim(Str(num)))

    Next

End Function'1000 的阶乘=40238726007709377354370243392300398571937...用时6分钟

'超大整数乘法 (需调用下面的strAdd、strPlus自定义函数)

Public Function strMult(str1 As String, str2 As String) As String

    Dim i As Integer

    If Len(str2) = 1 Then

        strMult = IIf(str2 = "0", "", str1)

        For i = 1 To Val(str2) - 1

            strMult = strAdd(strMult, str1)

        Next

    Else

        strMult = strAdd(strMult(str1, Right(str2, 1)), strMult(str1 & "0", Left(str2, Len(str2) - 1)))

    End If

End Function'超大整数加法 (需调用下面的strPlus自定义函数)

Public Function strAdd(str1 As String, str2 As String) As String

    If Len(str1) < Len(str2) Then

        strAdd = strAdd(str2, str1)

    Else

        Dim num As Long

        strAdd = strPlus(str1, "", Val(Right(str2, 1)))

        For num = 1 To Len(str2) - 1

            strAdd = strPlus(Left(strAdd, Len(strAdd) - num), Right(strAdd, num), Val(Mid(str2, Len(str2) - num, 1)))

        Next

    End If

End FunctionPublic Function strPlus(str1 As String, str2 As String, num As Integer) As String

    If Len(str1) = 1 Then

        strPlus = (Val(str1) + num) & str2

    Else

        num = Val(Right(str1, 1)) + num

        If num < 10 Then

            strPlus = Left(str1, Len(str1) - 1) & num & str2

        Else

            strPlus = strPlus(Left(str1, Len(str1) - 1), (num Mod 10) & str2, 1)

        End If

    End If

End Function

发表于 2005-3-30 21:37:00 | 显示全部楼层

有用。只是,看了半天才明白。

只是中文的ASC码,从哪里能找到呢?
发表于 2005-3-31 20:26:00 | 显示全部楼层
俺是菜鸟,啥都看不懂。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-3-29 18:55 , Processed in 0.090147 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表