想做书籍的英文简介切词做索引,但是程序一直报错,提示“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
index 一般是 SQL 的保留字,最好不要用
如果真的用了,试试 sql2 = "SELECT keyword,nameindex FROM [index];"