程序代码如下:
Dim cn1 As ADODB.Connection
Dim cn2 As ADODB.Connection
Set cn1 = New ADODB.Connection
Set cn2 = New ADODB.Connection
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
cn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "e:\zmy\hj\fqll\PMACSITE.MDB;"
cn2.CursorLocation = adUseClient
cn2.Open "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=fqll;Initial Catalog=fqllgl;Data Source=10.55.202.181"
Dim sql As String
Dim biaoming As String '表名变量
sql = "select  * from utindex order by indxdate"
Set rs1 = cn1.Execute(sql)
rs1.Close
cn1.Close上面的代码放在窗体的Private Sub Form_Load()中时没有问题,但如果放在窗体外面(如通用中或类模块中)时,出现“编译错误:无效外部过程”。为什么会这样?怎么解决?谢谢!

解决方案 »

  1.   

    你把这段代码放到sub中或者function中就没问题了
      

  2.   

    例如:Private Function xx()
    Dim cn1 As ADODB.Connection
    Dim cn2 As ADODB.Connection
    Set cn1 = New ADODB.Connection
    Set cn2 = New ADODB.Connection
    Dim rs1 As ADODB.Recordset
    Set rs1 = New ADODB.Recordset
    Dim rs2 As ADODB.Recordset
    Set rs2 = New ADODB.Recordset
    cn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "e:\zmy\hj\fqll\PMACSITE.MDB;"
    cn2.CursorLocation = adUseClient
    cn2.Open "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=fqll;Initial Catalog=fqllgl;Data Source=10.55.202.181"
    Dim sql As String
    Dim biaoming As String '表名变量
    sql = "select  * from utindex order by indxdate"
    Set rs1 = cn1.Execute(sql)
    rs1.Close
    cn1.Close
    End Function
      

  3.   

    放在 sub main 中 或 把 Private 改为 public