对查询代码的一点改进-Aaron
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 源码示例


对查询代码的一点改进

发表时间:2013/1/31 18:56:57 评论(0) 浏览(4724)  评论 | 加入收藏 | 复制
   
摘 要:对查询代码的一点改进,简化了一些输入,提高了效率。
正 文:

对查询代码的一点改进,简化了一些输入,提高了效率。

(1)在子窗体建立全局变量:

Dim mstrSearchQuery As String '查找窗体对应的查询名称
Dim mstrOrderField As String '查找结果用来排序的字段
(2)在模块中加入公用函数

'生成查询窗体的查询字段列表
Public Function FindString(strQuery As String) As String
    Dim qrySearch As QueryDef
    Dim fldSearch As Field
    Dim blnMatch As Boolean
    Dim intFieldType As Integer
    Dim strSearch As String
    For Each qrySearch In CurrentDb.QueryDefs
        If qrySearch.Name = strQuery Then
            Set qrySearch = CurrentDb.QueryDefs(strQuery)
            blnMatch = True
            Exit For
        End If
    Next
    If blnMatch = False Then
        MsgBox "请检查输入的查询名称!"
        FindString = ""
        Exit Function
    End If
    For Each fldSearch In qrySearch.Fields
        Select Case fldSearch.Type
        Case dbDate
            intFieldType = 1
        Case dbText, dbMemo
            intFieldType = 3
        Case Else
            intFieldType = 2
        End Select
        strSearch = strSearch & fldSearch.Name & ";" & intFieldType & ";"
    Next
    FindString = strSearch
    Set qrySearch = Nothing
    Set fldSearch = Nothing
End Function

(3)子窗体中的查询代码

'查找功能
Public Sub btnFind()
    Dim SearchString As String
    DoCmd.OpenForm "usysfrmFind"    '- ------打开查询窗体
    '文本型对应 3 ,日期型对应 1 ,数值型对于 2      -------查询不同的字段类型的时候,对应不同的数字来表示
    SearchString = FindString(mstrSearchQuery) 
    Forms!usysfrmFind!cobfldName.RowSource = SearchString  '-------设置需要查询的字段,已经设定该查询字段的数据类型
    '指定查询数据来源
    Forms!usysfrmFind!labDataSource.Caption = mstrSearchQuery
End Sub
Public Sub FindEnd()                            '----------------查询结束后执行的过程
    Forms!usysfrmMain!frmChild.Form.RecordSource = Acchelp_ChildFormRecordSource(mstrSearchQuery, mstrOrderField, True)   '- ----------刷新子窗体数据
End Sub

(4)子窗体的加载过程代码

后发现这段代码还是放到窗体的open过程比较稳妥。因为当窗体的记录为0时,并不会触发Load过程。

Private Sub Form_Load()
    Forms!usysfrmMain!labFind.Tag = 1
    Forms!usysfrmMain!btnEdit.Tag = 999
    mstrSearchQuery = "qryEmployees"   '---------------------只要替换查询的名称,注意大小写
    mstrOrderField = "员工编号"                '---------------------注意字段的拼写,必要的字段要加[  ]号。
End Sub


Access软件网交流QQ群(群号:198465573)
 
 相关文章
[access查询]一句查询代码实现Excel数据导入导出  【红尘如烟  2010/10/14】
常见问答
技术分类
相关资源
文章搜索
关于作者

Aaron

文章分类

文章存档

友情链接