J'exécute une macro à partir d'excel.
Cette macro balaye les enregistrements d'une table access ( histovlabsentes
) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des enregistrements
dans un fichier excel.
Or la macro plante régulièrement ( mais de façon aléatoire ) à la ligne
suivante :
Set dbVlAbsentes =
OpenDatabase("P:\Commun_RPC\REFERENTIEL\BASE_HISTO\absence
vl\vl_absentes.mdb")
J'obtiens le message suivant :
erreur d'exécution '3050' impossible de vérouiller le fichier
Pour info ma BDD comporte, hormis la table déjà mentionnée, une table liée
d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne fais pas
appel dans mon code.
Faut il que je joue sur les paramètres access outils / options / avancé :
mode d'ouverture par défaut
vérouillage par défaut
ou que je modifie mon code ?
Merci.
Une partie de mon code ci dessous :
Sub ajouttrous_par_access()
Dim dbVlAbsentes As Database
Dim dtHistoVlAbsentes As Recordset
Dim dtRapportAbsenceVl As Recordset
Dim dDate As Date
Dim nbLignesJour As Integer
Dim ligneJour As Integer
Dim dtrequete As String
Dim dtrequeteComplet As String
Dim rq As Recordset
Dim rqComplet As Recordset
Dim codport As String
Dim l As Integer
Application.ScreenUpdating = False
ligne où ça plante :
Set dbVlAbsentes =
OpenDatabase("P:\Commun_RPC\REFERENTIEL\BASE_HISTO\absence
vl\vl_absentes.mdb")
Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes",
dbOpenDynaset)
Set dtRapportAbsenceVl = dbVlAbsentes.OpenRecordset("rapport_absence_vl",
dbOpenDynaset)
Do Until dtHistoVlAbsentes.EOF
codport = dtHistoVlAbsentes![codehisto]
dDate = dtHistoVlAbsentes![dateprochainevl]
dDate = Format(dDate, "mm/dd/yyyy")
dtrequeteComplet = " Select codehisto,codebip,
libellé,périodicité,datemax,dateprochainevl,dateprochaineestimative,délaimoyenobservé,datethéoriquedemiseàdisposition,valorisateur,commentaires,fermés
from histovlabsentes where codehisto ='" & codport & "' and dateprochainevl =
#" & dDate & "#"
dtrequete = " Select codehisto,dateprochainevl from rapport_absence_vl where
codehisto ='" & codport & "' and dateprochainevl = #" & dDate & "#"
Set rq = dbVlAbsentes.OpenRecordset(dtrequete, dbOpenSnapshot)
If rq.EOF = True Then
Set rqComplet = dbVlAbsentes.OpenRecordset(dtrequeteComplet,
dbOpenSnapshot)
l = 1
Do Until Workbooks("rapport absence
vl.xls").Sheets("rapport").Cells(l, 1).Value = Empty
l = l + 1
Loop
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
Talliac wrote:
J'exécute une macro à partir d'excel.
La code est dans Access ou dans Excel ?
Cette macro balaye les enregistrements d'une table access ( histovlabsentes ) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des enregistrements dans un fichier excel. Or la macro plante régulièrement ( mais de façon aléatoire ) à la ligne suivante : Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence vlvl_absentes.mdb") J'obtiens le message suivant : erreur d'exécution '3050' impossible de vérouiller le fichier Pour info ma BDD comporte, hormis la table déjà mentionnée, une table liée d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne fais pas appel dans mon code. Faut il que je joue sur les paramètres access outils / options / avancé : mode d'ouverture par défaut vérouillage par défaut ou que je modifie mon code ?
Merci.
Une partie de mon code ci dessous :
Sub ajouttrous_par_access()
Dim dbVlAbsentes As Database Dim dtHistoVlAbsentes As Recordset Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database Dim dtHistoVlAbsentes As DAO.Recordset Dim dtRapportAbsenceVl As DAO.Recordset
Dim dDate As Date Dim nbLignesJour As Integer Dim ligneJour As Integer Dim dtrequete As String Dim dtrequeteComplet As String Dim rq As Recordset Dim rqComplet As Recordset Dim codport As String Dim l As Integer
Application.ScreenUpdating = False
ligne où ça plante : Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence vlvl_absentes.mdb")
Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes", dbOpenDynaset) Set dtRapportAbsenceVl > dbVlAbsentes.OpenRecordset("rapport_absence_vl", dbOpenDynaset)
dtrequete = " Select codehisto,dateprochainevl from rapport_absence_vl where codehisto ='" & codport & "' and dateprochainevl = #" & dDate & "#"
idem :
and dateprochainevl =" & Format(dDate, "#mm-dd-yyyy#")
Set rq = dbVlAbsentes.OpenRecordset(dtrequete, dbOpenSnapshot) If rq.EOF = True Then Set rqComplet = dbVlAbsentes.OpenRecordset(dtrequeteComplet, dbOpenSnapshot) l = 1 Do Until Workbooks("rapport absence vl.xls").Sheets("rapport").Cells(l, 1).Value = Empty l = l + 1 Loop
Cette macro balaye les enregistrements d'une table access (
histovlabsentes
) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des
enregistrements
dans un fichier excel.
Or la macro plante régulièrement ( mais de façon aléatoire ) à la
ligne
suivante :
Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence
vlvl_absentes.mdb")
J'obtiens le message suivant :
erreur d'exécution '3050' impossible de vérouiller le fichier
Pour info ma BDD comporte, hormis la table déjà mentionnée, une table
liée
d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne
fais pas
appel dans mon code.
Faut il que je joue sur les paramètres access outils / options /
avancé :
mode d'ouverture par défaut
vérouillage par défaut
ou que je modifie mon code ?
Merci.
Une partie de mon code ci dessous :
Sub ajouttrous_par_access()
Dim dbVlAbsentes As Database
Dim dtHistoVlAbsentes As Recordset
Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database
Dim dtHistoVlAbsentes As DAO.Recordset
Dim dtRapportAbsenceVl As DAO.Recordset
Dim dDate As Date
Dim nbLignesJour As Integer
Dim ligneJour As Integer
Dim dtrequete As String
Dim dtrequeteComplet As String
Dim rq As Recordset
Dim rqComplet As Recordset
Dim codport As String
Dim l As Integer
Application.ScreenUpdating = False
ligne où ça plante :
Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence
vlvl_absentes.mdb")
Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes",
dbOpenDynaset)
Set dtRapportAbsenceVl > dbVlAbsentes.OpenRecordset("rapport_absence_vl",
dbOpenDynaset)
dtrequete = " Select codehisto,dateprochainevl from
rapport_absence_vl where
codehisto ='" & codport & "' and dateprochainevl = #" & dDate & "#"
idem :
and dateprochainevl =" & Format(dDate, "#mm-dd-yyyy#")
Set rq = dbVlAbsentes.OpenRecordset(dtrequete, dbOpenSnapshot)
If rq.EOF = True Then
Set rqComplet = dbVlAbsentes.OpenRecordset(dtrequeteComplet,
dbOpenSnapshot)
l = 1
Do Until Workbooks("rapport absence
vl.xls").Sheets("rapport").Cells(l, 1).Value = Empty
l = l + 1
Loop
Cette macro balaye les enregistrements d'une table access ( histovlabsentes ) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des enregistrements dans un fichier excel. Or la macro plante régulièrement ( mais de façon aléatoire ) à la ligne suivante : Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence vlvl_absentes.mdb") J'obtiens le message suivant : erreur d'exécution '3050' impossible de vérouiller le fichier Pour info ma BDD comporte, hormis la table déjà mentionnée, une table liée d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne fais pas appel dans mon code. Faut il que je joue sur les paramètres access outils / options / avancé : mode d'ouverture par défaut vérouillage par défaut ou que je modifie mon code ?
Merci.
Une partie de mon code ci dessous :
Sub ajouttrous_par_access()
Dim dbVlAbsentes As Database Dim dtHistoVlAbsentes As Recordset Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database Dim dtHistoVlAbsentes As DAO.Recordset Dim dtRapportAbsenceVl As DAO.Recordset
Dim dDate As Date Dim nbLignesJour As Integer Dim ligneJour As Integer Dim dtrequete As String Dim dtrequeteComplet As String Dim rq As Recordset Dim rqComplet As Recordset Dim codport As String Dim l As Integer
Application.ScreenUpdating = False
ligne où ça plante : Set dbVlAbsentes > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence vlvl_absentes.mdb")
Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes", dbOpenDynaset) Set dtRapportAbsenceVl > dbVlAbsentes.OpenRecordset("rapport_absence_vl", dbOpenDynaset)
dtrequete = " Select codehisto,dateprochainevl from rapport_absence_vl where codehisto ='" & codport & "' and dateprochainevl = #" & dDate & "#"
idem :
and dateprochainevl =" & Format(dDate, "#mm-dd-yyyy#")
Set rq = dbVlAbsentes.OpenRecordset(dtrequete, dbOpenSnapshot) If rq.EOF = True Then Set rqComplet = dbVlAbsentes.OpenRecordset(dtrequeteComplet, dbOpenSnapshot) l = 1 Do Until Workbooks("rapport absence vl.xls").Sheets("rapport").Cells(l, 1).Value = Empty l = l + 1 Loop
Mon code est dans excel, je lance la macro d'une session excel.
Merci.
"3stone" a écrit :
Salut,
Talliac wrote: > J'exécute une macro à partir d'excel.
La code est dans Access ou dans Excel ?
> Cette macro balaye les enregistrements d'une table access ( > histovlabsentes > ) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des > enregistrements > dans un fichier excel. > Or la macro plante régulièrement ( mais de façon aléatoire ) à la > ligne > suivante : > Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence > vlvl_absentes.mdb") > J'obtiens le message suivant : > erreur d'exécution '3050' impossible de vérouiller le fichier > Pour info ma BDD comporte, hormis la table déjà mentionnée, une table > liée > d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne > fais pas > appel dans mon code. > Faut il que je joue sur les paramètres access outils / options / > avancé : > mode d'ouverture par défaut > vérouillage par défaut > ou que je modifie mon code ? > > Merci. > > Une partie de mon code ci dessous : > > Sub ajouttrous_par_access() > > > Dim dbVlAbsentes As Database > Dim dtHistoVlAbsentes As Recordset > Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database Dim dtHistoVlAbsentes As DAO.Recordset Dim dtRapportAbsenceVl As DAO.Recordset
> Dim dDate As Date > Dim nbLignesJour As Integer > Dim ligneJour As Integer > Dim dtrequete As String > Dim dtrequeteComplet As String > Dim rq As Recordset > Dim rqComplet As Recordset > Dim codport As String > Dim l As Integer > > Application.ScreenUpdating = False > > > ligne où ça plante : > Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence > vlvl_absentes.mdb") > > Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes", > dbOpenDynaset) > Set dtRapportAbsenceVl > > dbVlAbsentes.OpenRecordset("rapport_absence_vl", > dbOpenDynaset) > > Do Until dtHistoVlAbsentes.EOF > > codport = dtHistoVlAbsentes![codehisto] > dDate = dtHistoVlAbsentes![dateprochainevl] > dDate = Format(dDate, "mm/dd/yyyy") > dtrequeteComplet = " Select codehisto,codebip, > libellé,périodicité,datemax,dateprochainevl,dateprochaineestimative,délaimoyenobservé,datethéoriquedemiseàdisposition,valorisateur,commentaires,fermés > from histovlabsentes where codehisto ='" & codport & "' and > dateprochainevl = #" & dDate & "#"
Mon code est dans excel, je lance la macro d'une session excel.
Merci.
"3stone" a écrit :
Salut,
Talliac wrote:
> J'exécute une macro à partir d'excel.
La code est dans Access ou dans Excel ?
> Cette macro balaye les enregistrements d'une table access (
> histovlabsentes
> ) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des
> enregistrements
> dans un fichier excel.
> Or la macro plante régulièrement ( mais de façon aléatoire ) à la
> ligne
> suivante :
> Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence
> vlvl_absentes.mdb")
> J'obtiens le message suivant :
> erreur d'exécution '3050' impossible de vérouiller le fichier
> Pour info ma BDD comporte, hormis la table déjà mentionnée, une table
> liée
> d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne
> fais pas
> appel dans mon code.
> Faut il que je joue sur les paramètres access outils / options /
> avancé :
> mode d'ouverture par défaut
> vérouillage par défaut
> ou que je modifie mon code ?
>
> Merci.
>
> Une partie de mon code ci dessous :
>
> Sub ajouttrous_par_access()
>
>
> Dim dbVlAbsentes As Database
> Dim dtHistoVlAbsentes As Recordset
> Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database
Dim dtHistoVlAbsentes As DAO.Recordset
Dim dtRapportAbsenceVl As DAO.Recordset
> Dim dDate As Date
> Dim nbLignesJour As Integer
> Dim ligneJour As Integer
> Dim dtrequete As String
> Dim dtrequeteComplet As String
> Dim rq As Recordset
> Dim rqComplet As Recordset
> Dim codport As String
> Dim l As Integer
>
> Application.ScreenUpdating = False
>
>
> ligne où ça plante :
> Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence
> vlvl_absentes.mdb")
>
> Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes",
> dbOpenDynaset)
> Set dtRapportAbsenceVl > > dbVlAbsentes.OpenRecordset("rapport_absence_vl",
> dbOpenDynaset)
>
> Do Until dtHistoVlAbsentes.EOF
>
> codport = dtHistoVlAbsentes![codehisto]
> dDate = dtHistoVlAbsentes![dateprochainevl]
> dDate = Format(dDate, "mm/dd/yyyy")
> dtrequeteComplet = " Select codehisto,codebip,
> libellé,périodicité,datemax,dateprochainevl,dateprochaineestimative,délaimoyenobservé,datethéoriquedemiseàdisposition,valorisateur,commentaires,fermés
> from histovlabsentes where codehisto ='" & codport & "' and
> dateprochainevl = #" & dDate & "#"
Mon code est dans excel, je lance la macro d'une session excel.
Merci.
"3stone" a écrit :
Salut,
Talliac wrote: > J'exécute une macro à partir d'excel.
La code est dans Access ou dans Excel ?
> Cette macro balaye les enregistrements d'une table access ( > histovlabsentes > ) d'une BDD ( vl_absentes.mdb ) et recopie le contenu des > enregistrements > dans un fichier excel. > Or la macro plante régulièrement ( mais de façon aléatoire ) à la > ligne > suivante : > Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence > vlvl_absentes.mdb") > J'obtiens le message suivant : > erreur d'exécution '3050' impossible de vérouiller le fichier > Pour info ma BDD comporte, hormis la table déjà mentionnée, une table > liée > d'une BDD externe multiutilisateurs oracle, mais à laquelle je ne > fais pas > appel dans mon code. > Faut il que je joue sur les paramètres access outils / options / > avancé : > mode d'ouverture par défaut > vérouillage par défaut > ou que je modifie mon code ? > > Merci. > > Une partie de mon code ci dessous : > > Sub ajouttrous_par_access() > > > Dim dbVlAbsentes As Database > Dim dtHistoVlAbsentes As Recordset > Dim dtRapportAbsenceVl As Recordset
Préférable :
Dim dbVlAbsentes As DAO.Database Dim dtHistoVlAbsentes As DAO.Recordset Dim dtRapportAbsenceVl As DAO.Recordset
> Dim dDate As Date > Dim nbLignesJour As Integer > Dim ligneJour As Integer > Dim dtrequete As String > Dim dtrequeteComplet As String > Dim rq As Recordset > Dim rqComplet As Recordset > Dim codport As String > Dim l As Integer > > Application.ScreenUpdating = False > > > ligne où ça plante : > Set dbVlAbsentes > > OpenDatabase("P:Commun_RPCREFERENTIELBASE_HISTOabsence > vlvl_absentes.mdb") > > Set dtHistoVlAbsentes = dbVlAbsentes.OpenRecordset("histovlabsentes", > dbOpenDynaset) > Set dtRapportAbsenceVl > > dbVlAbsentes.OpenRecordset("rapport_absence_vl", > dbOpenDynaset) > > Do Until dtHistoVlAbsentes.EOF > > codport = dtHistoVlAbsentes![codehisto] > dDate = dtHistoVlAbsentes![dateprochainevl] > dDate = Format(dDate, "mm/dd/yyyy") > dtrequeteComplet = " Select codehisto,codebip, > libellé,périodicité,datemax,dateprochainevl,dateprochaineestimative,délaimoyenobservé,datethéoriquedemiseàdisposition,valorisateur,commentaires,fermés > from histovlabsentes where codehisto ='" & codport & "' and > dateprochainevl = #" & dDate & "#"