Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[求助]想写一个为控件赋值的通用过程

mosengren  发表于:2008-08-29 11:43:05  
复制

假设所有的录入窗体都有创建者、创建日期、创建时间三个控件,如何写一个通用的过程,参数为窗体名,给三个空间赋值

 

我先是这样写

 

Sub Creator(ObjName As Object)
    ObjName.创建者 = CurrentUser()
    ObjName.创建日期 = Date
    ObjName.创建时间 = Time()
End Sub

 

后来改成

 

Sub Creator(ObjName As Object)
x As Control
For Each x In ObjName
    If x.NAME = "创建者" Then
        x.VALUE = CurrentUser()
    'ObjName.创建者 = CurrentUser()
    'ObjName.创建日期 = Date
    'ObjName.创建时间 = Time()
    ElseIf x.NAME = 创建日期 Then
        x.VALUE = Date
    ElseIf x.NAME = 创建时间 Then
        x.VALUE = Time()
    End If
Next x
End Sub

 

都运行不过去

 

请指教!

 

Top
trynew 发表于:2008-08-29 13:20:10

参数为窗体名 与 ObjName As Object矛盾,窗体名与窗体对象不是同一回事,你在窗体中用Me对象作参数应该可以。如果想用窗体名称作为参数,则参数应定义为 ObjName As String,ObjName.创建者 = CurrentUser() 则改为:Forms(ObjName).创建者 = CurrentUser()


 



常昊 发表于:2008-08-29 15:55:44

已解决。

多谢!

 

Forms 集合中,每个窗体都从零开始编排索引。通过按名称或按其在集合中的索引引用窗体,可以引用 Forms 集合中的单个 Form 对象。如果要引用 Forms 集合中指定的窗体,最好是按名称引用窗体,因为窗体的集合索引可能会变动。如果窗体名称包含空格,那么名称必须用方括号 ([ ]) 括起来:

语法 示例
Forms!formname Forms!OrderForm
Forms![form name] Forms![Order Form]
Forms("formname") Forms("OrderForm")
Forms(index) Forms(0)



总记录:2篇  页次:1/1 9 1 :