现在数据库中有两张表
学生信息表
姓名    性别    年龄   所在班级号
张三    女      12      2
李四    男      13      2
马五    男      15      1
班级信息表
班级号   班级名    所在教室    班主任
1         大一      3203        李灭
2         大二      3201        区县
现在我想在屏幕上输出
姓名    性别    年龄    班级名   所在教室   班主任
怎么对两张表进行连接呢

解决方案 »

  1.   

    SELECT 学生信息表.姓名, 学生信息表.性别, 学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室, 班级信息表.班主任
    FROM 学生信息表 INNER JOIN 班级信息表 ON (班级信息表.班级号 = 学生信息表.所在班级号)
      

  2.   

    SELECT 学生信息表.姓名, 学生信息表.性别, 学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室, 班级信息表.班主任
    FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
      

  3.   

    还有个问题
    用vb连接数据库时我有了下面的语句
    cn.Open "provider=microsoft.jet.oledb.4.0;data source=E:\hai\vb及数据库练习\学生班级基本信息库.mdb;"
    这样可以连接上数据库,可是如果我把程序从电脑拷入我的u盘则会出问题,问题是他找不到这个数据库这个问题该如何处理呢
      

  4.   

    你的路径是绝对路径了。要用相对路径
    E:\hai\vb及数据库练习\学生班级基本信息库.mdb 文件考到你程序目录下
    用这个连接
    cn.Open "provider=microsoft.jet.oledb.4.0;data source=" & app.path & "\学生班级基本信息库.mdb;"
      

  5.   

    ....
    别用绝对路径,这样发布给用户你还非要别人有E:不成?
    应该改成相对路径,与当前程序路径为参照cn.Open "provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\学生班级基本信息库.mdb;"
      

  6.   

    还有点问题我用下面的语句选择出了我要的数据怎么将他传递给界面上的text控件呢
    SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
    Dim cn As New ADODB.Connection
    Dim rsstudent As New ADODB.Recordset
    Dim rsclass As New ADODB.RecordsetPrivate Sub Command1_Click()
    If Not rsstudent.EOF Then
       rsstudent.MoveNext
    Else:
       rsstudent.MoveFirst
    End If
    For i = 0 To 2
    Text1(i).Text = rsstudent.Fields(i)
    Next i
    SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
    For i = 3 To 4
    Text1(i).Text = rsclass.Fields(i - 3)
    Next i
    End Sub
      

  7.   

    还有点问题我用下面的语句选择出了我要的数据怎么将他传递给界面上的text控件呢你这个不就是赋给text吗!
    Text1(i).Text = rsstudent.Fields(i)
      

  8.   

    下面这句话好像不对  Text1(i).Text = rsclass.Fields(i - 3)的值不对 
    SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
    For i = 3 To 4
    Text1(i).Text = rsclass.Fields(i - 3)
    Next i
      

  9.   

    你的意思是要显示下一条了吧。
    rsclass.movenext
    For i = 3 To 4
        Text1(i).Text = rsclass.Fields(i - 3)
    Next i
      

  10.   

    下面这段程序怎么执行分不出来呢
    我的意思是数据库里有两张表
    学生信息表
    姓名    性别    年龄   所在班级号
    张三    女      12      2
    李四    男      13      2
    马五    男      15      1
    班级信息表
    班级号   班级名    所在教室    班主任
    1         大一      3203        李灭
    2         大二      3201        区县
    现在我想当我点一下按钮就在屏幕上输出对应的下面的信息
    姓名    性别    年龄    班级名   所在教室   班主任
    可是下面的程序出错了,由于我是菜鸟实在不知道怎么办了只好来求救各位高手了帮我改改吧谢谢Dim cn As New ADODB.Connection
    Dim rsstudent As New ADODB.Recordset
    Dim rsclass As New ADODB.Recordset
    Private Sub Command1_Click()
    If Not rsstudent.EOF Then
       rsstudent.MoveNext
    Else
       rsstudent.MovePrevious
    End If
    For i = 0 To 2
    Text1(i).Text = rsstudent.Fields(i)
    Next i
    rsclass.Open "SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号", cn, 1, 3
    For i = 0 To 4
    Text1(i).Text = rsclass.Fields(i - 3)
    Next i
    rsclass.MoveNext
    End Sub
      

  11.   

    哪里出错了呢?
    Dim cn As New ADODB.Connection
    Dim rsstudent As New ADODB.Recordset
    Dim rsclass As New ADODB.RecordsetPrivate Sub Command1_Click()
    If Not rsstudent.EOF Then
       rsstudent.MoveNext
    Else:
       rsstudent.MoveFirst
    End If
    For i = 0 To 2
    Text1(i).Text = rsstudent.Fields(i)
    Next i
    rsclass.Open "SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号", cn, 1, 3
    For i = 3 To 4
    Text1(i).Text = rsclass.Fields(i - 3)
    Next i
    End SubPrivate Sub Command2_Click()
    For i = BOF To EOF
    If Text1(3).Text! = rsclass.Fields(0) Then
       rsclass.AddNew
    End If
    Next i
    rsclass.UpdateFor i = BOF To EOF
    If Text1(0).Text! = rsstudent.Fields(0) Then
       rsstudent.AddNew
    End If
    Next i
    rsstudent.Update
    End SubPrivate Sub Command3_Click()
    If rsstudent.RecordCount > 0 Then
       rsstudent.Delete.adAffectCurrent
       rsstudent.Update
    End If
    For i = 0 To 4
     Text1(i).Text = " "
    Next i
    Else: MsgBox "数据库已空"
    End Sub
     
       Private Sub Form_Load()
    Set cn = New ADODB.Connection
    cn.Open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\学生班级基本信息库.mdb;"
    rsstudent.Open "select * from 学生信息表", cn, 1, 3
    rsclass.Open "select * from 班级信息表 ", cn, 1, 3
    displaystudent
    End Sub
    Public Sub displaystudent()
    If rsstudent.RecordCount > 0 Then
       For i = 0 To 2
       Text1(i).Text = rsstudent.Fields(i)
       Next i
    End If
    If rsclass.RecordCount > 0 Then
       For i = 3 To 4
       Text1(i).Text = rsclass.Fields(i - 3)
       Next i
       End If
    End Sub