Office中国论坛/Access中国论坛

标题: 错误提示"至少一个参数没有被指定值" [打印本页]

作者: 十年磨一剑    时间: 2011-5-2 22:54
标题: 错误提示"至少一个参数没有被指定值"
各位好,我这里有一个ADO程序,是在“物料入库”的同时,用最新一次入库的物料单价,去更新”物料库“中该物料的单价。
但我程序好象有点问题,每次更新物料入库时,出现错误提示:”至少一个参数没有被指定值“,请各位帮忙指点一下,谢谢!!

Private Sub Form_AfterUpdate()
  Dim rs物料库 As ADODB.Recordset
  Dim SQLStmt As String
On Error GoTo HandleError
  
  If Not IsNull(Me!物料编号) Then
    Set rs物料库 = New ADODB.Recordset
    If Not IsNull(Me!单价) Then
      SQLStmt = "SELECT * FROM 物料库 " _
        & "WHERE 物料编号 = " & Me!物料编号
      rs物料库.Open SQLStmt, CurrentProject.Connection, _
        adOpenDynamic, adLockOptimistic
      
      If Not rs物料库.EOF Then
        rs物料库![Unitprice] = Me!单价
        rs物料库.Update
      End If
      rs物料库.Close
      Set rs物料库 = Nothing
    End If
  End If
  
ExitHere:
  Exit Sub
  
HandleError:
  MsgBox "Error: " & Err.Description, vbCritical, "Access Error"
  Resume ExitHere
End Sub


作者: roych    时间: 2011-5-3 00:23
1、确认物料号是否文本,如果不是文本,请在前后加上单引号。
2、如果更新全部的话,应该用循环语句(例如Do Until ……Loop或者For……Next语句),别忘了可能还要加上MoveNext方法,以便移动游标到下一条记录。
作者: 十年磨一剑    时间: 2011-7-3 09:59
感谢版主,最近有点忙,没上论坛,我先照您的方法改一下,如有问题,再向您请教。
作者: 十年磨一剑    时间: 2011-10-4 20:42
版主真高,现在第一个问题解决了,可是如你说的第二点,我的代码只能更新一条记录的字段,可是现在要更新多条符合条件的字段, 如何运用.MoveNext呢,请赐教,谢谢!
作者: Henry D. Sy    时间: 2011-10-5 10:46
没有实例,只能试试看!
  1. Private Sub Form_AfterUpdate()
  2.     Dim rs物料库 As ADODB.Recordset
  3.     Dim SQLStmt As String
  4.     On Error GoTo HandleError

  5.     If Not IsNull(Me!物料编号) Then
  6.         Set rs物料库 = New ADODB.Recordset
  7.         If Not IsNull(Me!单价) Then
  8.             SQLStmt = "SELECT * FROM 物料库 " _
  9.                       & "WHERE 物料编号 = " & Me!物料编号
  10.             rs物料库.Open SQLStmt, CurrentProject.Connection, _
  11.                        adOpenDynamic, adLockOptimistic

  12.             Do While Not rs物料库.EOF
  13.                 rs物料库![Unitprice] = Me!单价
  14.                 rs物料库.Update
  15.                 rs物料库.MoveNext
  16.             Loop
  17.             rs物料库.Close
  18.             Set rs物料库 = Nothing
  19.         End If
  20.     End If

  21. ExitHere:
  22.     Exit Sub

  23. HandleError:
  24.     MsgBox "Error: " & Err.Description, vbCritical, "Access Error"
  25.     Resume ExitHere
  26. End Sub
复制代码





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3