'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat. LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DA.TrainJourHouat, GL_TRN_DA.N°ligne FROM GL_TRN_DA ORDER BY GL_TRN_DA.TrainJourHouat DESC;" Set rst = bds.OpenRecordset(chSQL)
J'EFFECTUE UNE BOUCLE WHILE QUI ME PERMET DE RETIRER LA PARTIE ALPHA D'UN CHAMPS ALPHANUMERIQUE GRACE A LA FONCTION VIRE_ALPHA. SI C'EST NUMERIQUE JE LANCE MA FONCTION. LE CHAMPS TrainJourHouat EST DE TYPE TEXTE
do If Not (IsNumeric(rst(0))) Then resultat_new = vire_alpha(rst(0)) ligne = rst(1) DoCmd.RunSQL "UPDATE GL_TRN_DA SET GL_TRN_DA.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DA.N°ligne='" + ligne + "';" else exit do End If rst.MoveNext loop While Not rst.EOF
'IMPORT COMPOSANTE VFE CORAIL DRAG, J'IMPORTE UN FICHIER TEXTE SOUS FORME DE TABLE
'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat.LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DRAG.TrainJourHouat, GL_TRN_DRAG.N°ligne FROM GL_TRN_DRAG ORDER BY GL_TRN_DRAG.TrainJourHouat DESC;" Set rst = bds.OpenRecordset(chSQL)
J'EFFECTUE UNE BOUCLE WHILE QUI ME PERMET DE RETIRER LA PARTIE ALPHA D'UN CHAMPS ALPHANUMERIQUE GRACE A LA FONCTION VIRE_ALPHA. SI C'EST NUMERIQUE JE LANCE MA FONCTION. LE CHAMPS TrainJourHouat EST DE TYPE TEXTE
Do If Not (IsNumeric(rst(0))) Then resultat_new = vire_alpha(rst(0)) ligne = rst(1) DoCmd.RunSQL "UPDATE GL_TRN_DRAG SET GL_TRN_DRAG.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DRAG.N°ligne='" + ligne + "';" else exit do End If rst.MoveNext Loop While Not rst.EOF
'IMPORT COMPOSANTE VFE CORAIL DRS, J'IMPORTE UN FICHIER TEXTE SOUS FORME DE TABLE
'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat.LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DRS.TrainJourHouat, GL_TRN_DRS.N°ligne FROM GL_TRN_DRS ORDER BY GL_TRN_DRS.TrainJourHouat DESC;" Set rst = bds.OpenRecordset(chSQL)
Do If Not (IsNumeric(rst(0))) Then resultat_new = vire_alpha(rst(0)) 'utilisation incorreect de nul rst(0) renvoie nul, resultat new-> 27246 ligne = rst(1) DoCmd.RunSQL "UPDATE GL_TRN_DRS SET GL_TRN_DRS.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DRS.N°ligne='" + ligne + "';" Else Exit Do End If rst.MoveNext Loop While Not rst.EOF
'JE TRANSFORME ENSUITE LES CHAMPS TEXTE DE MES 3 TABLE EN CHAMPS NUMERIQUE. CAR JE N'AI PLUS DE CHAMPS ALPHANUMERIQUE!!!
DoCmd.RunSQL "ALTER TABLE GL_TRN_DA Alter Column N°ligne Numeric;" DoCmd.RunSQL "ALTER TABLE GL_TRN_DA Alter Column TrainJourHouat Numeric;" DoCmd.RunSQL "ALTER TABLE GL_TRN_DRAG Alter Column N°ligne Numeric;" DoCmd.RunSQL "ALTER TABLE GL_TRN_DRAG Alter Column TrainJourHouat Numeric;" DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column N°ligne Numeric;" DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column TrainJourHouat Numeric;"
'ET LA C'EST LE DRAME!!!
il me dit "le moteur de la base de données n'as pas pu verrouillée la table 'GL_TRN_DRS" car elle est déjà utilisé par une autre personne ou un autre processus. J'ai cherché mais je ne toruve pas la solution. Il plante sur la ligne DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column N°ligne Numeric;" Je pensai au début que la table était "utilisé" dans la boucle do-while mais j'ai fait une msg box et je sors bien de la boucle avt que je lance l'alter, donc logiquement plus aucune requete ne travaille sur cette table! Je ne comprends pas!! De plus pouquoi ça plante sur cette ligne et non pas sur un alter précédent? Merci beaucoup pour votre patience, Cordialement, Alexandre.
Marsh Posté le 13-07-2007 à 15:25:05
Bonjour à tous!! Je vous expose mon problème qui me pose bcp de problèmes!!!!! Je vous remercie d'avance!
Voici mon code:
'IMPORT COMPOSANTE VFE CORAIL DA, J'IMPORTE UN FICHIER TEXTE SOUS FORME DE TABLE
DoCmd.TransferText acImportDelim, "DA_CORAIL", "GL_TRN_DA", "D:\ACCOMPAGNEMENT_PEAGE\Fichiers utilitaires\Peage\Vfe\Composantes\VFE CORAIL\Reservation\DA\VFE_CORAIL_DA_20" + année + "_" + mois + ".csv", True
'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat. LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DA.TrainJourHouat, GL_TRN_DA.N°ligne FROM GL_TRN_DA ORDER BY GL_TRN_DA.TrainJourHouat DESC;"
Set rst = bds.OpenRecordset(chSQL)
J'EFFECTUE UNE BOUCLE WHILE QUI ME PERMET DE RETIRER LA PARTIE ALPHA D'UN CHAMPS ALPHANUMERIQUE GRACE A LA FONCTION VIRE_ALPHA. SI C'EST NUMERIQUE JE LANCE MA FONCTION. LE CHAMPS TrainJourHouat EST DE TYPE TEXTE
do
If Not (IsNumeric(rst(0))) Then
resultat_new = vire_alpha(rst(0))
ligne = rst(1)
DoCmd.RunSQL "UPDATE GL_TRN_DA SET GL_TRN_DA.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DA.N°ligne='" + ligne + "';"
else
exit do
End If
rst.MoveNext
loop While Not rst.EOF
'IMPORT COMPOSANTE VFE CORAIL DRAG, J'IMPORTE UN FICHIER TEXTE SOUS FORME DE TABLE
DoCmd.TransferText acImportDelim, "DRAG_CORAIL", "GL_TRN_DRAG", "D:\ACCOMPAGNEMENT_PEAGE\Fichiers utilitaires\Peage\Vfe\Composantes\VFE CORAIL\Reservation\DRAG\VFE_CORAIL_DRAG_20" + année + "_" + mois + ".csv", True
'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat.LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DRAG.TrainJourHouat, GL_TRN_DRAG.N°ligne FROM GL_TRN_DRAG ORDER BY GL_TRN_DRAG.TrainJourHouat DESC;"
Set rst = bds.OpenRecordset(chSQL)
J'EFFECTUE UNE BOUCLE WHILE QUI ME PERMET DE RETIRER LA PARTIE ALPHA D'UN CHAMPS ALPHANUMERIQUE GRACE A LA FONCTION VIRE_ALPHA. SI C'EST NUMERIQUE JE LANCE MA FONCTION. LE CHAMPS TrainJourHouat EST DE TYPE TEXTE
Do
If Not (IsNumeric(rst(0))) Then
resultat_new = vire_alpha(rst(0))
ligne = rst(1)
DoCmd.RunSQL "UPDATE GL_TRN_DRAG SET GL_TRN_DRAG.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DRAG.N°ligne='" + ligne + "';"
else
exit do
End If
rst.MoveNext
Loop While Not rst.EOF
'IMPORT COMPOSANTE VFE CORAIL DRS, J'IMPORTE UN FICHIER TEXTE SOUS FORME DE TABLE
DoCmd.TransferText acImportDelim, "DRS_CORAIL", "GL_TRN_DRS", "D:\ACCOMPAGNEMENT_PEAGE\Fichiers utilitaires\Peage\Vfe\Composantes\VFE CORAIL\Reservation\DRS\VFE_CORAIL_DRS_20" + année + "_" + mois + ".csv", True
'JE LANCE UNE REQUETE QUI ME PERMET DE CLASSER PAR ODRE DECROISSANT MA TABLE PAR RAPPORT AU CHAMPS TrainJourHouat.LES CHAMPS ALPHANUMERIQUE APPARAISSENT EN PREMIER
chSQL = "SELECT GL_TRN_DRS.TrainJourHouat, GL_TRN_DRS.N°ligne FROM GL_TRN_DRS ORDER BY GL_TRN_DRS.TrainJourHouat DESC;"
Set rst = bds.OpenRecordset(chSQL)
Do
If Not (IsNumeric(rst(0))) Then
resultat_new = vire_alpha(rst(0)) 'utilisation incorreect de nul rst(0) renvoie nul, resultat new-> 27246
ligne = rst(1)
DoCmd.RunSQL "UPDATE GL_TRN_DRS SET GL_TRN_DRS.TrainJourHouat = '" + resultat_new + "' WHERE GL_TRN_DRS.N°ligne='" + ligne + "';"
Else
Exit Do
End If
rst.MoveNext
Loop While Not rst.EOF
'JE TRANSFORME ENSUITE LES CHAMPS TEXTE DE MES 3 TABLE EN CHAMPS NUMERIQUE. CAR JE N'AI PLUS DE CHAMPS ALPHANUMERIQUE!!!
DoCmd.RunSQL "ALTER TABLE GL_TRN_DA Alter Column N°ligne Numeric;"
DoCmd.RunSQL "ALTER TABLE GL_TRN_DA Alter Column TrainJourHouat Numeric;"
DoCmd.RunSQL "ALTER TABLE GL_TRN_DRAG Alter Column N°ligne Numeric;"
DoCmd.RunSQL "ALTER TABLE GL_TRN_DRAG Alter Column TrainJourHouat Numeric;"
DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column N°ligne Numeric;"
DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column TrainJourHouat Numeric;"
'ET LA C'EST LE DRAME!!!
il me dit "le moteur de la base de données n'as pas pu verrouillée la table 'GL_TRN_DRS" car elle est déjà utilisé par une autre personne ou un autre processus. J'ai cherché mais je ne toruve pas la solution.
Il plante sur la ligne DoCmd.RunSQL "ALTER TABLE GL_TRN_DRS Alter Column N°ligne Numeric;"
Je pensai au début que la table était "utilisé" dans la boucle do-while mais j'ai fait une msg box et je sors bien de la boucle avt que je lance l'alter, donc logiquement plus aucune requete ne travaille sur cette table! Je ne comprends pas!! De plus pouquoi ça plante sur cette ligne et non pas sur un alter précédent? Merci beaucoup pour votre patience, Cordialement, Alexandre.