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 46 47 48 49
| Public Sub AjoutInput()
Dim rst As Recordset
Dim tbl() As String 'pour splitter l'enregistrement
Dim Composant() As String 'pour séparer le composant d'avec le N° de carte
Dim Panneau As Long
Dim Produit As String
Dim sSql As String
Dim i As Integer
Dim dDatejour As Date
Dim sDateJour As String: sDateJour = "20150724" 'pour test
DoCmd.SetWarnings False
'Formater la date
dDatejour = DateSerial(Left(sDateJour, 4), Mid(sDateJour, 5, 2), Right(sDateJour, 2))
'Vidanger tInput si c'est un remake pour cette date
DoCmd.RunSQL "DELETE DateJour FROM tInput WHERE DateJour=#" & Format(dDatejour, "mm/dd/yy") & "#;"
Set rst = CurrentDb.OpenRecordset("tInputBrut")
rst.MoveFirst
Do While Not rst.EOF
'ne laisser qu'un espace entre les champs
rst.Edit
For i = 1 To 10
rst(1) = Replace(rst(1), " ", " ")
Next i
tbl = Split(rst(1), " ")
Select Case tbl(0)
Case "#" 'c'est donc un enregistrement pour lequel on ne fait rien
Case Is < "a" 'c'est donc un enregistrement dont le 1er champ est numérique => panneau
Panneau = tbl(0)
Produit = tbl(2)
Case Else 'c'est donc un enregistrement qui décrit une erreur
Composant = Split(tbl(0), "-")
sSql = "INSERT INTO tInput ( DateJour, Produit, Panneau, NumCarte, Composant, Boitier, Erreur, Fenetre, Operateur ) " _
& "SELECT #" & Format(dDatejour, "mm/dd/yy") & "# As Expr1, " _
& """" & Produit & """ As Expr2, " _
& Panneau & " AS Expr3, " _
& Composant(1) & " As Expr4, " _
& """" & Composant(0) & """ As Expr5, " _
& """" & tbl(1) & """ As Expr6, " _
& tbl(5) & " As Expr7, " _
& """" & tbl(2) & tbl(3) & """ As Expr8, " _
& """" & tbl(6) & """ As Expr9;"
DoCmd.RunSQL sSql
End Select
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
DoCmd.SetWarnings True
End Sub |
Partager