Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fermeture de fichier sous IIS

11 réponses
Avatar
spectre
XP PRO /IIS 5.1 /base de données access 2003. /ADO/ASP

Bonjour,

Que ce soit sur mon pc ou chez mon provider (Arsys),j'ai le problème
suivant:

Lorsque je suis connecté
- un de mes formulaires asp (export d'une requête vers excel)affiche
le message suivant :
"Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user, or you need permission to
view its data. "

Lorsque je me déconnecte de mon application (en ado/asp) j'ai noté deux
problèmes qui me paraissent liés au pb précédent.
- le fichier .ldb ne disparait pas à la fermeture du dernier (ou
même seul) utilisateur et ne peut être supprimé.
- l'image dllhost.exe de l'utilisateur ixam_xxx reste active même
si l'application n'est plus active (ça me parait anormale!).


Le problème ne vient manifestement pas de la base access elle même car
si je l'ouvre directement dans access et que je la referme, le fichier
ldb disparait tout seul.

A tout hasard, je joins une copie du fichier globa.asa
"
<script language=VBScript runat=Server>

Sub Session_OnStart
session("NumSAct") = session("NumSAct") + 1
session("NumSTot") = session("NumSTot") + 1
End Sub

Sub Session_OnEnd
session("NumSAct") = session("NumSAct") - 1
End Sub
"

Merci d'avance pour votre aide précieuse!

--
Spectre

10 réponses

1 2
Avatar
jbongran
spectre wrote:
XP PRO /IIS 5.1 /base de données access 2003. /ADO/ASP

Bonjour,

Que ce soit sur mon pc ou chez mon provider (Arsys),j'ai le problème
suivant:

Lorsque je suis connecté
- un de mes formulaires asp (export d'une requête vers excel)affiche
le message suivant :
"Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user, or you need permission to
view its data. "

Lorsque je me déconnecte de mon application (en ado/asp) j'ai noté
deux problèmes qui me paraissent liés au pb précédent.
- le fichier .ldb ne disparait pas à la fermeture du dernier (ou
même seul) utilisateur et ne peut être supprimé.
- l'image dllhost.exe de l'utilisateur ixam_xxx reste active même
si l'application n'est plus active (ça me parait anormale!).


Le problème ne vient manifestement pas de la base access elle même car
si je l'ouvre directement dans access et que je la referme, le fichier
ldb disparait tout seul.

A tout hasard, je joins une copie du fichier globa.asa
"
<script language=VBScript runat=Server>

Sub Session_OnStart
session("NumSAct") = session("NumSAct") + 1
session("NumSTot") = session("NumSTot") + 1
End Sub

Sub Session_OnEnd
session("NumSAct") = session("NumSAct") - 1
End Sub
"

Merci d'avance pour votre aide précieuse!



Le bout de code de la page qui réalise l'export d'une requête vers excel
serait nettement plus utile que le global asa, qui ne fait que
compter/decompter quelque chose.
Avatar
spectre
Voici le bout de code. Cependant je pense que le message d'erreur n'est
qu'un "symptome" du pb car même si je n'ouvre pas cette page, le
fichier .ldb perdure après la fermeture de l'application.
Dans tous les cas, merci pour votre aide.

code ... il y a une quinzaine de table à exporter. J'en ai supprimé la
pluspart pour un texte moins long!

' ---------------------------------------------------------
<!--#include file ="./securite.asp"-->
<!--#include file="./include_temp/Connection.asp"-->
<!--#include file="./include_temp/Tools.asp"-->
<%

'strCheminfichier = "./export/" & Session("User") & "_" &
cStr(Session.SessionID) & ".xls"
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"
'Response.ContentType = "application/vnd.ms-excel"
'Response.AddHeader "content-disposition", "attachment; filename=" &
strCheminfichier
%>

<%


function CreateTableToExcel( oConnExcel, TableName, oRS )

' ------------------------------------------------------
' Detruit la feuille si elle existé déja
on error resume next
oConnExcel.Execute "drop table " & TableName
on error goto 0

'Create a new table (or worksheet in the workbook)
strSQL = "create table " & TableName & " ( "

strSQL = strSQL & oRS.Fields(0).Name & " char ( 255 )"
For I = 1 To oRS.Fields.Count - 1
strSQL = strSQL & " , Ch_" & oRS.Fields(I).Name & " char ( 255 ) "
Next
strSQL = strSQL & " ) "

'Response.write strSQL

oConnExcel.Execute strSQL

' Insert Data from oRs
strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"
Do While Not (oRS.EOF)
For I = 0 To oRS.Fields.Count - 1
'Response.write oRS.Fields(I).Type & ";"


if isnull(oRS.Fields(I).Value ) _
or oRS.Fields(I).Type = adArray _
or oRS.Fields(I).Type = adBinary _
or oRS.Fields(I).Type = adLongVarBinary _
then
strSQL = strSQL & "' , '"
else
strValeurChamps = replace( oRS.Fields(I).Value, "'", "''")
if oRS.Fields(I).Type = adLongVarWChar then
strSQL = strSQL & left(cstr(strValeurChamps ), 255 ) & "' , '"
else
strSQL = strSQL & cstr(strValeurChamps ) & "' , '"
end if
end if

Next
strSQL = left( strSQL , len(strSQL) - 3 )
strSQL = strSQL & " ); "
'Response.Write strSQL
oConnExcel.Execute strSQL
oRS.MoveNext

strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"

Loop

End function



Function CreateTableExcel2( strSQL, TableName )
on error resume next

Set oRS = Server.CreateObject("ADODB.Recordset")
'Response.Write "Chaine : " & strConn
oRS.ActiveConnection = strConn
oRS.Source = strSQL
oRS.CursorType = adOpenStatic
oRS.CursorLocation = adUseServer
' oRS.LockType = adLockReadOnly
oRS.Open

oRS.Movefirst

call CreateTableToExcel( oConnExcel, TableName, oRs )

oRs.close

end function

' ------------------------------------------------------
' Programme principal
'

'strCheminfichier = inputbox ( "Please give the path of the ouput
file", "Information", "c:temp" )



'Open the ADO connection to the Excel workbook

Dim oConnExcel

Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""


' Get the database connection

' TABLE CG


' Response.Write "Valeur de Sparent : " & Session("sParent") & " Fin"

'Response.Write "Valeur de POST : " & Session("sconsCG") & " Fin"
if Session("sconsCG") = 1 then
call CreateTableExcel2( "Select CG.* from CG, CV where CV.CVID =
CG.CVID and CV.sPARENT like '" & Session("sParent") & "%' ", "CG" )
Response.Write "Ok pour CG"
end if

' TABLE STOCK
if Session("sconsSO") = 1 then
call CreateTableExcel2( "Select STOCK.* from STOCK , CV where CV.CVID
= STOCK.CVID and CV.sPARENT like '" & Session("sParent") & "%'
", "STOCK" )
Response.Write "Ok pour STOCK"
end if

oConnExcel.Close

Response.Redirect ( "./SaveBinaryFile.asp?Chemin=" & strCheminfichier
& "&FileName=" & strNomFichier )
'Response.Redirect ( strCheminfichier )
' Appel d'une autre
me.close

%>


Bye.

* ---------------------------------------------------------
spectre wrote:
XP PRO /IIS 5.1 /base de données access 2003. /ADO/ASP

Bonjour,

Que ce soit sur mon pc ou chez mon provider (Arsys),j'ai le problème
suivant:

Lorsque je suis connecté
- un de mes formulaires asp (export d'une requête vers excel)affiche
le message suivant :
"Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user, or you need permission to
view its data. "

Lorsque je me déconnecte de mon application (en ado/asp) j'ai noté
deux problèmes qui me paraissent liés au pb précédent.
- le fichier .ldb ne disparait pas à la fermeture du dernier (ou
même seul) utilisateur et ne peut être supprimé.
- l'image dllhost.exe de l'utilisateur ixam_xxx reste active même
si l'application n'est plus active (ça me parait anormale!).


Le problème ne vient manifestement pas de la base access elle même car
si je l'ouvre directement dans access et que je la referme, le fichier
ldb disparait tout seul.

A tout hasard, je joins une copie du fichier globa.asa
"
<script language=VBScript runat=Server>

Sub Session_OnStart
session("NumSAct") = session("NumSAct") + 1
session("NumSTot") = session("NumSTot") + 1
End Sub

Sub Session_OnEnd
session("NumSAct") = session("NumSAct") - 1
End Sub
"

Merci d'avance pour votre aide précieuse!



Le bout de code de la page qui réalise l'export d'une requête vers excel
serait nettement plus utile que le global asa, qui ne fait que
compter/decompter quelque chose.



--
Spectre
Avatar
jbongran
spectre wrote:
Voici le bout de code. Cependant je pense que le message d'erreur
n'est qu'un "symptome" du pb car même si je n'ouvre pas cette page, le
fichier .ldb perdure après la fermeture de l'application.
Dans tous les cas, merci pour votre aide.

code ... il y a une quinzaine de table à exporter. J'en ai supprimé
la pluspart pour un texte moins long!

' ---------------------------------------------------------
<!--#include file ="./securite.asp"-->
<!--#include file="./include_temp/Connection.asp"-->
<!--#include file="./include_temp/Tools.asp"-->
<%

'strCheminfichier = "./export/" & Session("User") & "_" &
cStr(Session.SessionID) & ".xls"
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"
'Response.ContentType = "application/vnd.ms-excel"
'Response.AddHeader "content-disposition", "attachment; filename=" &
strCheminfichier
%>

<%


function CreateTableToExcel( oConnExcel, TableName, oRS )

' ------------------------------------------------------
' Detruit la feuille si elle existé déja
on error resume next
oConnExcel.Execute "drop table " & TableName
on error goto 0

'Create a new table (or worksheet in the workbook)
strSQL = "create table " & TableName & " ( "

strSQL = strSQL & oRS.Fields(0).Name & " char ( 255 )"
For I = 1 To oRS.Fields.Count - 1
strSQL = strSQL & " , Ch_" & oRS.Fields(I).Name & " char ( 255 ) "
Next
strSQL = strSQL & " ) "

'Response.write strSQL

oConnExcel.Execute strSQL

' Insert Data from oRs
strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"
Do While Not (oRS.EOF)
For I = 0 To oRS.Fields.Count - 1
'Response.write oRS.Fields(I).Type & ";"


if isnull(oRS.Fields(I).Value ) _
or oRS.Fields(I).Type = adArray _
or oRS.Fields(I).Type = adBinary _
or oRS.Fields(I).Type = adLongVarBinary _
then
strSQL = strSQL & "' , '"
else
strValeurChamps = replace( oRS.Fields(I).Value, "'", "''")
if oRS.Fields(I).Type = adLongVarWChar then
strSQL = strSQL & left(cstr(strValeurChamps ), 255 ) & "' , '"
else
strSQL = strSQL & cstr(strValeurChamps ) & "' , '"
end if
end if

Next
strSQL = left( strSQL , len(strSQL) - 3 )
strSQL = strSQL & " ); "
'Response.Write strSQL
oConnExcel.Execute strSQL
oRS.MoveNext

strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"

Loop

End function



Function CreateTableExcel2( strSQL, TableName )
on error resume next

Set oRS = Server.CreateObject("ADODB.Recordset")
'Response.Write "Chaine : " & strConn
oRS.ActiveConnection = strConn
oRS.Source = strSQL
oRS.CursorType = adOpenStatic
oRS.CursorLocation = adUseServer
' oRS.LockType = adLockReadOnly
oRS.Open

oRS.Movefirst

call CreateTableToExcel( oConnExcel, TableName, oRs )

oRs.close

end function

' ------------------------------------------------------
' Programme principal
'

'strCheminfichier = inputbox ( "Please give the path of the ouput
file", "Information", "c:temp" )



'Open the ADO connection to the Excel workbook

Dim oConnExcel

Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""


' Get the database connection

' TABLE CG


' Response.Write "Valeur de Sparent : " & Session("sParent") & " Fin"

'Response.Write "Valeur de POST : " & Session("sconsCG") & " Fin"
if Session("sconsCG") = 1 then
call CreateTableExcel2( "Select CG.* from CG, CV where CV.CVID > CG.CVID and CV.sPARENT like '" & Session("sParent") & "%' ", "CG" )
Response.Write "Ok pour CG"
end if

' TABLE STOCK
if Session("sconsSO") = 1 then
call CreateTableExcel2( "Select STOCK.* from STOCK , CV where CV.CVID
= STOCK.CVID and CV.sPARENT like '" & Session("sParent") & "%'
", "STOCK" )
Response.Write "Ok pour STOCK"
end if

oConnExcel.Close

Response.Redirect ( "./SaveBinaryFile.asp?Chemin=" & strCheminfichier
& "&FileName=" & strNomFichier )
'Response.Redirect ( strCheminfichier )
' Appel d'une autre
me.close

%>


Bye.

* ---------------------------------------------------------
spectre wrote:
XP PRO /IIS 5.1 /base de données access 2003. /ADO/ASP

Bonjour,

Que ce soit sur mon pc ou chez mon provider (Arsys),j'ai le problème
suivant:

Lorsque je suis connecté
- un de mes formulaires asp (export d'une requête vers
excel)affiche le message suivant :
"Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user, or you need permission
to view its data. "

Lorsque je me déconnecte de mon application (en ado/asp) j'ai noté
deux problèmes qui me paraissent liés au pb précédent.
- le fichier .ldb ne disparait pas à la fermeture du dernier (ou
même seul) utilisateur et ne peut être supprimé.
- l'image dllhost.exe de l'utilisateur ixam_xxx reste active
même si l'application n'est plus active (ça me parait anormale!).


Le problème ne vient manifestement pas de la base access elle même
car si je l'ouvre directement dans access et que je la referme, le
fichier ldb disparait tout seul.

A tout hasard, je joins une copie du fichier globa.asa
"
<script language=VBScript runat=Server>

Sub Session_OnStart
session("NumSAct") = session("NumSAct") + 1
session("NumSTot") = session("NumSTot") + 1
End Sub

Sub Session_OnEnd
session("NumSAct") = session("NumSAct") - 1
End Sub
"

Merci d'avance pour votre aide précieuse!



Le bout de code de la page qui réalise l'export d'une requête vers
excel serait nettement plus utile que le global asa, qui ne fait que
compter/decompter quelque chose.





Pour être franc et honnête, je ne comprend pas la chaine de connexion
utilisée.
Il est question de base access mais de ce que je comprend, il s'agit de
fichiers excel.
Je ne serai donc pas d'un grand secours, à part reiterer l'option d'enlever
les on error resume next et les on error goto 0
Avatar
spectre
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les tables
dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye






spectre wrote:
Voici le bout de code. Cependant je pense que le message d'erreur
n'est qu'un "symptome" du pb car même si je n'ouvre pas cette page, le
fichier .ldb perdure après la fermeture de l'application.
Dans tous les cas, merci pour votre aide.

code ... il y a une quinzaine de table à exporter. J'en ai supprimé
la pluspart pour un texte moins long!

' ---------------------------------------------------------
<!--#include file ="./securite.asp"-->
<!--#include file="./include_temp/Connection.asp"-->
<!--#include file="./include_temp/Tools.asp"-->
<%

'strCheminfichier = "./export/" & Session("User") & "_" &
cStr(Session.SessionID) & ".xls"
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"
'Response.ContentType = "application/vnd.ms-excel"
'Response.AddHeader "content-disposition", "attachment; filename=" &
strCheminfichier
%>

<%


function CreateTableToExcel( oConnExcel, TableName, oRS )

' ------------------------------------------------------
' Detruit la feuille si elle existé déja
on error resume next
oConnExcel.Execute "drop table " & TableName
on error goto 0

'Create a new table (or worksheet in the workbook)
strSQL = "create table " & TableName & " ( "

strSQL = strSQL & oRS.Fields(0).Name & " char ( 255 )"
For I = 1 To oRS.Fields.Count - 1
strSQL = strSQL & " , Ch_" & oRS.Fields(I).Name & " char ( 255 ) "
Next
strSQL = strSQL & " ) "

'Response.write strSQL

oConnExcel.Execute strSQL

' Insert Data from oRs
strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"
Do While Not (oRS.EOF)
For I = 0 To oRS.Fields.Count - 1
'Response.write oRS.Fields(I).Type & ";"


if isnull(oRS.Fields(I).Value ) _
or oRS.Fields(I).Type = adArray _
or oRS.Fields(I).Type = adBinary _
or oRS.Fields(I).Type = adLongVarBinary _
then
strSQL = strSQL & "' , '"
else
strValeurChamps = replace( oRS.Fields(I).Value, "'", "''")
if oRS.Fields(I).Type = adLongVarWChar then
strSQL = strSQL & left(cstr(strValeurChamps ), 255 ) & "' , '"
else
strSQL = strSQL & cstr(strValeurChamps ) & "' , '"
end if
end if

Next
strSQL = left( strSQL , len(strSQL) - 3 )
strSQL = strSQL & " ); "
'Response.Write strSQL
oConnExcel.Execute strSQL
oRS.MoveNext

strSQL = "insert into " & TableName
strSQL = strSQL & " VALUES ( '"

Loop

End function



Function CreateTableExcel2( strSQL, TableName )
on error resume next

Set oRS = Server.CreateObject("ADODB.Recordset")
'Response.Write "Chaine : " & strConn
oRS.ActiveConnection = strConn
oRS.Source = strSQL
oRS.CursorType = adOpenStatic
oRS.CursorLocation = adUseServer
' oRS.LockType = adLockReadOnly
oRS.Open

oRS.Movefirst

call CreateTableToExcel( oConnExcel, TableName, oRs )

oRs.close

end function

' ------------------------------------------------------
' Programme principal
'

'strCheminfichier = inputbox ( "Please give the path of the ouput
file", "Information", "c:temp" )



'Open the ADO connection to the Excel workbook

Dim oConnExcel

Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""


' Get the database connection

' TABLE CG


' Response.Write "Valeur de Sparent : " & Session("sParent") & " Fin"

'Response.Write "Valeur de POST : " & Session("sconsCG") & " Fin"
if Session("sconsCG") = 1 then
call CreateTableExcel2( "Select CG.* from CG, CV where CV.CVID >> CG.CVID and CV.sPARENT like '" & Session("sParent") & "%' ", "CG" )
Response.Write "Ok pour CG"
end if

' TABLE STOCK
if Session("sconsSO") = 1 then
call CreateTableExcel2( "Select STOCK.* from STOCK , CV where CV.CVID
= STOCK.CVID and CV.sPARENT like '" & Session("sParent") & "%'
", "STOCK" )
Response.Write "Ok pour STOCK"
end if

oConnExcel.Close

Response.Redirect ( "./SaveBinaryFile.asp?Chemin=" & strCheminfichier
& "&FileName=" & strNomFichier )
'Response.Redirect ( strCheminfichier )
' Appel d'une autre
me.close

%>


Bye.

* ---------------------------------------------------------
spectre wrote:
XP PRO /IIS 5.1 /base de données access 2003. /ADO/ASP

Bonjour,

Que ce soit sur mon pc ou chez mon provider (Arsys),j'ai le problème
suivant:

Lorsque je suis connecté
- un de mes formulaires asp (export d'une requête vers
excel)affiche le message suivant :
"Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user, or you need permission
to view its data. "

Lorsque je me déconnecte de mon application (en ado/asp) j'ai noté
deux problèmes qui me paraissent liés au pb précédent.
- le fichier .ldb ne disparait pas à la fermeture du dernier (ou
même seul) utilisateur et ne peut être supprimé.
- l'image dllhost.exe de l'utilisateur ixam_xxx reste active
même si l'application n'est plus active (ça me parait anormale!).


Le problème ne vient manifestement pas de la base access elle même
car si je l'ouvre directement dans access et que je la referme, le
fichier ldb disparait tout seul.

A tout hasard, je joins une copie du fichier globa.asa
"
<script language=VBScript runat=Server>

Sub Session_OnStart
session("NumSAct") = session("NumSAct") + 1
session("NumSTot") = session("NumSTot") + 1
End Sub

Sub Session_OnEnd
session("NumSAct") = session("NumSAct") - 1
End Sub
"

Merci d'avance pour votre aide précieuse!



Le bout de code de la page qui réalise l'export d'une requête vers
excel serait nettement plus utile que le global asa, qui ne fait que
compter/decompter quelque chose.





Pour être franc et honnête, je ne comprend pas la chaine de connexion
utilisée.
Il est question de base access mais de ce que je comprend, il s'agit de
fichiers excel.
Je ne serai donc pas d'un grand secours, à part reiterer l'option d'enlever
les on error resume next et les on error goto 0



--
Spectre
Avatar
jbongran
spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les tables
dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une BDD
access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier & strNomFichier)
En fait il doit manquer pas mal de choses pour comprendre ce code.
Par exemple la variable (ou certainement l'objet de connexion) strConn
Cet objet est-il fermé ET détruit dans la page ?
Avatar
spectre
Quelques recherches sur Google me font penser que les fichiers .ldb
utilisés dans une application sous IIS deviennent inactifs non pas
lorsque le dernier utilisateur ferme la base access mais lorsque IIS
n'est plus actif après le timeout déclaré dans IIS. Donc, de ce côté
là, ça parait normal.
Reste le pb de l'export vers excel.


Bizarement, l'export fonctionne sans pb sur mon pc, en local mais pas
sur le serveur distant.


La chaîne de connection (strconn) à access est dans la seconde fonction
(Function CreateTableExcel2( strSQL, TableName)

strIndidata = "./DB/" & Session("Client") & "/IndidataV43.mdb"
strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" &
Server.Mappath(strIndidata)

J'ai rajouté à la requête
strConn.close
set strConn = nothing

Mais ça ne change rien...

Merci.

spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les tables
dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une BDD
access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier & strNomFichier)
En fait il doit manquer pas mal de choses pour comprendre ce code.
Par exemple la variable (ou certainement l'objet de connexion) strConn
Cet objet est-il fermé ET détruit dans la page ?



--
Spectre
Avatar
jbongran
spectre wrote:
Quelques recherches sur Google me font penser que les fichiers .ldb
utilisés dans une application sous IIS deviennent inactifs non pas
lorsque le dernier utilisateur ferme la base access mais lorsque IIS
n'est plus actif après le timeout déclaré dans IIS. Donc, de ce côté
là, ça parait normal.
Reste le pb de l'export vers excel.


Bizarement, l'export fonctionne sans pb sur mon pc, en local mais pas
sur le serveur distant.


La chaîne de connection (strconn) à access est dans la seconde
fonction (Function CreateTableExcel2( strSQL, TableName)

strIndidata = "./DB/" & Session("Client") & "/IndidataV43.mdb"
strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" &
Server.Mappath(strIndidata)

J'ai rajouté à la requête
strConn.close
set strConn = nothing

Mais ça ne change rien...

Merci.

spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les
tables dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une
BDD access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier &
strNomFichier) En fait il doit manquer pas mal de choses pour
comprendre ce code. Par exemple la variable (ou certainement l'objet de
connexion)
strConn Cet objet est-il fermé ET détruit dans la page ?





Est-ce qu'il t'es possible de poster un code simple (genre un seul export)
mais complet (c'est à dire avec tous les objets utilisés, etc..) ?
Par exemple je ne voit nul par de destruction de l'objet oRS dans la
fonction CreateTableExcel2

Quelque bouts de codes pourraient aussi être simplifiés, par exemple:
'Create a new table (or worksheet in the workbook)
Dim sep, maxCol
sep = ""
strSQL = "create table " & TableName & " ( "
maxCol = oRS.Fields.Count -1
For i = 0 To maxCol
strSQL = sep & strSQL & oRS.Fields(0).Name & " char ( 255 )"
sep = ", Ch_"
Next
strSQL = strSQL & " ) "
Avatar
spectre
Bon, j'ai déjà bien abusé de ton temps.
L'application a été développé par un un pro et je n'ai fait jusqu'à
présent que de petites modifs ou crée de nouvelles fonctionsnnalités
par des "copier-coller intelligents".
Donc mes compétences sont modestes.
Si tu veux bien malgré tout continuer, je pourrai t'envoyer l'adresse
web de de l'appli ainsi que l'accès en ftp.
Pour ce faire, il me faut ton adresse mail.

La mienne étant propedeutique/////\@gmail.com (sans les /).

Merci.

spectre wrote:
Quelques recherches sur Google me font penser que les fichiers .ldb
utilisés dans une application sous IIS deviennent inactifs non pas
lorsque le dernier utilisateur ferme la base access mais lorsque IIS
n'est plus actif après le timeout déclaré dans IIS. Donc, de ce côté
là, ça parait normal.
Reste le pb de l'export vers excel.


Bizarement, l'export fonctionne sans pb sur mon pc, en local mais pas
sur le serveur distant.


La chaîne de connection (strconn) à access est dans la seconde
fonction (Function CreateTableExcel2( strSQL, TableName)

strIndidata = "./DB/" & Session("Client") & "/IndidataV43.mdb"
strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" &
Server.Mappath(strIndidata)

J'ai rajouté à la requête
strConn.close
set strConn = nothing

Mais ça ne change rien...

Merci.

spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les
tables dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID) &
".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une
BDD access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier &
strNomFichier) En fait il doit manquer pas mal de choses pour
comprendre ce code. Par exemple la variable (ou certainement l'objet de
connexion)
strConn Cet objet est-il fermé ET détruit dans la page ?





Est-ce qu'il t'es possible de poster un code simple (genre un seul export)
mais complet (c'est à dire avec tous les objets utilisés, etc..) ?
Par exemple je ne voit nul par de destruction de l'objet oRS dans la fonction
CreateTableExcel2

Quelque bouts de codes pourraient aussi être simplifiés, par exemple:
'Create a new table (or worksheet in the workbook)
Dim sep, maxCol
sep = ""
strSQL = "create table " & TableName & " ( "
maxCol = oRS.Fields.Count -1
For i = 0 To maxCol
strSQL = sep & strSQL & oRS.Fields(0).Name & " char ( 255 )"
sep = ", Ch_"
Next
strSQL = strSQL & " ) "



--
Spectre
Avatar
jbongran
spectre wrote:
Bon, j'ai déjà bien abusé de ton temps.
L'application a été développé par un un pro et je n'ai fait jusqu'à
présent que de petites modifs ou crée de nouvelles fonctionsnnalités
par des "copier-coller intelligents".
Donc mes compétences sont modestes.
Si tu veux bien malgré tout continuer, je pourrai t'envoyer l'adresse
web de de l'appli ainsi que l'accès en ftp.
Pour ce faire, il me faut ton adresse mail.

La mienne étant propedeutique/////\@gmail.com (sans les /).

Merci.

spectre wrote:
Quelques recherches sur Google me font penser que les fichiers .ldb
utilisés dans une application sous IIS deviennent inactifs non pas
lorsque le dernier utilisateur ferme la base access mais lorsque IIS
n'est plus actif après le timeout déclaré dans IIS. Donc, de ce côté
là, ça parait normal.
Reste le pb de l'export vers excel.


Bizarement, l'export fonctionne sans pb sur mon pc, en local mais
pas sur le serveur distant.


La chaîne de connection (strconn) à access est dans la seconde
fonction (Function CreateTableExcel2( strSQL, TableName)

strIndidata = "./DB/" & Session("Client") & "/IndidataV43.mdb"
strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" &
Server.Mappath(strIndidata)

J'ai rajouté à la requête
strConn.close
set strConn = nothing

Mais ça ne change rien...

Merci.

spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les
tables dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID)
& ".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une
BDD access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier &
strNomFichier) En fait il doit manquer pas mal de choses pour
comprendre ce code. Par exemple la variable (ou certainement
l'objet de connexion)
strConn Cet objet est-il fermé ET détruit dans la page ?





Est-ce qu'il t'es possible de poster un code simple (genre un seul
export) mais complet (c'est à dire avec tous les objets utilisés,
etc..) ? Par exemple je ne voit nul par de destruction de l'objet oRS
dans la
fonction CreateTableExcel2

Quelque bouts de codes pourraient aussi être simplifiés, par exemple:
'Create a new table (or worksheet in the workbook)
Dim sep, maxCol
sep = ""
strSQL = "create table " & TableName & " ( "
maxCol = oRS.Fields.Count -1
For i = 0 To maxCol
strSQL = sep & strSQL & oRS.Fields(0).Name & " char ( 255 )"
sep = ", Ch_"
Next
strSQL = strSQL & " ) "





Ok, je n'utilise pas d'adresse anti-spam, donc en principe tu devrais
l'avoir ;-)
Je ne te garanti pas de débugger, mais je ferai de mon mieux.
Avatar
spectre
Bonjour,

Je ne trouve pas ton mail pour t'envoyer les infos!

Bye



spectre wrote:
Bon, j'ai déjà bien abusé de ton temps.
L'application a été développé par un un pro et je n'ai fait jusqu'à
présent que de petites modifs ou crée de nouvelles fonctionsnnalités
par des "copier-coller intelligents".
Donc mes compétences sont modestes.
Si tu veux bien malgré tout continuer, je pourrai t'envoyer l'adresse
web de de l'appli ainsi que l'accès en ftp.
Pour ce faire, il me faut ton adresse mail.

La mienne étant propedeutique/////\@gmail.com (sans les /).

Merci.

spectre wrote:
Quelques recherches sur Google me font penser que les fichiers .ldb
utilisés dans une application sous IIS deviennent inactifs non pas
lorsque le dernier utilisateur ferme la base access mais lorsque IIS
n'est plus actif après le timeout déclaré dans IIS. Donc, de ce côté
là, ça parait normal.
Reste le pb de l'export vers excel.


Bizarement, l'export fonctionne sans pb sur mon pc, en local mais
pas sur le serveur distant.


La chaîne de connection (strconn) à access est dans la seconde
fonction (Function CreateTableExcel2( strSQL, TableName)

strIndidata = "./DB/" & Session("Client") & "/IndidataV43.mdb"
strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" &
Server.Mappath(strIndidata)

J'ai rajouté à la requête
strConn.close
set strConn = nothing

Mais ça ne change rien...

Merci.

spectre wrote:
Merci, néanmoins.

En fait, il s'agit bien d'un fichier access dont on exporte les
tables dans un fichier excel.

Je ne pense pas que le pb vienne de l'export vers excel mais de la
connexion avec access!

Bye



[...]
strCheminfichier = "./export/"
strNomFichier = Session("User") & "_" & cStr(Session.SessionID)
& ".xls"






[...]
'Open the ADO connection to the Excel workbook
Dim oConnExcel
Set oConnExcel = Server.CreateObject("ADODB.Connection")
oConnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.Mappath(strCheminfichier &
strNomFichier) & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""







C'est bien ce que je disait, je ne voit nul part de référence à une
BDD access, puisque strNomFichier se termine par .xls
Essaye un Response.Write Server.Mappath(strCheminfichier &
strNomFichier) En fait il doit manquer pas mal de choses pour
comprendre ce code. Par exemple la variable (ou certainement
l'objet de connexion)
strConn Cet objet est-il fermé ET détruit dans la page ?





Est-ce qu'il t'es possible de poster un code simple (genre un seul
export) mais complet (c'est à dire avec tous les objets utilisés,
etc..) ? Par exemple je ne voit nul par de destruction de l'objet oRS dans
la
fonction CreateTableExcel2

Quelque bouts de codes pourraient aussi être simplifiés, par exemple:
'Create a new table (or worksheet in the workbook)
Dim sep, maxCol
sep = ""
strSQL = "create table " & TableName & " ( "
maxCol = oRS.Fields.Count -1
For i = 0 To maxCol
strSQL = sep & strSQL & oRS.Fields(0).Name & " char ( 255 )"
sep = ", Ch_"
Next
strSQL = strSQL & " ) "





Ok, je n'utilise pas d'adresse anti-spam, donc en principe tu devrais l'avoir
;-)
Je ne te garanti pas de débugger, mais je ferai de mon mieux.



--
Spectre
1 2