有两个窗体,A和B。A中填写内容(我设定的全局变量),然后点“确定”,我想让这个变量传递到B中,同时查询出的结果在B中显示出来。
请问我该怎么写代码,如果有类似的代码可以帖出来让我看看好吗,我现在是边学边做程序。
对了,我是照VB书修改的,其中B中只有label和textbox两种控件,我直接把下面代码加在form_load()内的:    Dim txtSQL As String
    Dim mrc As ADODB.Recordset
    Dim MsgText As String
    txtSQL = "select * from .......(我能确定sql语法没错)
    Set mrc = ExecuteSQL(txtSQL, MsgText)测试时总提示“编译错误,未找到方法或数据源成员”,调试时在后一个MsgText停住。查询的字段中有char和text两种类型,我不知道是不是定义时有问题啊?那我先谢谢各位了啊!

解决方案 »

  1.   

    函数  ExecuteSQL 没定义吧
      

  2.   

    ExecuteSQL怎么声明,内容是什么。问题出在这个函数
      

  3.   

    啊,函数ExecuteSQL我是在模块里定义的啊,在这之前的用户登录时都是正常的。我是拷贝的代码,然后自己修改的,所以我就是不知道哪里错了。有哪位可以大概写点相关代码给我看看可以吗?谢谢咯!^_^
      

  4.   

    自己不肯给出 ExecuteSQL 的代码,叫人怎么帮你? ExecuteSQL 函数真的就那么宝贵?
      

  5.   

    哎,我是照搬的VB数据库开发书上的代码,我想各位都肯定看过类似的书,代码都差不多,所以就没帖。Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ODB.Recordset   Dim cnn As ADODB.Connection
       Dim rst As ADODB.Recordset
       Dim sTokens() As String   On Error GoTo ExecuteSQL_Error
       sTokens = Split(SQL)   Set cnn = New ADODB.Connection
       cnn.Open ConnectString
       If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
          cnn.Execute SQL
          MsgString = sTokens(0) & " query successful"
       Else
          Set rst = New ADODB.Recordset
          rst.Open Trim$(SQL), cnn,adOpenKeyset,adLockOptimistic
          Set ExecuteSQL = rst
          MsgString = "查询到" & rst.RecordCount & 条记录 "
       End IfExecuteSQL_Exit:
       Set rst = Nothing
       Set cnn = Nothing
       Exit FunctionExecuteSQL_Error:
       MsgString = "查询错误: " & Err.Description
       Resume ExecuteSQL_ExitEnd Function不知道哪里出了问题,请大家帮忙看看,如果还有什么要我帖的麻烦告诉我,现在在线等......谢谢!
      

  6.   

    还有,请问这样的条件下,VB代码如何编写:使用ComboBox内的数据做为变量在SQL中查询,
    如txtSQL= "select * from stu where grade like '% & ComboBox.(?) & %' ",我想问的是在&&之间该写什么代码?我在ComboBox内的内容是这样的:
    Private Sub ComboBox_Change(Index As Integer)
            ComboBox.Item = "大一"
            ComboBox.Item = "大二"
            ComboBox.Item = "大三"
            ComboBox.Item = "大四"
    End Sub
      

  7.   

    问题出在 ExecuteSQL 函数里:Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ODB.Recordset
    -----------------------------------------------
    这句没写对(ADODB写成ODB了),改为:
    Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset还有,代码中的这句
    MsgString = "查询到" & rst.RecordCount & 条记录 "
    少了一个双引号,改为:
    MsgString = "查询到" & rst.RecordCount & "条记录 "
      

  8.   

    还有,请问这样的条件下,VB代码如何编写:使用ComboBox内的数据做为变量在SQL中查询,
    如txtSQL= "select * from stu where grade like '% & ComboBox.(?) & %' ",我想问的是在&&之间该写什么代码?我在ComboBox内的内容是这样的:
    Private Sub ComboBox_Change(Index As Integer)
            ComboBox.Item = "大一"
            ComboBox.Item = "大二"
            ComboBox.Item = "大三"
            ComboBox.Item = "大四"
    End Sub
    ---------------------------------------------------------------
    ComboBox是控件数组?
    我猜你的意思是根据ComboBox里所选择的年级,查询对应年级的数据,如果是这样,代码应该这样写:
    Private Sub Form_Load()
        ComboBox.AddItem "大一"
        ComboBox.AddItem "大二"
        ComboBox.AddItem "大三"
        ComboBox.AddItem "大四"
    End SubPrivate Sub ComboBox_Change()
        txtSQL = "select * from stu where grade like '%" & ComboBox.Text & "%' "
    End Sub如果你的ComboBox是控件数组,那么Change事件这样写:
    Private Sub ComboBox_Change(Index As Integer)
        txtSQL = "select * from stu where grade like '%" & ComboBox(Index).Text & "%' "
    End Sub
      

  9.   

    使用模块作罢,在modMain里的变量在各个窗体模块里都是共享的,所以都是public的