用ACCESS创建表,然后在VB窗体中有一个LISTBOX,这个LISTBOX的作用的就是显示数据表中的一个字段,比如表中的所有"用户名",然后单击一个记录,在旁边就显示这个记录的详细资料,求教代码? 谢谢!

解决方案 »

  1.   

    以下代码经过测试
    Option Explicit
    Private conn As ADODB.Connection
    Private rs As ADODB.RecordsetPrivate Sub Form_Load()
    Dim apppath As String
    Dim DbFileName As String
    Dim ConnectString As String
    Dim i As Integer
    Set conn = New ADODB.Connection
    If Right(App.Path, 1) = "\" Then
                    apppath = App.Path
            Else
                    apppath = App.Path & "\"
    End If
    DbFileName = apppath & "test.mdb"
    ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                    DbFileName & ";Persist Security Info=False;"
                    
                    On Error Resume Next
                    With conn
                            .CursorLocation = adUseClient
                            
                            .Open ConnectString
                    End With
                    Set rs = New ADODB.Recordset
    rs.Open "select 用户编号,用户名称 from 用户表", conn, 1, 3
    If rs.EOF Then
    Exit Sub
    End IfFor i = 0 To rs.RecordCount - 1
    List1.AddItem rs.Fields("用户名称")
    List1.ItemData(i) = rs.Fields("用户编号")
    rs.MoveNext
    NextEnd SubPrivate Sub List1_Click()
    Dim strsql As String
    strsql = "select 备注 from 用户表 where 用户编号=" & List1.ItemData(List1.ListIndex)
    Set rs = New ADODB.Recordset
    rs.Open strsql, conn, 1, 3
    Text1.Text = rs.Fields("备注")
    End Sub放listbox,text控件
    表:用户表
    字段:用户编号 int 自动编号
         用户名称 文本
         备注   文本
      

  2.   

    有一点补充.LISTBOX和数据库没有任何联系,你只要把数据库里想要的东东取出来,然后放在LISTBOX里就OK了.
      

  3.   

    如果要显示这条纪录的详细资料,可以添加一个mshflexgrid控件,然后
    Private Sub List1_Click()
      Dim strsql As String
      strsql = "select * from 用户表 where 用户编号=" & List1.ItemData  (List1.ListIndex)
      Set rs = New ADODB.Recordset
      rs.Open strsql, conn, 1, 3
      set mshflexgrid1.datasource=rs
      rs.close
    End Sub