想做书籍的英文简介切词做索引,但是程序一直报错,提示“FROM子句语法错误”
想问问大神们应该如何修改?或者可以采用其他的方法吗?Option Compare Database Sub fenci()
'创建connection实例并与当前数据库连接
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open CurrentProject.Connection Dim sql1 As String
Dim sql2 As String
sql1 = "SELECT bname, Edescription FROM BookInfo;"
sql2 = "SELECT keyword,nameindex FROM index;"
'rst代表书名+英文简介的记录集
'rstkey代表关键词+索引的记录集
Dim rst As ADODB.Recordset
Dim rstkey As ADODB.Recordset
Set rst = New ADODB.Recordset
Set rstkey = New ADODB.Recordset
rst.Open sql1, con, adOpenKeyset, adLockOptimistic
rstkey.Open sql2, con, adOpenKeyset, adLockOptimistic '这一行是报错行
'cnt1保存rst中记录的数目,cnt2保存rstkey中记录的数目
Dim cnt1 As Integer
Dim cnt2 As Integer
cnt1 = CInt(rst.RecordCount)
cnt2 = CInt(rstkey.RecordCount)
'MsgBox (cnt1)
'MsgBox (cnt2) '分词
For i = 0 To cnt
Dim words() As String
words = VBA.Split(rst!Edescription, " ")
For n = LBound(words) To UBound(words)
For m = 0 To cnt2
If rstkey!keyword(m) <> words(n) Then
rstkey.AddNew
rstkey.Fields(0) = words(n)
rstkey.Update
If rstkey!nameindex() <> rst!Edescription Then
rstkey.AddNew
rstkey.Fields(1) = rst!Edescription
rstkey.Update
Else
rstkey.MoveNext
End If
End If
Next
Next
rst.MoveNext
Next
End Sub
想问问大神们应该如何修改?或者可以采用其他的方法吗?Option Compare Database Sub fenci()
'创建connection实例并与当前数据库连接
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open CurrentProject.Connection Dim sql1 As String
Dim sql2 As String
sql1 = "SELECT bname, Edescription FROM BookInfo;"
sql2 = "SELECT keyword,nameindex FROM index;"
'rst代表书名+英文简介的记录集
'rstkey代表关键词+索引的记录集
Dim rst As ADODB.Recordset
Dim rstkey As ADODB.Recordset
Set rst = New ADODB.Recordset
Set rstkey = New ADODB.Recordset
rst.Open sql1, con, adOpenKeyset, adLockOptimistic
rstkey.Open sql2, con, adOpenKeyset, adLockOptimistic '这一行是报错行
'cnt1保存rst中记录的数目,cnt2保存rstkey中记录的数目
Dim cnt1 As Integer
Dim cnt2 As Integer
cnt1 = CInt(rst.RecordCount)
cnt2 = CInt(rstkey.RecordCount)
'MsgBox (cnt1)
'MsgBox (cnt2) '分词
For i = 0 To cnt
Dim words() As String
words = VBA.Split(rst!Edescription, " ")
For n = LBound(words) To UBound(words)
For m = 0 To cnt2
If rstkey!keyword(m) <> words(n) Then
rstkey.AddNew
rstkey.Fields(0) = words(n)
rstkey.Update
If rstkey!nameindex() <> rst!Edescription Then
rstkey.AddNew
rstkey.Fields(1) = rst!Edescription
rstkey.Update
Else
rstkey.MoveNext
End If
End If
Next
Next
rst.MoveNext
Next
End Sub
解决方案 »
- 有没有人做过5000系列示波器和PC的通信啊
- 请问我的这个串口通讯怎么会这问题啊!求教!
- 导出Excel,单元格格式设置为字符串。自动换行。可是有一奇怪问题,当字符串特别多的时候,在Excel里就显示成了"#######"
- MSFlexGrid 增加行问题?
- 为什么我这样写的查寻,VB会提示数据类型不匹配?谁能帮我看看哪里出了问题?
- 求助!!用vb如何获取某个文件夹下的所有某类型文件??如何获取某文件的属性??……
- 怎么关闭窗口?
- 如何判断某个数包含在数组中
- 请教一下,在程序里怎么调用浏览器并打开一个指定的网页(例如 http://www.csdn.net/expert/ )
- ADO统计查询
- 请问一下现在用vb编写代码还有人要吗?
- VB6 485通讯 读取32位元浮点数 如何表示正常数值
index 一般是 SQL 的保留字,最好不要用
如果真的用了,试试 sql2 = "SELECT keyword,nameindex FROM [index];"