OVH Cloud OVH Cloud

Problème complexe

3 réponses
Avatar
Baptiste
J'ai un problème assez complexe...
Je souhaite optimiser le chargement de ma base de donnée pour cela, je veux
précharger de manière masquer une partie des formulaires que j'utilise le
plus souvent au démarrage de l'application. (démarrage plus long mais
chargement plus rapide pendant l'utilisation)


J'ai récupérer un code VB dans un bouquin mais je rencontre une erreur.
Le principe est le suivant, j'ai une table "chargement"qui contient un champ
unique dans lequel je place les noms des formulaires à charger au démarrage
(sans erreur, j'en suis sur...).
Le formulaire "frmSplash" s'affiche pendant la durée du chargement.
Deux fonctions sont associées à cet evenement :

Function acbOpenForm
et
Function acbCloseForm, elle gérer l'ouverture et le mode caché des formulaires


Dans mon menu de démarrage, je place le code evenmentiel suivant :

----------------------------------------------------------------
Option Compare Database
Option Explicit

Const acbPreloadTable = "chargement"
Const acbSplashForm = "frmSplash"

----------------------------------------------------------------
Private Sub Form_Close()

' Unload preloaded forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

Set db = CurrentDb()

' Unload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do Until rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.Close acForm, varFormName
End If
rst.MoveNext
Loop

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub

-------------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

' Preload forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

DoCmd.OpenForm acbSplashForm


Set db = CurrentDb()

' Preload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do While Not rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.OpenForm FormName:=varFormName, _
WindowMode:=acHidden, OpenArgs:="StayLoaded"
End If
rst.MoveNext
Loop

DoCmd.Close acForm, acbSplashForm

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub


Merci de votre aide !

3 réponses

Avatar
Daniel Carollo
Bonjour Baptiste!

Etes-vous bien sur d'avoir un champ qui s'appelle FormName dans la table en
question?


--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Baptiste" wrote in message
news:
J'ai un problème assez complexe...
Je souhaite optimiser le chargement de ma base de donnée pour cela, je
veux

précharger de manière masquer une partie des formulaires que j'utilise le
plus souvent au démarrage de l'application. (démarrage plus long mais
chargement plus rapide pendant l'utilisation)


J'ai récupérer un code VB dans un bouquin mais je rencontre une erreur.
Le principe est le suivant, j'ai une table "chargement"qui contient un
champ

unique dans lequel je place les noms des formulaires à charger au
démarrage

(sans erreur, j'en suis sur...).
Le formulaire "frmSplash" s'affiche pendant la durée du chargement.
Deux fonctions sont associées à cet evenement :

Function acbOpenForm
et
Function acbCloseForm, elle gérer l'ouverture et le mode caché des
formulaires



Dans mon menu de démarrage, je place le code evenmentiel suivant :

----------------------------------------------------------------
Option Compare Database
Option Explicit

Const acbPreloadTable = "chargement"
Const acbSplashForm = "frmSplash"

----------------------------------------------------------------
Private Sub Form_Close()

' Unload preloaded forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

Set db = CurrentDb()

' Unload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do Until rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.Close acForm, varFormName
End If
rst.MoveNext
Loop

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub

-------------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

' Preload forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

DoCmd.OpenForm acbSplashForm


Set db = CurrentDb()

' Preload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do While Not rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.OpenForm FormName:=varFormName, _
WindowMode:¬Hidden, OpenArgs:="StayLoaded"
End If
rst.MoveNext
Loop

DoCmd.Close acForm, acbSplashForm

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub


Merci de votre aide !




Avatar
Fred
Charger les formulaires et les rendre invisibles, c'est facile à utiliser,
quand tu veux "ouvrir" un formulaire, tu le rends visible... ni vu ni
connu...

Fred
"Baptiste" a écrit dans le message de
news:
J'ai un problème assez complexe...
Je souhaite optimiser le chargement de ma base de donnée pour cela, je
veux

précharger de manière masquer une partie des formulaires que j'utilise le
plus souvent au démarrage de l'application. (démarrage plus long mais
chargement plus rapide pendant l'utilisation)


J'ai récupérer un code VB dans un bouquin mais je rencontre une erreur.
Le principe est le suivant, j'ai une table "chargement"qui contient un
champ

unique dans lequel je place les noms des formulaires à charger au
démarrage

(sans erreur, j'en suis sur...).
Le formulaire "frmSplash" s'affiche pendant la durée du chargement.
Deux fonctions sont associées à cet evenement :

Function acbOpenForm
et
Function acbCloseForm, elle gérer l'ouverture et le mode caché des
formulaires



Dans mon menu de démarrage, je place le code evenmentiel suivant :

----------------------------------------------------------------
Option Compare Database
Option Explicit

Const acbPreloadTable = "chargement"
Const acbSplashForm = "frmSplash"

----------------------------------------------------------------
Private Sub Form_Close()

' Unload preloaded forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

Set db = CurrentDb()

' Unload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do Until rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.Close acForm, varFormName
End If
rst.MoveNext
Loop

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub

-------------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

' Preload forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

DoCmd.OpenForm acbSplashForm


Set db = CurrentDb()

' Preload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do While Not rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.OpenForm FormName:=varFormName, _
WindowMode:¬Hidden, OpenArgs:="StayLoaded"
End If
rst.MoveNext
Loop

DoCmd.Close acForm, acbSplashForm

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub


Merci de votre aide !




Avatar
Baptiste
Super, t'es une star, un voyant ! c'est exactement la petite erreur que j'ai
faite !

Merci beaucoup !!!

Baptiste


Bonjour Baptiste!

Etes-vous bien sur d'avoir un champ qui s'appelle FormName dans la table en
question?


--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Baptiste" wrote in message
news:
J'ai un problème assez complexe...
Je souhaite optimiser le chargement de ma base de donnée pour cela, je
veux

précharger de manière masquer une partie des formulaires que j'utilise le
plus souvent au démarrage de l'application. (démarrage plus long mais
chargement plus rapide pendant l'utilisation)


J'ai récupérer un code VB dans un bouquin mais je rencontre une erreur.
Le principe est le suivant, j'ai une table "chargement"qui contient un
champ

unique dans lequel je place les noms des formulaires à charger au
démarrage

(sans erreur, j'en suis sur...).
Le formulaire "frmSplash" s'affiche pendant la durée du chargement.
Deux fonctions sont associées à cet evenement :

Function acbOpenForm
et
Function acbCloseForm, elle gérer l'ouverture et le mode caché des
formulaires



Dans mon menu de démarrage, je place le code evenmentiel suivant :

----------------------------------------------------------------
Option Compare Database
Option Explicit

Const acbPreloadTable = "chargement"
Const acbSplashForm = "frmSplash"

----------------------------------------------------------------
Private Sub Form_Close()

' Unload preloaded forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

Set db = CurrentDb()

' Unload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do Until rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.Close acForm, varFormName
End If
rst.MoveNext
Loop

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub

-------------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

' Preload forms

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varFormName As Variant

On Error GoTo HandleErr

DoCmd.OpenForm acbSplashForm


Set db = CurrentDb()

' Preload the forms listed in zstblPreloadForms
Set rst = db.OpenRecordset(acbPreloadTable, dbOpenSnapshot)

Do While Not rst.EOF
varFormName = rst!FormName

// l'erreur vient d'ici, il dit erreur 3265",élement non trouvé

// dans cette collection

If Not IsNull(varFormName) Then
DoCmd.OpenForm FormName:=varFormName, _
WindowMode:¬Hidden, OpenArgs:="StayLoaded"
End If
rst.MoveNext
Loop

DoCmd.Close acForm, acbSplashForm

ExitHere:
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Exit Sub

HandleErr:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
, "Form Open"
Resume ExitHere
Resume
End Sub


Merci de votre aide !