设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1068|回复: 1
打印 上一主题 下一主题

[ADO/DAO] 请教各位高手,利用DAO提取主题词

[复制链接]
跳转到指定楼层
1#
发表于 2003-8-3 04:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想编写一个从主题词表中用DAO自动提起主题词通过提取主题词的程序,代码如下:
但是需要改进,主要是提取的主题词中有从属的词要剔除,请教各位高手。
Private Sub Command12_Click()
Dim I As Integer '利用mid函数提取比较词开始位置
Dim N As Integer 'mid函数提取比较词长度
Dim StrZTC As String '定义提取比较的主题词变量
Dim rs As DAO.Recordset '定义主题词表数据集
Dim Strtm  As String '定义题名变量
Dim StrKeyWord As String '定义主题词变量
Dim StrTmp As String '定义临时词变量,用于剔除重复的主题词
Strtm = Nz(Me.题名)
If IsNull(Strtm) = True Then Exit Sub
If Left(Strtm, 4) = "关于转发" Or Left(Strtm, 4) = "关于印发" Then
    Strtm = Right(Strtm, Len(Strtm) - 4)
End If
If Left(Strtm, 2) = "关于" Then
    Strtm = Right(Strtm, Len(Strtm) - 2)
End If
Set rs = CurrentDb.OpenRecordset("主题词表", dbOpenTable)
rs.Index = "非正式主题词"
For I = 1 To Len(Strtm)
    For N = 2 To Len(Strtm) - I + 1
        StrZTC = Mid(Strtm, I, N) '取出一个比较词
        rs.Seek "=", StrZTC
        If rs.NoMatch = False Then
            '下一个if语句意图剔除主题词集中的重复和笼统的主题词,但结果有误
            'If InStr(1, rs("主题词"), StrTmp) = 1 Then'对找到的两个主题词进行比较,如果新的主题词包含上一个主题词则为真
                'StrKeyWord = Left(StrKeyWord, Len(StrKeyWord) - InStrRev(StrKeyWord, ",") + 1)'剔除右边起有逗号","的部分
            'End If
            StrKeyWord = StrKeyWord & "," & rs("主题词")
            'StrTmp = StrZTC'保留当前主题词以便进行比较
        End If

    Next N
Next I
If StrKeyWord = "" Then
    Me.主题词 = ""
Else
    Me.主题词 = Right(StrKeyWord, Len(StrKeyWord) - 1)
End If
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2003-8-3 04:30:00 | 只看该作者

上传附件

上传附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 18:27 , Processed in 0.100313 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表