Comment rafraichir données BDD Access en VBA?

Résolu/Fermé
little_titi Messages postés 242 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 23 novembre 2009 - 1 déc. 2008 à 10:27
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 4 déc. 2008 à 19:24
Bonjour,

J'ai un petit souci : j'ai crée un formulaire sous Access 2003 et mes données s'enregistrent bien en base lorsque je clic sur mon bouton 'valider' à la fin de la saisie. Seulement je souhaiterai pouvoir rafraichir l'affichage des données en table lorsque j'effectue ma requête. Comment écrire cela en VBA?

En fait mes informations sont bien présentes en base mais n'apparaissent plus dès que je fais un contrôle sur la saisie des champs du formulaire. Fonctionnement d'ailleurs assez étrange puisque, si je rajoute une requête en dehors de ma boucle de contrôle pour vérifier que mes infos sont bien insérées, je retrouve les info de ma requête ajouté et de ma requête voulu, tout se fait donc correctement...Sauf si je rajoute cette foutue boucle de controle...bizarre...

Des idées? Merci.

Je vous met le bout de code en question :

Private Sub btValiderCommande_Click()
On Error GoTo Err_btValiderCommande_Click
Dim SQL As String
Dim NumAchatContrat As String

If (Design.Value = "" Or Fourni.Value = "") Then Ce code pose problème
MsgBox "Veuillez remplir les champs obligatoires !!!"

If Contrat.Value = True Then Cette boucle marche mais si ajout de la vérif précédente alors données n'apparaissent plus en base mais sont présentes
'Si la case Contrat est cochée on insère l'abonnement pour les 12 mois de l'année en table Commande'
For i = 1 To 12
SQL = "INSERT INTO Commande (Désignation, Fournisseur) VALUES (Design.Value & "','" & Fourni.Value & "')"
CurrentDb.Execute SQL
Next i
Else
'Insertion des champs du formulaire SaisieCommande en table Commande si la case contrat n'est pas cochée'
SQL = "INSERT INTO Commande (Désignation, Fournisseur) VALUES ('" & Design.Value & "','" & Fourni.Value & "')"
CurrentDb.Execute SQL
End If
End If

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 déc. 2008 à 10:43
Bonjour,

Je ne sais pas exactement ce que tu veux faire mais il me semble que si les champs "Design" et "Fourni" ne sont pas remplis, le reste du code ne devraient pas s'exécuter (MsgBox "Veuillez remplir les champs obligatoires !!!" ).

je propose ceci :

If (Design.Value = "" Or Fourni.Value = "") Then
   MsgBox "Veuillez remplir les champs obligatoires !!!" 
   Me.Design.SetFocus   'L'un des champs obligatoires prend le focus
   Exit Sub    'On sort de la procédure
End If
'La suite du code


;o)
0
little_titi Messages postés 242 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 23 novembre 2009 7
4 déc. 2008 à 17:09
Salut Polux ! Merci pour ta réponse !

Ben oui est la c'etait bien le souci !! Car quand mes champs Design et Fourni étaient vides le message apparaissait comme il faut, mais si ils étaient rempli eh bien les info étaient enregistrées en base (car mon compteur automatique s'incrémentait bien) mais n'apparaissait pas à l'écran!!!

Finalement maintenant ça marche, mais j'ai du faire un controle global sur l'ensemble des champs de mon formulaire (donc tant que au moins un des champs est vide on affiche une erreur) et j'ai rajouter un contrôle sur chaque champ prérempli en vérifiant sur une perte de focus. La ça fonctionne mais sinon c'est à n'y rien comprendre, j'avais montré mon code à d'autres personnes qui me disaient que ça aurait du marché ma première méthode et qu'ils ne voyaient pas d'où venait le problème...

Enfin Merci quand même !
;)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 déc. 2008 à 19:24
Salut,

Content que tu aies résolu ton problème.

Bonne continuation.

;o)
0