怎么在一个MDB内同时获取两个表的数据
如何在一个MDB内同时获取两个表的数据
数据库内有两个表,Student 和 Class 。
根据输入在Student 表内查找idno字段。
获取该记录的 classno之后再从Class 表获取对应记录的相关数据
但是运行到红色语句时错误424.OpenConn位于模块中
Private Sub LoadData()
Call OpenConn
rs.Open "Select * from Student where idno='" & Text1.Text & "'", cn
If rs.RecordCount > 0 Then
mdbid = rs("id")
Text2.Text = rs("name")
ros.Open "Select * from Class where cno='" & rs("classno") & "'", cn
Text3.Text = ros("cadmin")
Text4.Text = rs("inschool") & ros("cpro") & ros("clevel")
Text5.Text = rs("stunos")
Text6.Text = rs("stunol")
Text7.Text = rs("idno")
ros.Close
Else
MsgBox "ûÓмǼ£¡"
End If
Call CloseConn
End Sub
Public Sub OpenConn()
Set WSH = CreateObject("WScript.Shell")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection
Set ros = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & WSH.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Dstudio\Stumdb") & ";Persist Security Info=False;"
con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & WSH.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Dstudio\Stumdb") & ";Persist Security Info=False;"
End Sub
------解决方案--------------------
select * from student a,class b where a.idno='"& Test1.text &"' and a.classno=b.cno
If rs.RecordCount > 0 Then
mdbid = rs("id")
Text2.Text = rs("name")
Text3.Text = rs("cadmin")
Text4.Text = rs("inschool") & rs("cpro") & rs("clevel")
Text5.Text = rs("stunos")
Text6.Text = rs("stunol")
Text7.Text = rs("idno")
Else
MsgBox "ûÓмǼ£¡"
End If
------解决方案--------------------
sql改成一句:
select a.* from class as a left join student as b on a.classno=b.classno where b.idno='xxx'
xxx是你输入值
------解决方案--------------------
dim ros as ADODB.Recordset这样的定义没有吗
数据库内有两个表,Student 和 Class 。
根据输入在Student 表内查找idno字段。
获取该记录的 classno之后再从Class 表获取对应记录的相关数据
但是运行到红色语句时错误424.OpenConn位于模块中
Private Sub LoadData()
Call OpenConn
rs.Open "Select * from Student where idno='" & Text1.Text & "'", cn
If rs.RecordCount > 0 Then
mdbid = rs("id")
Text2.Text = rs("name")
ros.Open "Select * from Class where cno='" & rs("classno") & "'", cn
Text3.Text = ros("cadmin")
Text4.Text = rs("inschool") & ros("cpro") & ros("clevel")
Text5.Text = rs("stunos")
Text6.Text = rs("stunol")
Text7.Text = rs("idno")
ros.Close
Else
MsgBox "ûÓмǼ£¡"
End If
Call CloseConn
End Sub
Public Sub OpenConn()
Set WSH = CreateObject("WScript.Shell")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection
Set ros = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & WSH.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Dstudio\Stumdb") & ";Persist Security Info=False;"
con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & WSH.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Dstudio\Stumdb") & ";Persist Security Info=False;"
End Sub
------解决方案--------------------
select * from student a,class b where a.idno='"& Test1.text &"' and a.classno=b.cno
If rs.RecordCount > 0 Then
mdbid = rs("id")
Text2.Text = rs("name")
Text3.Text = rs("cadmin")
Text4.Text = rs("inschool") & rs("cpro") & rs("clevel")
Text5.Text = rs("stunos")
Text6.Text = rs("stunol")
Text7.Text = rs("idno")
Else
MsgBox "ûÓмǼ£¡"
End If
------解决方案--------------------
sql改成一句:
select a.* from class as a left join student as b on a.classno=b.classno where b.idno='xxx'
xxx是你输入值
------解决方案--------------------
dim ros as ADODB.Recordset这样的定义没有吗