Salut,
Dans ton transfert TXT vers BD dans le DTS, utilise un VBScript pour faire le transfert de tes données. Tu pourras ainsi garder la valeur du précédent dans un variable local, et si pour le suivant la valeur est vide, tu place la valeur de ta variable. Voici un exemple de code qui fait un check sur les colonnes et puis qui transfert les valeurs.
DTSSource("Col001") est la première colonne de ton fichier, DTS Destination("[Nom du champ"]) est le champ de ta table.
'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************
' Copy each source column to the destination column
Function Main()
Dim szStationNumber 'StationNumber with leading zeros
' Check the record type
IF DTSSource("Col001") = "E" then ' Header record
Main = DTSTransformStat_SkipRow ' Scip this record
ELSEIF DTSSource("Col001") = "T" then ' Record holding the totals
WriteTotals(DTSSource("Col003"))
Main = DTSTransformStat_SkipRow ' Scip this record
ELSEIF DTSSource("Col001") = "D" then ' Record holding data
'Perform transformation
'Check records
'Add leading zero's before the station number
szStationNumber = Right("000" & DTSGlobalVariables("StationNumber").Value,3)
if DTSSource("Col002") <> szStationNumber then
Main = DTSTransformStat_ExceptionRow
else
DTSDestination("CIMP_StationNumber") = DTSSource("Col002")
DTSDestination("CIMP_ClientReferenceNumber") = DTSSource("Col003")
DTSDestination("CIMP_KindOfEnergy") = DTSSource("Col004")
DTSDestination("CIMP_DeliveryNumber") = DTSSource("Col005")
DTSDestination("CIMP_CounterIdentification") = DTSSource("Col006")
DTSDestination("CIMP_RegionNumber") = DTSSource("Col007")
DTSDestination("CIMP_ExpiryDate") = DTSSource("Col008")
DTSDestination("CIMP_CounterSerialNumber") = DTSSource("Col009")
DTSDestination("CIMP_CounterNumberOfDigits") = DTSSource("Col010")
DTSDestination("CIMP_IndexRangeMin") = DTSSource("Col011")
DTSDestination("CIMP_IndexRangeMax") = DTSSource("Col012")
DTSDestination("CIMP_IndexValue") = DTSSource("Col013")
DTSDestination("CIMP_IndexDate") = DTSSource("Col014")
DTSDestination("CIMP_IndexTime") = DTSSource("Col015")
DTSDestination("CIMP_CounterPosition") = DTSSource("Col016")
DTSDestination("CIMP_Status") = DTSSource("Col017")
DTSDestination("CIMP_KeyDeliveryPlace") = DTSSource("Col018")
DTSDestination("CIMP_CodeConnection") = DTSSource("Col019")
Main = DTSTransformStat_OK
end if
ELSE ' Wrong record type
Main = DTSTransformStat_ExceptionRow
END IF
End Function