Comment rafraichir données BDD Access en VBA?
Résolu
little_titi
Messages postés
242
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Comment rafraichir données BDD Access en VBA?
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
2 réponses
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 :
;o)
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)
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 !
;)