我在同一个模块里用了adodc和adodb,当它们用相同的sql语句时没事,但只要用了不同的sql语句adodb部分就会报一个“至少有一个参数没指定”的错误。我不知道怎么改。希望各位大哥睦看。
我的cursortypet和locktype都设置了。

解决方案 »

  1.   

    这是我的代码:
    Private Sub Form_Load()With adodc1
        .Connectionstring = Provider
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .recordsetSource = "select * from 学籍基础表"
        .refresh
    End With
    Text1.Text = adodc1.recordset.Fields!姓名
    Text2.Text = adodc1.recordset.Fields!年龄
    Text3.Text = adodc1.recordset.Fields!出生日期
    Text4.Text = Str(adodc1.recordset.Fields!入学分数)
    Text5.Text = adodc1.recordset.Fields!入学时间
    Text6.Text = adodc1.recordset.Fields!班级
    Text7.Text = adodc1.recordset.Fields!序号command = "select 专业 from 专业学制表"
    Set Resado = New ADODB.Recordset
    With Resado
        .ActiveConnection = Provider
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Source = command
        .Open
    End With
    Do While Not Resado.EOF
        Combo1.AddItem Resado.Fields!专业
        Resado.MoveNext
    Loop
    End Sub
      

  2.   

    Set Resado = New ADODB.Recordset
    改成
    Set Resado As New ADODB.Recordset
    试试
      

  3.   

    ActiveConnection ?
    建议先
     dim cnn as new adodb.connection
    cnn.open cnnstr.....
    然后
      resado.ActiveConnection = cnn
        或者 
      Resado.open sqlstr,cnn 
         试试
      

  4.   

    command = "select 专业 from 专业学制表"
    Set Resado = New ADODB.RecordsetResado.Open command,Provider,adOpenDynamic,adLockOptimisticDo While Not Resado.EOF
        Combo1.AddItem Resado.Fields!专业
        Resado.MoveNext
    Loop
    End Sub
      

  5.   

    Private Sub Form_Load()
    dim resado as new adodb.recordset
    With adodc1
        .Connectionstring = cnstr
        .CursorLocation = adUseClient'使用客户端游标
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .recordsetSource = "select * from 学籍基础表"
        .refresh
    End With
    Text1.Text = adodc1.recordset.Fields!姓名
    Text2.Text = adodc1.recordset.Fields!年龄
    Text3.Text = adodc1.recordset.Fields!出生日期
    Text4.Text = Str(adodc1.recordset.Fields!入学分数)
    Text5.Text = adodc1.recordset.Fields!入学时间
    Text6.Text = adodc1.recordset.Fields!班级
    Text7.Text = adodc1.recordset.Fields!序号adodc1.Recordset.Closesqlstr = "select 专业 from 专业学制表"'将变量改一下,用sqlstrWith Resado
        .ActiveConnection = cnstr'建义将provider改为用cnstr来代替
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Source = sqlstr
        .Open
    End With
    Do While Not Resado.EOF
        Combo1.AddItem Resado.Fields!专业
        Resado.MoveNext
    Loop
    resado.close
    set resado=nothing
    End Sub改过了试试看。
      

  6.   

    或者你就将这一部分:
    With Resado
        .ActiveConnection = cnstr'建义将provider改为用cnstr来代替
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Source = sqlstr
        .Open
    End With
    改为:
    用resado对象的OPEN方法来打开:Resado.CursorLocation = adUseClient
    Resado.Open sqlstr,cnstr,adOpenDynamic,adLockOptimistic还有你以后用变量尽不要用类似于系统关健字之类的,如command,Provider等。