下列说法正确的是( )
Dim conn As New ADODB.Connection
Di mrs As New ADODB.Recordset
conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=” & App.Path & “\词库.accdb”
conn.Open
Set rs.Active Connection=conn
rs.Open “SELECT*FROM words”
n=0
Do While Not rs.EOF
n=n+1
en(n) =rs.Fields(1)
ch(n) =rs.Fields(2)
rs.MoveNext
Loop
rs.Close
conn.Close
下列说法中正确的是( )
①连接的数据库文件名是“\词库.accdb”
②程序运行后,变量n的值表示该数据表中记录的总数
③数组en(n)所存储的是数据表第2个字段的字段值
④“ConnectionString”是conn对象的属性值
⑤查询的数据表名称是“words”
⑥省略语句“rs.MoveNext”,程序也可以正常运行
序号 | 书名 | 作者 | 售价 | 数量 |
1 | 水浒传 | 施耐庵 | 20.4 | 10 |
2 | 西游记 | 吴承恩 | 18.2 | 15 |
3 | 红楼梦 | 曹雪芹 | 25.6 | 20 |
4 | 三国演义 | 罗贯中 | 23.8 | 18 |
当前记录是第2条,要用Fields集合返回第3个字段的信息,正确的表示是( )
下列说法正确的是( )
编码 | 书名 | 作者 | 销售数量 | 销售日期 | 价格 |
A | 《量子力学》 | *** | 16 | 2021/5/1 | 25.5 |
B | 《人工智能》 | *** | 16 | 2021/5/1 | 36.5 |
... | ... | ... | ... | ... | ... |
A | 《量子力学》 | *** | 2 | 2021/5/1 | 25.5 |
下列关于“销售清单”数据表的描述,错误的是( )
例如:
分析:如果词典中的单词数量比较少,我们可以采取将第i个单词与第j个单词拼接成“新单词”并在字典中查找,但如果词典中单词数量多(如12000个)此种方法速度慢,我们发现词典中的单词是有序排列,可以加快查找复合单词的速度,本题的算法策略是:对第i个单词,从第j(j=i+1)个开始判断,如果第j个单词前半部分(长度为第i个单词的长度)跟第i个单词一致,则在词典中查找第j个单词的后半部分。如果找到,则为一个复合单词。
编写vb程序,寻找词典中所有复合单词并输出显示。运行程序,在列表框list1中显示从词典数据库中导入的单词,单击“统计”按钮command1,在列表框list2中按降序显示该词典中所有复合单词。程序运行界面如图所示。
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim n As Integer
Dim a(1 To 200) As String
Function search(key As String) As Boolean
i = 1: j = n
Do While i <= j
m = Int(i + (j - i) / 2)
If key = a(m) Then
search = True: Exit Do
ElseIf key > a(m) Then
i = m + 1
Else
j = m - 1
End If
Loop
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer, temp2 As String
Dim out(0 To 100)
For i = 1 To n
For j = i + 1 To n
If a(i) = Mid(a(j), 1, Len(a(i))) Then
If search(temp2) = True Then
cnt = cnt + 1
k = cnt
Do While a(j) > out(k) And k > 0 '找到a(j)应该插入的位置k
k = k - 1
Loop
For p = cnt To k + 1 Step -1 'k到末尾元素均后移一位
out(p) = out(p - 1)
Next p
End If
End If
Next j
Next i
For i = 1 To cnt
List2.AddItem out(i)
Next i
End Sub
Private Sub Form_Load()
Dim i As Integer
连接字典数据库
打开数据库中字典数据表,代码略
n = 0
Do While Not rs.EOF
n = n + 1
a(n) = rs/Fields("words")
rs/MoveNext
Loop
关闭数据连接,代码略
List1.Clear
For i = 1 To n
List1.AddItem a(i) '在列表框List1中显示单词
Next i
End Sub