SQL Server数据库中建了一个表,包括字段Id,Name,UpperId。在VB中使用了ListBox控件,想查询表中UpperId=0的记录,把相应记录的Name字段的内容在ListBox显示,请问该怎么作?拜托拜托!

解决方案 »

  1.   

    你试试把,'窗体代码,记得引用ado
    Dim rs As ADODB.Recordset
    Dim msgtext As String
    Private Sub Command1_Click()
      dim strsql as string
      strsql="select * from table where UpperId=0"
      do while not rs.eof
         list1.additem rs.fields("Name")
         rs.movenext
      loop
      rs.close
    End Sub'下面的代码放到类模块中,是动态数据库查询数据函数
    Dim msgtext As String
    Dim mrc As ADODB.RecordsetPublic 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