7,763
社区成员
发帖
与我相关
我的任务
分享
Private Sub m_BillTransfer_BeforeSave(ByVal bNew As Boolean, ReturnCode As Long)
'TODO: 请在此处添加代码响应事件 BeforeSave
' ReturnCode 返回参数 -1: 失败,结束单据保存;
'0:成功,继续单据保存
'1:成功返回,结束单据保存
Dim cnn As String
Dim cn As New ADODB.Connection
'物料代码
Dim StrItemNumber As String
'成本对象代码
Dim StrCostObj As String
Dim Rs As New ADODB.Recordset
'成本对象内码
Dim LngCostObjID As Long
Dim IntI As Integer
Dim LngA() As Long
On Error GoTo Err
cnn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=AIS20080807081820;Data Source=JINDEEE"
With cn
.ConnectionString = cnn
.Open
End With
StrItemNumber = m_BillTransfer.GetHeadNumber(11)
StrCostObj = m_BillTransfer.GetHeadNumber(5)
Set Rs = cn.Execute("Select FItemID from cbcostobj where FNumber = '" & StrCostObj & "'")
LngCostObjID = Rs.Fields("FItemID")
If LCase(Left(StrItemNumber, 1)) = "z" Or UCase(Left(StrItemNumber, 1)) = "Z" Then
'此SQL语句我在查询分析器里执行有4行记录,监视Rs时,只有第一条记录存在,后面三条都没有,请问是怎么回事?
Set Rs = cn.Execute("Select FCostObjID From ICMO Where FTranType = 85")
ReDim LngA(Rs.RecordCount) As Long '调试到此行报错为"下标越界",请问怎么回事?
Rs.MoveFirst
For IntI = 1 To Rs.RecordCount
LngA(IntI) = Rs.Fields("FCostObjID")
If LngCostObjID = LngA(IntI) Then
MsgBox """成本对象""已被引用,本次操作取消", vbInformation, "金蝶提示"
ReturnCode = -1
Exit Sub
End If
Rs.MoveNext
Next
End If
cn.Close
Exit Sub
Err:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical, "错误提示"
End If
End Sub
With cn
.ConnectionString = cnn
.CursorLocation = adUseClient
.Open
End With