最近正在学习用Access数据库制作我们学校的教师绩效工作考核档案,技术上懂得不是很多,数据库也是很粗糙,不过我自己觉得还是不错的,呵呵。其中有一个功能是需要查询某个表(或查询)在数据库中是否存在,为此从网上搜索了很多文章,并在我的数据库中做了较多的测试,感觉不是很好,而且大多数文章中都只介绍了“表”是否存在,但对“查询”是否存在却介绍得比较少。最后参考中文Access开发社区网站中的一篇帖子“在VBA中,如何判断一个表或查询是否存在”,并做了简单的修改,经过多次测试,似乎是成功了,很是高兴。因此在这里贴出来,希望大家参与测试,并给予更多的指教,呵呵。
方法如下:
一、在窗体中分别创建一个文本框和一个按钮
二、在VBA环境中创建下面两个模块,并分别输入横线之间的代码
如果是Access
2003,则直接点击菜单栏上的“插入”→“模块”即可;如果是Access 2007,找到功能区“数据库工具”中的“Visual
Basic”按钮,即可进入VBA,然后在左侧的“模块”上右击“插入”→“模块”。
1、在表中查找:
———————————————————————————————————————
Function tblA(strTableName As String)
As Boolean
'''
表对象是否存在 tblA("表1") 返回值:true,false
On Error Resume Next
tblA = IsObject(CurrentDb.TableDefs(strTableName))
End
Function
———————————————————————————————————————
2、在查询中查找
———————————————————————————————————————
Function tblB(strTableName As String)
As Boolean
'''
查询对象是否存在 tblB("表1") 返回值:true,false
On Error Resume Next
tblB = IsObject(CurrentDb.QueryDefs(strTableName))
End
Function
———————————————————————————————————————
三、给命令按钮添加“单击”代码
在“窗体1”的设计模式中,右侧找到“属性表”,属性列表中找到单击方法,点击“...”,输入以下代码:
———————————————————————————————————————
Private Sub Cmdserch_Click()
If IsNull(Text0.Value) Then
End
ElseIf tblA(Text0.Value) = True Then
MsgBox ("您好,您所查找的 " & Text0.Value &
" 表,存在")
ElseIf tblB(Text0.Value) = True Then
MsgBox ("您好,您所查找的 " & Text0.Value &
" 查询,存在")
Else
MsgBox ("您好,您所查找的 " & Text0.Value &
" 表或查询,不存在")
End If
End
Sub
———————————————————————————————————————
以上方法也是在借鉴别人的方法的基础上学到的,还希望各位老师不吝赐教。