就是定义了一个结构体
TYPE GUEST
   strname as string*100
   strtitle as string*100
  strroomno as string*8
end type在面板上有一个strroomno.TEXT框,和一个LISTBOX框,思想是想在strroomno.TEXT框内显示房间号,在LISTBOX框内出现人名,可以有好几个人名,但现在的情况是在strroomno.TEXT框内显示房间号后,LISTBOX框内不出现人名,只有LISTBOM,点击出现下标越界

解决方案 »

  1.   

    你的数据库中的记录是不是这样的
       房间号  人名
         01     张三
         01     李四
         01     王五
    你可以这样做
    Private Sub Command1_Click()
       strsql = "select 人名 from table where 房间号='01'"
       set rs=executesql(strsql,text)
       do while not rs.eof
          list1.additem rs.fields("人名")
          rs.movenext
       loop
    end subPublic Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset
        Dim cnn As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim sTokens() As String
        'Dim SQL As String
        On Error GoTo ExecuteSQL_Error
        sTokens = Split(sql)
        Set cnn = New ADODB.Connection
        cnn.Open ConnectString
        If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
           cnn.Execute sql
           MsgString = sTokens(0) & "query successful"
        Else
           Set rst = New ADODB.Recordset
           rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
          
           
           Set ExecuteSQL = rst
            
           MsgString = "查询到" & rst.RecordCount & "条纪录"
        End If
    ExecuteSQL_Exit:
        Set rst = Nothing
        Exit Function
        Set cnn = Nothing
    ExecuteSQL_Error:
        MsgString = "查询错误:" & Err.Description
        Resume ExecuteSQL_Exit
    End FunctionPublic Function ConnectString() As String
        ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
        'ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=RJB-CL"
    End Function
      

  2.   

    如果是查询不出人名,建议检查SQL语句如果是本身那个房间没有人名,建议LISTBOX_CLICK时加if LISTBOX.listcount<1 then exit sub