Vérification de champs libres ACCESS / VBA

Fermé
erwan51 Messages postés 627 Date d'inscription mardi 24 juillet 2001 Statut Contributeur Dernière intervention 4 juillet 2014 - 20 juin 2003 à 11:22
blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024 - 21 juin 2003 à 22:37
Bonjour à tous,

Soit une base de 600 enregistrements avec numéro, nom, prénom et photo.

J'aimerai sous Access 2000 à l'ouverture d'un formulaire rechercher tous les enregistrements dont le champ prénom est vide.

Comment faire ceci en VBA?

Pensez vous que cela soit lourd en terme de temps à chaque ouverture du formulaire ?

D'avance merci
Erwan51

1 réponse

blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024 3 300
20 juin 2003 à 12:43
Salut,

tu crées un recordset sur ta table dont le source est une requête select * from table where prenom = ''

Ca peut être lourd... à l'ouverture, mais pas trop, si ton formulaire est ouvert au lancement de l'appli.

C'est pour faire quoi ? car faire une requête sur les champs vides est une chose, mais que fait-on du résultat ?

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
erwan51 Messages postés 627 Date d'inscription mardi 24 juillet 2001 Statut Contributeur Dernière intervention 4 juillet 2014 80
20 juin 2003 à 12:52
Et si je veux faire une recherche sur les champs qui ne comprennent pas de photo (objet OLE) ??

Merci
0
blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024 3 300
20 juin 2003 à 12:58
WHERE photo is null
mais c'est du SQL pur... ;-)

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
erwan51 Messages postés 627 Date d'inscription mardi 24 juillet 2001 Statut Contributeur Dernière intervention 4 juillet 2014 80 > blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024
20 juin 2003 à 14:24
par contre je ne connais pas trop le principe des recordset
il faut quelque chose de ce style la sous VBA ?

MyQuery = "select * from table where Photographie is null"
Set DataBaseBiometry = OpenDatabase(PATH, False, False, "")
Set DataBaseTable = DataBaseBiometry.OpenRecordset(MyQuery)

et ensuite il ne reste plus qu'a exploiter le contenu de DataBaseTable ??
0
blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024 3 300 > blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024
20 juin 2003 à 15:06
Tiens :


Private Sub B_Cre_Version_Click()
' Création d'une version
Dim Db As Database
Dim Rs As Recordset
Dim Num_produit As Integer
Dim StrSql As String
If IsNull(Prod_Liste_Prod.Column(0)) Then
MsgBox "Saisissez un produit !!!", vbCritical
GoTo Fin:
End If
If IsNull(Choix_Cre_Version.Value) Then
MsgBox "Saisissez une version !!!", vbCritical
GoTo Fin:
End If
Num_produit = Prod_Liste_Prod.Column(1)
Set Db = CurrentDb
' On recherche si la version n'existe pas
Set Rs = Db.OpenRecordset("Diffusion", dbOpenForwardOnly)
With Rs
Do While Not .EOF
If Rs!Prod_Num = Num_produit And Rs!Prod_Vers = Choix_Cre_Version.Value Then
MsgBox "La version existe déjà !!!", vbCritical
GoTo Fin:
End If
.MoveNext
Loop
End With
Rs.Close
' On crée la version
Set Rs = Db.OpenRecordset("Diffusion", dbOpenDynaset)
With Rs
.AddNew
!Prod_Num = Num_produit
!Prod_Vers = Choix_Cre_Version.Value
!Support = Choix_Cre_Support.Value
.Update
.Requery
End With
Prod_Liste_Prod_Change
Choix_Cre_Version.Value = ""
Choix_Cre_Support.Value = ""
MsgBox "La version est créée..."
Fin:
Rs.Close
End Sub


C'est pour ajouter une ligne à la table "diffusion" à partir d'éléments choisis dans une liste déroulante.

On teste qu'il y a bien des choix de fait, ensuite on balaye la table pour voir si ce qu'on veut ajouter n'existe pas, dans ce cas, on ajoute une ligne...

Avec ce code tu devrais pouvoir (tout) faire moyennant adaptation...

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
erwan51 Messages postés 627 Date d'inscription mardi 24 juillet 2001 Statut Contributeur Dernière intervention 4 juillet 2014 80 > blux Messages postés 26311 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 30 septembre 2024
20 juin 2003 à 15:12
J'ai réussi ce que je voulais faire, merci Blux.

Tiens au cas ou tu saches ca :
Je sais que pour maximiser un formulaire il faut faire DoCmd.maximise
mais si c'est la fenêtre access et non plus le formulaire la ca ne marche pas.

Par exemple, ma base fait la moitié de l'écran et quand le user ouvre un formulaire j'aimerai que access prenne l'écran entier...

Merci encore
Erwan51
0