我的两个库为:
shcq
zjzh       cjsl
17800438   2000000
shcq1
num         zjzh
1           17800438
2           17800438
连接是用的odbc,名称为shzqfgs.
Private Sub Command1_Click()
Dim cn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim sql1 As String
Dim sc As String
Dim i As Integer
sql1 = "select * from shcq"
cn1.Open "shzqfgs", "", ""        ///出错!!!!
Set rs1 = cn.Execute(sql1)
Do Until rs1.EOF
Do While rs1!cjsl >= 20000
i = i + 1
cn1.Execute ("insert table shzq1(num,zjzh) value(i,rs1!zjzh)")
rs1!cjsl = rs1!cjsl - 20000
Loop
rs1.MoveNext
Loop
rs.Close
End Sub

解决方案 »

  1.   

    cn1.Open "DSN=shzqfgs", "", ""
      

  2.   

    代码如下:Private Sub Command1_Click()Dim cn1 As New ADODB.Connection   ''''这里错了
    Dim rs1 As New ADODB.Recordset    ''''这里错了
    Dim sql1 As String
    Dim sc As String
    Dim i As Integer
    sql1 = "select * from shcq"
    cn1.Open "shzqfgs"
    Set rs1 = cn1.Execute(sql1)
    Do Until rs1.EOF
    Do While rs1.Fields!num >= 20000
    i = i + 1
    cn1.Execute ("insert table shzq1(num,zjzh) value(i,rs1.Fields!zjzh)")
    rs1.Fields!cjsl = rs1.Fields!cjsl - 20000
    Loop
    rs1.MoveNext
    Loop
    rs1.Close     ''''这里错了,应为rs1End Sub
      

  3.   

    开头加上:
    set cn1=New ADODB.Connection 
    set rs1=New ADODB.Recordset
      

  4.   

    cnl这个连接对象没有值,设上值后在rs1.open "sql语句",cnl,adopenkeyset,adlockoptimistic,这样才可以连接
      

  5.   

    '连接ODBC:
    With cn1
       .ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=shzqfgs"
       .Open
    End With
      

  6.   

    执行open语句前必须
    set cn1=New ADODB.Connection 
    set rs1=New ADODB.Recordset
    或者直接
    Dim cn1 As New ADODB.Connection
    Dim rs1 As New ADODB.Recordset