Message "varible object ou bloc wiht non défini" , A l'aide
cs_zazaclem
Messages postés5Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention20 août 2003
-
20 août 2003 à 10:27
cs_zazaclem
Messages postés5Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention20 août 2003
-
20 août 2003 à 11:36
Zazaclem J'ai un problème avec la version finale de ma base de données. Par moment sans savoir pourquoi , elle plante un utilisateur avec le message suivant " Variable object ou bloc with non défini". Et là obliger de redémarrer la base. J'ai besoin d'aide si quelqu'un a déjà eu ce problème, qu'il me fasse signe. Merci
A voir également:
Message "varible object ou bloc wiht non défini" , A l'aide
cs_DeathAngel
Messages postés117Date d'inscriptionvendredi 12 avril 2002StatutMembreDernière intervention13 avril 2007 20 août 2003 à 10:45
Salut,
personnellement, j'ai ce problème dans 4 cas de figure :
1) microcoupure réseau -> base indisponible
2) lorsque le code a provoqué une erreur non gérée qui entraine l'arrêt des macros, toutes les variables globales sont vidées, du coup la variable contenant ma BD est à nothing
3) le fichier system.MDW n'est pas dispo, donc la base n'est pas chargée.
4) Lorsque des références sont manquantes (le plus fréquent des 4 cas).
cs_zazaclem
Messages postés5Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention20 août 2003 20 août 2003 à 11:09
Zazaclem Merci pour tes renseignements, je t'envoie mon code, c'est sur cette partie qu'il génère ce message
Private Sub Command247_Click()
On Error GoTo Err_Command247_Click
Dim defaut As Boolean
defaut = False
If flag Then
Else
If IsNull(Me![Text133]) Or IsNull(Me![Combo217]) Or IsNull(Me![Text215]) Then
MsgBox "Impossible d'enregistrer" & Chr(13) & " Vérifiez que les champs suivants sont correctement remplis :" _
& Chr(13) & Chr(9) & "N°Lot Fournisseur" & Chr(13) & Chr(9) & "Auteur de l'analyse" & Chr(13) & Chr(9) & "Motif du retour", vbCritical
defaut = True
GoTo Exit_Command247_Click
ElseIf IsNull(Me.Label56) Then
MsgBox "Attention" & Chr(13) & "Vous n'avez pas sélectionner de TYPE DE PRODUIT" & Chr(13) & "Veuillez recommencer votre saisie", vbCritical
defaut = True
GoTo Exit_Command247_Click
Else
Dim rst As Recordset 'pour l'analyse
Dim refu As Recordset 'pour le refus
Dim dbs As Database
Dim table As String
Dim index As Integer
Set dbs = CurrentDb
'######################### AJOUT DANS LA TABLE ANALYSE ########################
Set rst = dbs.OpenRecordset("ANALYSE")
If rst.RecordCount <> 0 Then 'si la table n'est pas vide'
rst.MoveLast 'se positionner sur le dernier enregistrement
End If
rst.AddNew 'on autorise un nouvel enregistrement
'on récupère les champs saisie dans le formulaire
rst![PN] = Me![Text35]
rst![DATECREATION] = Me![Text33]
rst![QUANTITE_DEFAUT] = Me![Text129]
rst![TYPEPRODUIT] = Me![Label56].ListIndex
rst![PROGRAMME] = Me![Label56].ItemData(rst![TYPEPRODUIT])
PROGRAMME = rst![PROGRAMME]
rst![TYPEDEFAUT] = Me![Frame291]
rst![LIEUDEFAUT] = Me![Frame87]
rst![N°MODULE] = Me![Text125]
rst![N°RETOURCLIENT] = Me![Text127]
rst![FOURNISSEUR] = Me![Text39]
rst![N°LOTFOURNISSEUR] = Me![Text133]
rst![ANALYSTE] = Me![Combo217]
rst![MOTIFRETOUR] = Me![Text215]
rst![TESTCHAUD] = Me![Check194]
rst![TESTFROID] = Me![Check198]
rst![TESTAMBIANT] = Me![Check200]
rst![TESTMECANIQUE] = Me![Check206]
rst![TESTSIMU] = Me![Check208]
rst![TESTMODULE] = Me![Check210]
rst![LOTPURGES] = Me![Cocher394]
Me![Text31] = rst![N°FAR] 'on récupère le numéro de far
'######################### AJOUT DANS LA TABLE REFUS ########################
Set refu = dbs.OpenRecordset("REFUS")
If refu.RecordCount <> 0 Then 'si la table est vide'
refu.MoveLast 'se positionner sur le dernier enregistrement
End If
refu.AddNew 'on autorise un nouvel enregistrement
refu![N°FAR] = rst![N°FAR]
refu![LIEUDEFAUT] = Me![Cadre386]
refu![DATEENTREE] = Me![Texte338]
refu![QTEPCSLIGNE] = Me![Texte342]
refu![QTEPCSMAGASIN] = Me![Texte344]
refu![ACTION] = Me![Texte393]
refu![DESTINATAIRE] = Me![Modifiable340]
refu![DECISION] = Me![Texte395]
refu![DATECOUT] = Me![Texte398]
refu![DESCRIPTION] = Me![Texte400]
refu![TOTAL] = Me![Texte402]
refu![PROGRAMME] = rst![PROGRAMME]
refu![DATESORTIE] = Me![Texte389]
'############################## AJOUT DES INFORMATIONS DANS LA TABLE REPONSE_FOURNISSEUR ###############################'
Dim rep As Recordset
Set rep = dbs.OpenRecordset("REPONSE_FOURNISSEUR")
If rep.RecordCount <> 0 Then 'si la table n'est pas vide'
rep.MoveFirst 'se positionner sur le dernier enregistrement
End If
rep.AddNew 'on autorise un nouvel enregistrement
'on récupère les champs saisie dans le formulaire
rep![N°FAR] = Me![Text31]
rep![DEMANDEUR] = Me![Modifiable373]
rep![TRACKING_SUPPLIER] = Me![Texte363]
rep![DATEENVOI] = Me![Texte361]
rep![CONTACT] = Me![Modifiable371]
rep![COMMODITY] = Me![Modifiable365]
rep![QTEANALYSE] = Me![Texte378]
rst.Update 'mise à jour de la table
refu.Update 'mise à jour de la table
rep.Update 'mise à jour de la table
MsgBox ("Sauvegarde réussie")
flag = True
Me!Command6.Enabled = True
Me!Command7.Enabled = True
Me!Command8.Enabled = True
Me!Command9.Enabled = True
End If
End If
Exit_Command247_Click:
If defaut = False Then
rst.Close
refu.Close
rep.Close
End If
Exit Sub
cs_DeathAngel
Messages postés117Date d'inscriptionvendredi 12 avril 2002StatutMembreDernière intervention13 avril 2007 20 août 2003 à 11:33
Bon, a première vue, je vois qu'il te manque un truc pour débogger :
sous ton Resume Exit_Command247_Click, rajoute
Resume
Puis, tu mets un point d'arrêt sur
Resume Exit_Command247_Click
Lorsque tu as ton erreur, le prog va se mettre en pause.
Là, tu mets ton curseur sur le Resume que l'on vient de rajouter, et tu fais CTRL+F9 (pour définir la ligne de commande suivante), ensuite tu tapes F8 pour exécuter un pas à pas, et tu vas te retrouver sur la ligne de code qui pose problème.
Parce que honnêtement, ne sachant pas avec exactitude sur quelle ligne ton appli plante, je peux pas t'aider.
Mais si je dois me fier à mon feeling, je pense que ça pète sur un Set.
Donne-moi la ligne qui te pose problème, on verra ce qu'on peut faire ^_^