VBA+SQLserver 逐个比较数组元素与数据库元素,如果符合条件,则替换

3 篇文章 0 订阅
2 篇文章 0 订阅

表A
ID 列1(替换后的同义词) 列2(替换前的同义词)
1 同义词1 同义词2 同义词3 同义词4……

以下为笔者使用的同义词词库所用的相关代码, 其能够实现以下功能:
在表A中逐个查询数组元素,如果在列2中查到相应数据(同义词2~N),则将其替换为列1中的同义词1。

注:下述代码中,已在先将数组变量name_part(0 to 999)声明为公共数组变量,并已经对其赋值,直接粘贴下述代码会导致程序无法使用。

代码如下:

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim CnStr As String
Dim SQL As String

Dim i, j As Integer
Dim temp_part,part_output As String
StartTime = Timer

CnStr = "Provider=SQLOLEDB;server=服务器名;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名"
cnn.Open CnStr

i = 1
j = 1
Do
SQL = "select 列名 from 表明 where 同义词 like '%" & name_part(i) & "%'"
Set rs = cnn.Execute(SQL)
    If rs.EOF Then  '如果不存在,则继续查询下一条
    i = i + 1
            If name_part(i)="" Then  '此处自行修改为相应的退出条件
                Exit Do
            End If
    Else
    temp_part = rs.Fields(0).Value  
    name_part(i) = temp_part   '如果存在,则将相应的数组元素替换为第一条查询结果
    i = i + 1
            If name_part(i)="" Then  '此处自行修改为相应的退出条件
                Exit Do
            End If
    End If
Loop

rs.Close
Set rs = Nothing
Set cnn = Nothing
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值