表DGMOCSM 字段:試模類型SM002,模號SM003,生產批次SM006
SM002 SM003 SM006
A a123 a123T0
A a123 a123T1
B a123 a123T1-1
B a123 a123T1-2批次規則如下
當SM002='A'時從0開始,後面加1。T0 T1 T2……
當SM002='B'時以A(同SM003)的最後次數,後面-流水號。T1-1 T1-2 T2-1……strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='A' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rst.RecordCount > 0 Then
當SM002='A',SM003='a123',新增第三筆,結果是:a123T2
Text1(5).Text = 該怎么寫?
Else
Text1(5).Text = Trim(Text1(2).Text) & "T0"
End If
當SM002='A',SM003='a123'時候
strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='A' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rst.RecordCount > 0 Then
當SM002='B',SM003='a123',新增第三筆,結果是:a123T1-3
Text1(5).Text =注意規則是:當SM002='B'時以A(同SM003)的最後次數,後面-流水號。T1-1 T1-2 T2-1...
End If請教下該怎么寫?如有不清楚的地方請指出我補充!
SM002 SM003 SM006
A a123 a123T0
A a123 a123T1
B a123 a123T1-1
B a123 a123T1-2批次規則如下
當SM002='A'時從0開始,後面加1。T0 T1 T2……
當SM002='B'時以A(同SM003)的最後次數,後面-流水號。T1-1 T1-2 T2-1……strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='A' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rst.RecordCount > 0 Then
當SM002='A',SM003='a123',新增第三筆,結果是:a123T2
Text1(5).Text = 該怎么寫?
Else
Text1(5).Text = Trim(Text1(2).Text) & "T0"
End If
當SM002='A',SM003='a123'時候
strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='A' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rst.RecordCount > 0 Then
當SM002='B',SM003='a123',新增第三筆,結果是:a123T1-3
Text1(5).Text =注意規則是:當SM002='B'時以A(同SM003)的最後次數,後面-流水號。T1-1 T1-2 T2-1...
End If請教下該怎么寫?如有不清楚的地方請指出我補充!
Text1(5).Text =val(mid(rst.fields(2).value,8))+1
如果不是則在max(sm006)最後以為自動+1第二段新增先判斷SM002=A' SM003='a123'時 已經存在一筆或者多筆,
就獲取最後一個批次max(sm006),然後在判斷當SM1002='B SM003='a123'
是否已經存在一筆或者多筆,如果是就在max(sm006)後面+1
如果不存在則批次為SM002=A' SM003='a123'時候max(sm006)後面加-1
Call SetRSTReadOnly(strRST_SQL)
If rst.RecordCount > 0 Then
Text1(5).Text = rst.fields("sm003").Value & "T" & CStr(Val(Mid(rst.fields(2).Value, 6)) + 1)
Else
Text1(5).Text = Trim(Text1(2).Text) & "T0"
End If'--------------------------strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='A' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rstA.RecordCount > 0 Then
strRST_SQL = "Select sm002,sm003,max(sm006) from dgmocsm where sm003='a123' and sm002='B' group by sm002,sm003 "
Call SetRSTReadOnly(strRST_SQL)
If rstB.RecordCount > 0 Then
Text1(5).Text = rstA.fields(2).Value & "+" & CStr(Val(Mid(rstB.fields(2).Value, 8)) + 1)
Else
Text1(5).Text = rstA.fields(2).Value & "-" & CStr(Val(Mid(rstB.fields(2).Value, 8)) + 1)
End If
End If
你是直接指定的位數,但是實際上數據是不確定的,我用的是:
Text1(5).Text = rst.Fields(1).Value & "T" & CStr(Val(Right(rst.Fields(2).Value, Len(rst.Fields(2).Value) - Len(rst.Fields(1).Value))) + 1)
參照你的思路,寫出來好像沒錯!
謝謝了!分送給你了