网站大量收购独家精品文档,联系QQ:2885784924

应用技巧:在数据库中搜索文本--.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用技巧:在数据库中搜索文本--.doc

  应用技巧:在数据库中搜索文本   对于数据库而言,没有可用的搜索工具。事实上,它还没有提供。那么当在数据库中定位字符串时会怎样呢?如果你打开这个数据库,展示在你面前的就是一个应用程序或可能是众多的表和很少的基本工具来搜索这些表或是一个很麻烦的查询界面。这意味着你需要非常了解这个数据库,从而猜到这个字符串在哪或它是否存在。这篇文章告诉你在一个Access数据库中你可以怎样搜索所有的表,然后返回哪些表包含所搜索的字符串。使用强大的Microsoft Access链接技术可以将相同的技术应用于其它的数据库格式。   找到一个文本字符串   驱使数据库搜索的Access表单(见图1)可以引入到你的数据库中。这个搜索工具会搜索数据库中的每一个表或链接表。这个软件具有以下特点:   建有一个前端Access数据库并链接到所有你希望某个特定用户或用户组搜索的后台表。Access允许你链接到Access数据库、文本文件和电子数据表,并通过从ODBC到特定驱动到更通用的后台数据库,例如SQL Server或MySQL或Oracle。   然后系统表会被分析,以便我们可以在这个数据库中创建所有的表。   所有这些表都被搜索以查找这些表里包含文本数据的所有字段。在这个过程中,所有数字的、日期的和blob类型数据字段都会被忽略。然后会生成一个SQL语句来查找每个表中的所有文本字段。   然后我们使用记录集对每个表运行这个查询,然后找到和报告任何成功的(第一个)匹配,以便用户知道哪些表含有所查找的字符串。      图1 ndash; 搜索后台数据库中字符串位置的工具   代码   这个搜索工具的所有都在这个搜索按钮之下。这个软件采用的第一个技术是循环Table集合中所有的表(略过Jet系统表和临时表)。       #39; Establish the phrases to be used for searching from   #39; the fields on the form. The database file is selected   #39; using standard VB file controls   Set myDb = CurrentDb #39; es   For i = 0 To myDb.TableDefs.Count - 1   Set MyTable = myDb.TableDefs(i)   tableName = MyTable.Name   If Left(tableName, 4) lt;gt; MSys And Left(tableName, 4) lt;gt; usys _   And Left(tableName, 1) lt;gt; ~ Then   现在这个软件打开一个记录集并循环每个表中的所有字段来确认哪些字段是文本字段。在这个过程中,我们在搜索每个表时要使用的过滤是重置。      #39; NoFields = MyTable.Fields.Count   Set rstSearchTable = myDb.OpenRecordset( _   tableName, dbOpenSnapshot)   Fields - 1   Set myField = MyTable.Fields(j)   fldStr = myField.Name   fldType = myField.Type   If fldType = dbText Then   接下来,也是对于Access数据库很重要的一个步骤,就是管理可以用来命名字段的众多名称。遵循明确命名规范的表和字段名称使得事情容易得多。大多数情况下,你会看到的是具有空格的扩展描述,比如Emergency Contact First Name或% 、#,或者甚至是句号.。 Access在内部管理这些,它允许你使用方括号将字段或表名称括起来[]。下面的代码显示了怎样处理这些。       #39; Jet fieldnames can include unusual letters   blankpos = InStr(1, fldStr, ) + _   InStr(1, fldStr, #) + _   InStr(1, fldStr, -) + _   InStr(1, fldStr, /)   If blankpos gt; 1 Then   #39; Make sure blank spaces and other odd   #39; fieldname characters are handled correctly   fldStr = [ fldStr ]   End If   现在我们将根据主屏幕上搜索所用的内容来组装这

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档