1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Public Function ProchainVersement(ByVal Serie As String, ByVal NumeroVOSS As Long)
Dim sqltextPV As String
Dim ProchainContinuW As String
Dim ProchainContinuL As String
Dim rstPV As DAO.Recordset
Debug.Print "PV "; sqltextPV
Select Case Serie
Case "W"
' cas d'un classement en série continue, le numéro est à gauche
sqltextPV = "SELECT ItemID FROM tblItem WHERE ItemID LIKE '*" & Serie & "*' ORDER BY ItemID;"
Set rstPV = CurrentDb.OpenRecordset(sqltextPV)
rstPV.MoveLast 'se place sur le dernier record trié
RenvoiDescriptionPV = rstPV!ItemID
Debug.Print "ItemID = "; RenvoiDescriptionPV
rstPV.Close
ProchainContinu = Left(RenvoiDescriptionPV, (InStr("1", RenvoiDescriptionPV, Serie, vbTextCompare)) - 1) + 1
Case "L"
' cas d 'un classement en série thématique, le numéro est à droite
Select Case NumeroVOSS
Case "1"
'__ On selectionne les numéros d'articles commençant par 1L
sqltextPV = "SELECT ItemID FROM tblItem WHERE Left(ItemID , (InStr(1, ItemID, '" & Serie & "', vbTextCompare)) + 1) = " & NumeroVOSS & " AND ItemID LIKE '*" & Serie & "*' ORDER BY ItemID;"
Debug.Print sqltextPV
Set rstPV = CurrentDb.OpenRecordset(sqltextPV)
rstPV.MoveLast 'se place sur le dernier record trié
RenvoiDescriptionPV = rstPV!ItemID
Debug.Print "ItemID = "; RenvoiDescriptionPV
rstPV.Close
ProchainContinu = Right(RenvoiDescriptionPV, (InStr("1", RenvoiDescriptionPV, Serie, vbTextCompare)) + 1) + 1
Case Else
End Select
Case Else
rstPV.Close 'ne pas oublier de refermer le recordset apres
End Select
'Debug.Print "W"; ProchainContinu
Debug.Print "Prochain "; ProchainContinu
ProchainVersement = ProchainContinu
End Function |
Partager