下面是企业人事管理系统的一段代码。生成exe文件时提示:编译错误,变量未定义!出错位置为  msSql  =  msSelect  &  msTableName  &  "  where"  &  frmManRecord2.sQSql  &  msOrderBy  
 
请高手帮忙看看啊。怎么定义啊。。跪求,在线等啊~~~  
 
 
 Option Explicit
Public mrc As ADODB.Recordset
Public txtSQL As String
Public MsgText As StringPrivate Sub Form_Unload(Cancel As Integer)
    flagEdit = False
    gintMode = 0
End SubPrivate Sub Form_Load()
    '显示数据
    ShowTitle
    ShowData
    flagEdit = True
End SubPrivate Sub Form_Resize()
    If Me.WindowState <> vbMinimized And fMainForm.WindowState <> vbMinimized Then
        '边界处理
        If Me.ScaleHeight < 10 * lblTitle.Height Then
            
            Exit Sub
        End If
        If Me.ScaleWidth < lblTitle.Width + lblTitle.Width / 2 Then
            
            Exit Sub
        End If
        '控制控件的位置
                
        lblTitle.Top = lblTitle.Height
        lblTitle.Left = (Me.Width - lblTitle.Width) / 2
        
        msgList.Top = lblTitle.Top + lblTitle.Height + lblTitle.Height / 2
        msgList.Width = Me.ScaleWidth - 200
        msgList.Left = Me.ScaleLeft + 100
        msgList.Height = Me.ScaleHeight - msgList.Top - 200
    End If
End SubPublic Sub FormClose()
    flagEdit = False
    Unload Me
End Sub
'记录查询
Public Sub RecordFind()
    frmManRecord2.Show 1
    If Trim(frmManRecord2.sQSql & " ") <> "" Then-->就是这    msSql = msSelect & msTableName & " where" & frmManRecord2.sQSql & msOrderBy
        ShowData
    End If
    Unload frmManRecord2
End Sub

解决方案 »

  1.   

    msSql是否定义了?全局变量?另外,如果你是查询数据库时出错,可能原因是:msSelect & msTableName 中没有空格隔开。你再跟跟看。可能就是这样了
      

  2.   

    谢谢大哥的回复。我没学过VB,有谁能告诉我怎么定义mmsql吗?
      

  3.   

    Dim msSql As String '定义变量字符串
      

  4.   

    Dim msSql As String
     
    我已经这样定义了msSql怎么还是不能生成exe啊郁闷ing会不会msSql不是字符串变量啊?
      

  5.   

    可能是你的msSelect & msTableName 变量中头尾都没有空格,如:msSelect ="aaaa"msTableName ="bbbb"那么:msSelect & msTableName ="aaaabbbb"肯定会出错的了。
      

  6.   

    当提示出错后,VB会停在出错的语句那里,并显示黄色,这时你可以移动鼠标到这句的每个变量上观察,这样可以发现是哪里出错.
    另外," where" 中后面也应该加空格,改成" where ".    
    msSql = msSelect & msTableName & " where " & frmManRecord2.sQSql & msOrderBy
      

  7.   

    可能是你的msSelect & msTableName 变量中头尾都没有空格,如:msSelect ="aaaa"msTableName ="bbbb"那么:msSelect & msTableName ="aaaabbbb"肯定会出错的了  我想的就这样,实在连接字符串问题的事!
      

  8.   

    :
              SELECT 表1.字段1,表1.字段3  FROM 表1  WHERE 表1.字段2 = 2;msSql  =  msSelect  &  msTableName  &  "  where"  &  frmManRecord2.sQSql  &  msOrderBy  分析:msSelect = SELECT 相应的字段列表
    msTableName = FROM 对应的表名连 msSelect  和  msTableName  也没有见你定义!