begin process at 2012 02 16 11:09:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Update SQL, en reprenant valeur précédante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Update SQL, en reprenant valeur précédante

jeudi 15 décembre 2005 à 15:25:09 | Update SQL, en reprenant valeur précédante

lucio57

Bonjour,
Je cherche à savoir, si il est possible par requête SQL de faire un update sur un champ en lui affectant la valeur de l'enregistrement précédent.

Je m'explique
J'ai une table contenant le code du dossier, le n° de compte et le montant. Mais pour certaines lignes le code dossier n'est pas renseigné. Ce qui signifie que la ligne correspond au précédent code dossier lu.
Exempl
Dossier   Compte  Montant
        1    601000  100000
               415000      1500
               300000         200
         2    701000     50000
               250000     400,50
        1    602000    200000
               405000      2500
               310000         200
En fait les lignes 2, 3,7,8 correspondent au dossier 1 et la ligne 5 au dossier 2

Mon souci est que ces données sont intégré dans la base à partir d'un fichier TXT par lot DTS. Donc je cherche à mettre jour le champ dossier d'un seul coup sans avoir à tout parcourir parce que j'ai près 500.000 enregistrements et ça risque d'être galêre à tout traîter 1 par 1.


D'avance merci pour votre aide
vendredi 16 décembre 2005 à 07:12:52 | Re : Update SQL, en reprenant valeur précédante

gaa179

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



Cette discussion est classée dans : code, dossier, sql, valeur, update


Répondre à ce message

Sujets en rapport avec ce message

UpDate et Insert sur VBA (Visiwatch) [ par Kosta ] Je code en VBA pour un logiciel qui s'appele Visiwatch.Mon problème : mise à jour des items d'une table, et insertion des valeurs dans une autre. Je t Code sql dynamique d'un Command !!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par Filou ] Comment faire pour changer en cours de route le code sql d'un objet Command dans un DataEnvironment ? (je veux rajouter une condition where)J'ai essay code ascii de valeur entrante sur port serie [ par tibops ] Salut, je recupère une donnée qui provient du port serie d'un capteur, et je souhaiterais recuperer le code ASCII de cette donnée, cependant quand je sql et champ null [ par poulipe ] Bonjour,je voudrais rechercher dans ma base si il y a des champs null pour changer leurs valeurs en à ou en "".donc j ai mon sql :ssqlstring = "SELECT Urgent!! problème pour sur une requête SQL select dans le code [ par Nitocris ] Je travail sous access 2000Voilà je voudrais faire une selection de champ pour remplir par la suite un menu déroulant j'ai essayé avec l'aide elle ser Question SQL(UPDATE) sur ACCESS [ par cristiandan ] Bonjour,J'ai une base de donnée de type ACCESS qui contient un champ C1DTCMD de type date. Je voudrais par une requete mise a jour transformer toutes Aide en SQL ... Affectation d'une valeur dans un enregistrement précis d'1 table [ par trabetjp42 ] Etant débutant en SQL, j'aimerais savoir comment insérer une valeur dans le premier enregistrement égal à NULL, dans une table (sous VBA); voici ma li UPDATE error... [ par nd25 ] Voila,je dois convertir un prgm dao en ado...alors avec 1 base(access2000) bidon je fait des test...or je n'arrive pas à modifier des données...Ma bas langage SQL et date [ par moustakiz ] Bonjour,je cherche a déterminer les enregistrement dont la valeur d'un champ date (format complet j/m/a) appartient à l'année en cours.Quelle est la requete sql sur une feuille excel [ par molpfr ] J'ai un data sur une feuille excel (feuil1$) et je voudrai ne garder que les entrées qui correspondent à un certaine valeur sachant que j'ai trois cha


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales