Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

代码生成窗体及窗体事件的函数

时 间:2021-01-11 16:43:32
作 者:月皓星隐   ID:39720  城市:自贡
摘 要:代码创建窗体的函数。
正 文:

      有时工作需要创建大量窗体,都是重复的的项目只是字段不同,因为平台收费版才支持SQL server,因此开发工作很麻烦。这里根据平台的功能的灵感才设计了此函数。以下是我做的成品图片,我是设计了 窗体设计 类(Class)来自动创建,因为涉及到平台核心功能,因此本贴只提供最关键的函数,不提供成品,但是勤奋的同学可以根据自己的灵感自己创造了。

      各位同学拿去用的时候无忘原创,转发请注明作者,谢谢!同时希望多珍惜accessoft交流平台,这里真的学到了很多,要是可能,多多支持Accessoft平台。


创建出来的窗体如下:(对应的查询长宽型,主要是自定义的名称,可以无视掉)

点击图片查看大图


'*************************************************
'程序功能:本程序用来创建一个新窗体,并给新窗体赋予属性
'
'程序名称:CreateNewForms
'
'程序参数:frmName(窗体名称) , FrmCaption (窗体标题), Heith  (高度), Widths (宽度) , RecordSourceSQL(源数据 可选),
' DefaultViews(窗体可视化类型 可选,默认为0 即单个窗体,连续窗体是1,数据表是2)比如子窗体就可以用2
'使用范围:适合所有2016 及 2019 access
'
'使用范例:CreateNewForms "Test","这是一个测试",10*567,20*567
' 注意vba 使用的是缇,转化成厘米为 1:567 即10cm 为 10*567
'程序作者:月皓星隐
'
'编外的话:
'          
'参考资料:根据本平台的软件灵感开发
'
'编写时间:2021-01-11
'****************************************************

Private Function CreateNewForms(frmName As String, FrmCaption As String, Heith As Long, Widths As Long _
        , Optional RecordSourceSQL As String = "", Optional DefaultViews = 0)
    Dim frm As Form

    Set frm = CreateForm
    DoCmd.Save , frmName
    Set frm = Forms(frmName)
    
    With frm
        '设置标题
        .Caption = FrmCaption
        '不要记录选择器
        .RecordSelectors = False
        '不要导航按钮
        .NavigationButtons = False
        '滚动条设置成无
        .ScrollBars = 0
        '主窗体高度
         '关联记录
        '.InsideHeight = Me.主窗体高度
        .Section(acDetail).Height = Heith '这个是窗体主体部分  Me.Section(acFooter)是页脚
        '主窗体宽度
'        .InsideWidth = Me.主窗体宽度 这个只是临时改变
        .Width = Widths
        .RecordSource = RecordSourceSQL
        .DefaultView = DefaultViews
        '边框样式是 不可调边框
        .BorderStyle = 1
        .Modal = False '弹出方式
        .HasModule = False '模式    

        '把窗体模块打开,否则用代码写不进去代码

        .HasModule = True   
    End With    
    
    '再次保存
    DoCmd.Save , frmName
    '退出窗体
    DoCmd.Close acForm, frmName
    Set frm = Nothing
    RefreshDatabaseWindow
End Function


'******************************************************************************************************************
'程序功能:本程序用来创建一个窗体对应的代码
'
'程序名称: CreateModCode
'
'程序参数:frmName(你创建的窗体名称) , CodeStr 代码内容
'
'使用范围:适合所有2016 及 2019 access
'
'使用范例:CreateModCode  "Test","Private Sub Form_Load()" & Chr(10) & "End Sub"
'
'程序作者:月皓星隐
'
'编外的话:
'          
'参考资料:根据本平台的软件灵感开发
'
'编写时间:2021-01-11
'*******************************************************

'创建对应窗体及对应的控件程序

Function CreateModCode(frmName As String, CodeStr As String)
'On Error GoTo Err_CreateModleCode
    Dim frm As Form
    Dim mdl As Module
    
    DoCmd.OpenForm frmName, acDesign
    Set frm = Forms(frmName)
    frm.HasModule = True    
    Set mdl = frm.Module    
    mdl.InsertText CodeStr    
    DoCmd.Save
    DoCmd.Close acForm, frmName
    
Exit_CreateModleCode:
    Set mdl = Nothing
    Set frm = Nothing
    Exit Function
Err_CreateModleCode:
    If Err = 2516 Then
    '没有这个模块,那么就建立   

         frm.HasModule = True 

         resume next    
    End If

End Function

示范函数

sub FrmTest

    CreateNewForms "Test","这是一个测试",10*567,20*567

    CreateModCode  "Test","Private Sub Form_Load()" & Chr(10) & "End Sub"

end sub



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助