这是一小段代码,其中包含我所遇到的错误。开头的SQL语句是这样的
sqlStr = "SELECT Computer, Room_Num, Speed, Num_CPUs, OS_Type, HDD_Size
FROM Computers WHERE Num_CPUs = 1 OR Speed < 2.1 OR HDD_Size < 300 ORDER BY Room_Num"
Do Until objRecordSet.EOF
recordsStr = recordsStr & objRecordSet.Fields.Item("Computer").Value & _
vbTab & pad(objRecordSet.Fields.Item("HostName").Value,12) & _
vbTab & pad(objRecordSet.Fields.Item("Room_Num").Value,14) & _
vbTab & objRecordSet.Fields.Item("CPU_Type").Value & _
vbTab & objRecordSet.Fields.Item("Speed").Value & _
vbTab & objRecordSet.Fields.Item("Num_CPUs").Value & _
vbTab & objRecordSet.Fields.Item("Bit_Size").Value & _
vbTab & pad(objRecordSet.Fields.Item("OS_Type").Value,12) & _
vbTab & objRecordSet.Fields.Item("Memory").Value & _
vbTab & objRecordSet.Fields.Item("HDD_Size").Value & vbCrLf
objRecordSet.MoveNext
在第二行出现错误:
recordsStr = recordsStr & objRecordSet.Fields.Item("Computer").Value & _
错误是:
在集合中找不到与所请求名称或顺序相对应的项目。
好的,我以某种方式解决了这个错误,现在在我什至没有碰到的一行代码中得到了一个新的错误...
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open dataSource
Set objRecordSet = CreateObject("ADODB.Recordset")
objRecordSet.Open sqlStr , objConnection
objRecordSet.MoveFirst
在一行中出现错误
objRecordSet.Open sqlStr , objConnection
条件表达式中的数据类型不匹配
在您的查询中:
sqlStr = "SELECT Computer, Room_Num, Speed, Num_CPUs, OS_Type, HDD_Size
FROM Computers WHERE Num_CPUs = 1 OR Speed < 2.1 OR HDD_Size < 300 ORDER BY Room_Num"
您可以通过以下字段进行操作,computer, room_num, speed, num_cpus, os_type, and hdd_size
但是...在您的Do循环中,您尝试获取Computer, Hostname, Room_Num, Cpu_Type, Speed, Num_CPUs, Bit_Size, OS_Type, Memory, HDD_Size
请注意,此处Hostname, bit_size, and memory
没有出现在查询中。您无法从记录集中请求这些内容,因为它们不在您的记录集中,因为它们不在您的查询中。尝试:
sqlStr = "SELECT Computer, Room_Num, Speed, Num_CPUs, OS_Type, HDD_Size, Hostname, Bit_size, memory
FROM Computers WHERE Num_CPUs = 1 OR Speed < 2.1 OR HDD_Size < 300 ORDER BY Room_Num"
并假设您的computers
表中有这些表,它将开始工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句