请大家帮我看看下面的代码有什么问题,我建立的这个方程在窗体中引用时居然说tblForeThreeMonthsH变量未定义,但他是我的数据库中的一张表啊?
这是我第一次编写程序,请各位帮我分析以下,我实在不知道是什么问题。谢谢了
Option ExplicitPublic conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connStr As StringPublic Function ForeH(Name As String, VClass As String, Age As String) As Double
connStr = "Provider = Microsoft.Jet.OLEDB.3.51;" & _
"data source= E:\ying\Program\VB\vb练习\内照射\Nuclide.mdb"
conn.Open connStr
rs.CursorLocation = adUseServer
Select Case Age
Case "0-12个月"
rs.Open tblForeThreeMonthsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "1-2岁"
rs.Open tblForeOneYearH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "2-7岁"
rs.Open tblForeFiveYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "7-12岁"
rs.Open tblTenYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "12-17岁"
rs.Open tblForeFifteenYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case Else
rs.Open tblForeAdultH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
End Select
End Function
这是我第一次编写程序,请各位帮我分析以下,我实在不知道是什么问题。谢谢了
Option ExplicitPublic conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connStr As StringPublic Function ForeH(Name As String, VClass As String, Age As String) As Double
connStr = "Provider = Microsoft.Jet.OLEDB.3.51;" & _
"data source= E:\ying\Program\VB\vb练习\内照射\Nuclide.mdb"
conn.Open connStr
rs.CursorLocation = adUseServer
Select Case Age
Case "0-12个月"
rs.Open tblForeThreeMonthsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "1-2岁"
rs.Open tblForeOneYearH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "2-7岁"
rs.Open tblForeFiveYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "7-12岁"
rs.Open tblTenYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case "12-17岁"
rs.Open tblForeFifteenYearsH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
Case Else
rs.Open tblForeAdultH, conn, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
rs.Find "NuclideName='" & Name & "'"
ForeH = rs.Fields(VClass)
End Select
End Function
Rs.Open "select * from tblForeThreeMonthsH", conn, adOpenDynamic, adLockOptimistic
Dim Rs As New ADODB.Recordset CN.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False" CN.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic Set MSHFlexGrid1.DataSource = Rs
Public rs As New ADODB.Recordset
Public connStr As Stringdim tblForeFiveYearsH as stringPublic Function ForeH(Name As String, VClass As String, Age As String) As Double
connStr = "Provider = Microsoft.Jet.OLEDB.3.51;" & _
"data source= E:\ying\Program\VB\vb练习\内照射\Nuclide.mdb"
conn.Open connStr
rs.CursorLocation = adUseServer
'加上下面三句
tblForeFiveYearsH=" select * from 你的表名 "
if rs.state=adstateopen then rs.close
rs.open tblForeFiveYearsH,conn,adopenkeyset,adlockreadonly
Select Case Age
conn.Open connStr这一句有问题
默认的打开方式是adcmdtext,即是string完整的查询语句
在后面加一个adcmdtable就行了!!在ADODC中有,你仔细看看!!
我在窗体中还使用了一个adodc控件,我想会不会是我没有断开控件与数据库的连接,然后又用ADO对象去打开他的缘故?会存在这种情况吗?