recherche dans collection Forms

recherche dans collection Forms - VB/VBA/VBS - Programmation

Marsh Posté le 14-05-2004 à 09:50:09    

Bonjour,
voici mon code (plutôt simple) qui doit me dire si un formulaire éxiste dans ma base ou pas :

Code :
  1. Function FormExist(NomForm As String) As Boolean
  2. Dim F As Form
  3. For Each F In Forms     
  4. If F.Name = NomForm Then: FormExist = True
  5. Next F
  6. End Function


quand j'execute cette fonction en "pas à pas détaillé", access passe directement de  :
For Each F In Forms
à
End Function
il ne lit pas la condition If ... et me retourne toujours "False" (même quand ça devrait être "True" )  :heink:  
 
Qu'est-ce que j'ai loupé ?    :??:

Reply

Marsh Posté le 14-05-2004 à 09:50:09   

Reply

Marsh Posté le 14-05-2004 à 10:30:16    

je viens de trouver d'où vient le pbm : La collection Forms ne représente que la liste des formulaires ouverts. Comme mes formulaires sont tous fermés au moment où ce code est lancé, access ne les "voit" pas.
 
sous Access 2000 ou plus, on peut contourner le pbm en utilisant : CurrentProject.AllForms. Mais je suis sous 97.  :(

Reply

Marsh Posté le 14-05-2004 à 11:17:18    

je crois en effet ... je modifie mon code en ce sens.
merci ese-aSH.

Reply

Marsh Posté le 14-05-2004 à 11:21:02    

voici le code final (qui marche!) :

Code :
  1. Function FormExist(NomForm As String) As Boolean
  2. On Error GoTo onerror_Err
  3. DoCmd.OpenForm (NomForm), , , , , acHidden
  4.     FormExist = True
  5. DoCmd.Close acForm, FrmNOm, acSaveYes
  6. onerror_Err:
  7.     If Err.Number = 2102 Then: Exit Function
  8. End Function

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed