请大家进来帮忙,看一看这个错误“无效的属性值”怎么样解决
错误在这句中itmX.SubItems(1) = Format(CStr(Rs!C_name), "") 提示是无效的属性值。 Dim cn As New ADODB.Connection, Rs As New ADODB.Recordset
cn.ConnectionString = "Provider=MSDASQL.1;DRIVER={adaptive server anywhere 8.0};Persist Security Info=False;DSN=ascnew_2_server; SRVR=ascnew8947;DB=" & db & ";UID=dba;PWD=nokia&shangsi&asc"
cn.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from T_AX_Corp_Info", cn, 3, 1
While Not Rs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(Rs!c_code))
If Not IsNull(Rs!c_code) Then
itmX.SubItems(1) = Format(CStr(Rs!C_name), "") '第一种 'itmX.SubItems(1) = CStr(Rs!C_name) 第二种 'itmX.SubItems(1) = Rs!C_name 第三种 End If
Rs.MoveNext '移动到下一条记录。
Wend
Set Rs = Nothing
Set cn = Nothing
错误在这句中itmX.SubItems(1) = Format(CStr(Rs!C_name), "") 提示是无效的属性值。 Dim cn As New ADODB.Connection, Rs As New ADODB.Recordset
cn.ConnectionString = "Provider=MSDASQL.1;DRIVER={adaptive server anywhere 8.0};Persist Security Info=False;DSN=ascnew_2_server; SRVR=ascnew8947;DB=" & db & ";UID=dba;PWD=nokia&shangsi&asc"
cn.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from T_AX_Corp_Info", cn, 3, 1
While Not Rs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(Rs!c_code))
If Not IsNull(Rs!c_code) Then
itmX.SubItems(1) = Format(CStr(Rs!C_name), "") '第一种 'itmX.SubItems(1) = CStr(Rs!C_name) 第二种 'itmX.SubItems(1) = Rs!C_name 第三种 End If
Rs.MoveNext '移动到下一条记录。
Wend
Set Rs = Nothing
Set cn = Nothing
因为我在看别人代码中这样写。在他的测试中可以显示正常,就改成他那个样子。但是感觉没有实质意义。
他的代码
Do Until Rsbdata.EOF 'x < 100
'Do while Rsbdata.EOF
'建立行头先
ListView1.ListItems.Add , , Rsbdata.Fields(0)
'DoEvents
'每一次循环得到的数据
For i = 1 To Rsbdata.Fields.Count - 1
ListView1.ListItems(Rsbdata.AbsolutePosition).SubItems(i) = Format(Rsbdata.Fields(i).Value, "")
Next i
Rsbdata.MoveNext
'x = x + 1
Loop
'MsgBox "数据处理完毕!", 64
Rsbdata.Close '关闭记录集
'--------------------------------------
Exit Sub
format后就类似于cstr,所以cstr多余...
可靠的方法:
s=Rs!C_name & vbnullstring
Dim cn As New ADODB.Connection, Rs As New ADODB.Recordset
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add 1, , ""'注您要显示多少列就有多少个
ListView1.ColumnHeaders.Add 1, , ""
ListView1.ColumnHeaders.Add 1, , ""
cn.ConnectionString = "Provider=MSDASQL.1;DRIVER={adaptive server anywhere 8.0};Persist Security Info=False;DSN=ascnew_2_server; SRVR=ascnew8947;DB=" & db & ";UID=dba;PWD=nokia&shangsi&asc"
cn.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from T_AX_Corp_Info", cn, 3, 1
While Not Rs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(Rs!c_code))
If Not IsNull(Rs!c_code) Then
itmX.SubItems(1) = Format(CStr(Rs!C_name), "") '第一种 'itmX.SubItems(1) = CStr(Rs!C_name) 第二种 'itmX.SubItems(1) = Rs!C_name 第三种 End If
Rs.MoveNext '移动到下一条记录。
Wend
Set Rs = Nothing
Set cn = Nothing
Dim itmx As ListItem
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add 1, , ""'注您要显示多少列就有多少个
ListView1.ColumnHeaders.Add 1, , ""
ListView1.ColumnHeaders.Add 1, , ""
cn.ConnectionString = "Provider=MSDASQL.1;DRIVER={adaptive server anywhere 8.0};Persist Security Info=False;DSN=ascnew_2_server; SRVR=ascnew8947;DB=" & db & ";UID=dba;PWD=nokia&shangsi&asc"
cn.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from T_AX_Corp_Info", cn, 3, 1
While Not Rs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(Rs!c_code))
If Not IsNull(Rs!c_code) Then
itmX.SubItems(1) = Format(CStr(Rs!C_name), "") '第一种 'itmX.SubItems(1) = CStr(Rs!C_name) 第二种 'itmX.SubItems(1) = Rs!C_name 第三种 End If
Rs.MoveNext '移动到下一条记录。
Wend
Set Rs = Nothing
Set cn = Nothing
if not IsNull(Rs!C_name) then itmX.SubItems(1) = Rs!C_name
原来我少定义了
ListView1.ColumnHeaders.Add 1, , ""
看到才想起来,没有定义。
不过也学到东西了。不白问。
感谢大家的关系