Function IndexationStock

7
1 Function IndexationStock() On Error GoTo Err_Calcul_Stock Dim cpt As Long Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("Select * From ReMouvement_1 ") With rs If (.RecordCount > 0) Then .MoveLast .MoveFirst cpt = 0 PatienterInit "Indexation du stock", True, .RecordCount While Not .EOF cpt = cpt + 1 ' PatienterUpdate cpt, !CodeObjet PatienterUpdate cpt, !Designation CalculPMP !CodeObjet, !CodeMagasin .MoveNext Wend End If .Close End With

description

Module VBA

Transcript of Function IndexationStock

Page 1: Function IndexationStock

1

Function IndexationStock()

On Error GoTo Err_Calcul_Stock

Dim cpt As Long

Dim rs As Recordset

Set rs = CurrentDb.OpenRecordset("Select * From ReMouvement_1 ")

With rs

If (.RecordCount > 0) Then

.MoveLast

.MoveFirst

cpt = 0

PatienterInit "Indexation du stock", True, .RecordCount

While Not .EOF

cpt = cpt + 1

' PatienterUpdate cpt, !CodeObjet

PatienterUpdate cpt, !Designation

CalculPMP !CodeObjet, !CodeMagasin

.MoveNext

Wend

End If

.Close

End With

Err_Calcul_Stock:

Page 2: Function IndexationStock

2

PatienterClear

End Function

Function CalculPMP(CodeObjet As String, CodeMagasin As Long)

On Error GoTo err_calc

Dim QteStockE As Double

Dim QteStock As Double

Dim QteStockVal As Double

Dim rstRangement As Recordset

Dim rstObjetCMP As Recordset

Dim dblPMP As Double

Dim dDateDernMouv As Date

'Debug.Print "TypeES='E' And CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin

'QteStockE = Nz(DLookup("Quantite", "ReMouvement_1", "TypeES='E' And CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin), 0)

QteStockE = Nz(DSum("Quantite", "ReMouvement_1CUMP", "TypeES='E' And CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin), 0)

QteStockVal = Nz(DSum("Quantification", "ReMouvement_1CUMP", "TypeES='E' And CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin), 0)

dDateDernMouv = DLast("DateMouv", "ReMouvement_1CUMP", "CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin)

'If (Not QteStock = 0) Then

If QteStockE = 0 Then

dblPMP = 0

Else

Page 3: Function IndexationStock

3

dblPMP = QteStockVal / QteStockE

'Else

' dblPMP = 0

End If

QteStock = DSum("QteMvt", "ReMouvement_1", "CodeObjet='" & CodeObjet & "' And CodeMagasin=" & CodeMagasin)

Set rstRangement = CurrentDb.OpenRecordset("Select * From TRangements Where CodeMagasin=" & CodeMagasin & " And CodeObjet='" & CodeObjet & "'")

With rstRangement

If (.RecordCount = 0) Then

.AddNew

Else

.Edit

End If

!CodeMagasin = CodeMagasin

!CodeObjet = CodeObjet

!QuantiteStock = QteStock

!DateDernierMouv = dDateDernMouv

'!PrixUMP = QteStockVal / QteStockE 'dblPMP

!PrixUMP = dblPMP

.Update

.Close

End With

Page 4: Function IndexationStock

4

'Coder par moi

Set rstObjetCMP = CurrentDb.OpenRecordset("Select * From TObjets Where CodeObjet='" & CodeObjet & "'")

With rstObjetCMP

.Edit

!CoutMoyenP = dblPMP 'QteStockVal / QteStock

.Update

.Close

End With

Exit Function

err_calc:

MsgBox err.Description

'Resume Next

End Function

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub cboInventaire_AfterUpdate()

Dim strEtat As String

If (Not IsNull(Me.cboInventaire)) Then

Select Case Me.cboInventaire.Column(4)

Case "O"

Me![sfrmInventaireSaisie].Form![lblQteArticleTheorique].Visible = False

Me![sfrmInventaireSaisie].Form![QteArticleTheorique].Visible = False

strEtat = "Ouvert"

Page 5: Function IndexationStock

5

BoutonActif "Ajouter", Me.Name

Case "C"

Me![sfrmInventaireSaisie].Form![lblQteArticleTheorique].Visible = True

Me![sfrmInventaireSaisie].Form![QteArticleTheorique].Visible = True

strEtat = "Clôturé"

BoutonActif "Consulter", Me.Name

End Select

End If

Me.txtDate = Me.cboInventaire.Column(1)

Me.Caption = "Inventaire N° " & Me.cboInventaire & " - " & strEtat & " - (" & Me.cboInventaire.Column(2) & ")"

Me.sfrmInventaireSaisie.Requery

End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub cmdAccepter_Click()

If (Not IsNull(Me.cboInventaire)) Then

Select Case Me.cboInventaire.Column(4)

Case "O"

If (Not IsNull(Me.txtDate)) Then

If (DCount("CodeObjet", "TArticlesInventories", "QteArticlePhysique= Null And IdInventaire=" & Me.cboInventaire) > 0) Then

If (MsgBox("Certaines quantités physiques n'ont pas été saisies," & vbCrLf & _

"Voulez-vous continuer l'opération et les valider à 0 ?", vbYesNo, "Validation d'inventaire") <> vbYes) Then

Page 6: Function IndexationStock

6

Exit Sub

End If

End If

CreeBonDeRegularisation Me.cboInventaire, Me.cboInventaire.Column(5), Me.txtDate

InMouchard "Validation Inventaire N° : " & Nz(Me.cboInventaire, 0)

'Insertion dans la table des mouchards

' DateAction = Now

' SQLM = "INSERT INTO tMouchard (CodeUser, DateOperation, Operation) VALUES ('" & Me.txtUtilisateur & "','" & DateAction & "','connexion');"

' db.Execute (SQLM)

Else

MsgBox "Veuillez saisir la date de clôture !", vbInformation, "Validation d'inventaire"

Exit Sub

End If

BoutonActif "consulter", Me.Name

Case "C"

MsgBox "Opération impossible, Inventaire déjà clôturé !", vbInformation, "Validation d'inventaire"

'BoutonActif "Consulter", Me.name

End Select

Page 7: Function IndexationStock

7

End If

End Sub