- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
现在我们将根据主屏幕上搜索所用的内容来组装这
您可能关注的文档
- 工商管理专业大学生职业生涯规划范文--文书.doc
- 工商行政管理执法证管理办法.doc
- 工学结合模式下高职院校思政教育优化研究.doc
- 工学结合的订单式人才培养模式探讨.doc
- 工程低价中标引发安全问题的探讨.doc
- 工程师工作总结:2017年工程师年终总结范文.doc
- 工程材料及加工选择的技术—经济概念.doc
- 工艺管道水压试验试压包的建立与控制程序.doc
- 左卡尼汀对血液透析患者心功能的作用.doc
- 左归饮抗衰老的现代化研究进展.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)