请大家帮我看看下面的代码有什么问题,我建立的这个方程在窗体中引用时居然说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

解决方案 »

  1.   


    Rs.Open "select * from tblForeThreeMonthsH", conn, adOpenDynamic, adLockOptimistic
      

  2.   

    rs.Open tblForeThreeMonthsH, conn, adOpenForwardOnly, adLockReadOnly,adcmdtable试试看.
      

  3.   

    rs.Open "tblForeThreeMonthsH", conn, adOpenForwardOnly, adLockReadOnly,adcmdtable
      

  4.   

    Dim CN   As New ADODB.Connection                '定义数据库的连接存放数据和代码
        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
      

  5.   

    Public conn As New ADODB.Connection
    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
      

  6.   

    我用select 语句后,前一个问题解决了,但是又说我的数据库连接不上
    conn.Open connStr这一句有问题
      

  7.   

    里面的fields 方法也说有问题?怎么回事?请大家帮帮我,我真的很着急。
      

  8.   

    rs.Open tblForeThreeMonthsH, conn, adOpenForwardOnly, adLockReadOnly
                
    默认的打开方式是adcmdtext,即是string完整的查询语句
    在后面加一个adcmdtable就行了!!在ADODC中有,你仔细看看!!
      

  9.   

    再请问一下,关闭adodc控件与数据库的连接用的是什么语句?
    我在窗体中还使用了一个adodc控件,我想会不会是我没有断开控件与数据库的连接,然后又用ADO对象去打开他的缘故?会存在这种情况吗?
      

  10.   

    datacombo控件是否一定要与adodc控件一起才能用呢?可不可以用ADODB对象做他的数据源呢?应该怎样操作呢?
      

  11.   

    rs.Open "select * from tblForeThreeMonthsH", conn, adOpenForwardOnly, adLockReadOnly
      

  12.   

    如果我使用的是ADO对象,可不可以连接到约束控件?