现在数据库中有两张表
学生信息表
姓名 性别 年龄 所在班级号
张三 女 12 2
李四 男 13 2
马五 男 15 1
班级信息表
班级号 班级名 所在教室 班主任
1 大一 3203 李灭
2 大二 3201 区县
现在我想在屏幕上输出
姓名 性别 年龄 班级名 所在教室 班主任
怎么对两张表进行连接呢
学生信息表
姓名 性别 年龄 所在班级号
张三 女 12 2
李四 男 13 2
马五 男 15 1
班级信息表
班级号 班级名 所在教室 班主任
1 大一 3203 李灭
2 大二 3201 区县
现在我想在屏幕上输出
姓名 性别 年龄 班级名 所在教室 班主任
怎么对两张表进行连接呢
FROM 学生信息表 INNER JOIN 班级信息表 ON (班级信息表.班级号 = 学生信息表.所在班级号)
FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
用vb连接数据库时我有了下面的语句
cn.Open "provider=microsoft.jet.oledb.4.0;data source=E:\hai\vb及数据库练习\学生班级基本信息库.mdb;"
这样可以连接上数据库,可是如果我把程序从电脑拷入我的u盘则会出问题,问题是他找不到这个数据库这个问题该如何处理呢
E:\hai\vb及数据库练习\学生班级基本信息库.mdb 文件考到你程序目录下
用这个连接
cn.Open "provider=microsoft.jet.oledb.4.0;data source=" & app.path & "\学生班级基本信息库.mdb;"
别用绝对路径,这样发布给用户你还非要别人有E:不成?
应该改成相对路径,与当前程序路径为参照cn.Open "provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\学生班级基本信息库.mdb;"
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
Text1(i).Text = rsstudent.Fields(i)
SELECT 学生信息表.姓名, 学生信息表.性别,学生信息表.年龄, 班级信息表.班级名, 班级信息表.所在教室,班级信息表.班主任 FROM 学生信息表,班级信息表 where 班级信息表.班级号 = 学生信息表.所在班级号
For i = 3 To 4
Text1(i).Text = rsclass.Fields(i - 3)
Next i
rsclass.movenext
For i = 3 To 4
Text1(i).Text = rsclass.Fields(i - 3)
Next i
我的意思是数据库里有两张表
学生信息表
姓名 性别 年龄 所在班级号
张三 女 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
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