|
我另存为03版本,你试试,要不你自己复制代码写进去
- Function 去掉重复字节(内容, 字节)
- Dim 正则对象 As Object
- Dim 匹配值集合 As Object, 匹配值 As Object
- Set 正则对象 = CreateObject("VBSCRIPT.REGEXP")
- With 正则对象
- .Global = True
- .MultiLine = True
- .IgnoreCase = True
- .Pattern = 字节 & "+"
- 去掉重复字节 = .Replace(内容, 字节)
- End With
- End Function
- Function 查询语句开头()
- With Sheets("数据存储")
- For A = 1 To 12
- If A = 1 Then
- 查询语句开头 = .Cells(1, A).Value
- Else
- 查询语句开头 = 查询语句开头 & "," & .Cells(1, A).Value
- End If
- Next A
- 查询语句开头 = "Select " & 查询语句开头 & " from [数据存储$] where "
- End With
- End Function
- Function 成语查询语句条件()
- With Sheets("查询条件")
- 包含内容 = .Cells(3, "B").Value
- If 包含内容 = "" Then
- 包含内容 = "%"
- Else
- 包含内容 = "%" & 包含内容 & "%"
- End If
- 包含某一个字 = .Cells(4, "B").Value
- If 包含某一个字 = "" Then
- 包含某一个字 = "%"
- Else
- 包含某一个字 = "%[" & 包含某一个字 & "]%"
- End If
- 从首字开始 = .Cells(5, "B").Value
- If 从首字开始 = "" Then
- 从首字开始 = "%"
- Else
- 从首字开始 = 从首字开始 & "%"
- End If
- 从尾字开始 = .Cells(6, "B").Value
- If 从尾字开始 = "" Then
- 从尾字开始 = "%"
- Else
- 从尾字开始 = "%" & 从尾字开始
- End If
- 成语查询语句条件 = "成语 like '" & 去掉重复字节(从首字开始 & 包含内容 & 包含某一个字 & 从尾字开始, "%") & "'"
- End With
- End Function
- Function 四字结构查询语句条件()
- With Sheets("查询条件")
- 位置1 = .Cells(3, "F").Value
- If 位置1 = "" Then 位置1 = "_"
-
- 位置2 = .Cells(4, "F").Value
- If 位置2 = "" Then 位置2 = "_"
-
- 位置3 = .Cells(5, "F").Value
- If 位置3 = "" Then 位置3 = "_"
-
- 位置4 = .Cells(6, "F").Value
- If 位置4 = "" Then 位置4 = "_"
-
- 内容合并 = 位置1 & 位置2 & 位置3 & 位置4
-
- 四字结构查询语句条件 = " AND 四字结构 like '" & 内容合并 & "'"
- If 内容合并 = "____" Then 四字结构查询语句条件 = ""
- End With
- End Function
- Sub 成语查询()
- Set Conn = CreateObject("ADODB.Connection") '后期绑定
- Set Rst = CreateObject("ADODB.Recordset")
- Path = ThisWorkbook.FullName
- If Application.Version * 1 <= 11 Then '03版以后 Ace的区别
- strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & Path
- Else
- strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Path & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
- End If
- Conn.Open strConn '打开数据库链接
- StrSQL = 查询语句开头 & 成语查询语句条件 & 四字结构查询语句条件
- Set Rst = Conn.Execute(StrSQL)
- Application.ScreenUpdating = False
- With Sheets("查询结果")
- .Cells.Clear
- For i = 0 To Rst.Fields.Count - 1 '填写标题
- .Cells(1, i + 1) = Rst.Fields(i).Name
- Next i
- .Range("A2").CopyFromRecordset Rst
- '.Cells.EntireColumn.AutoFit '自动调整列宽
- '.Cells.EntireColumn.AutoFit '自动调整列宽
- End With
- Application.ScreenUpdating = True
- Rst.Close '关闭数据库连接
- Conn.Close
- Set Conn = Nothing
- Set Rst = Nothing
- Sheets("查询结果").Select
- End Sub
复制代码
|
评分
-
2
查看全部评分
-
|