Access 2010 en boucle par le biais du jeu d'enregistrements et de changer de sous-formulaire champ si le champ est vide
J'ai un bouton de commande sur un mainform que lorsque l'utilisateur clique dessus exécute une boucle à travers un champ sur l'affichage des enregistrements du sous-formulaire et les changements de la valeur de toutes les données en la matière, afin de correspondre à la valeur d'un unbound zone de liste déroulante sur la mainform. Il est de sorte que les utilisateurs peuvent avoir l'option de mise à jour de plusieurs dossiers sur le sous-formulaire à la fois. Le code fonctionne très bien, mais serait plus utile si elle pourrait être modifié pour ne mettre à jour le champ si elle est vierge pour chaque enregistrement. En d'autres termes je veux vérifier si chaque enregistrement a un vide pour le champ, puis de renseigner sur la base de la boîte combo et passer à l'enregistrement suivant si ce champ n'est pas vide ou null.
C'est ce à quoi ressemble le code maintenant. Je ne suis pas très bon avec access VBA et je ne suis pas sûr si je devrais utiliser des "Cas" ou "Si" ou comment faire exactement pour l'utiliser avec le code ci-dessous.
Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Set rs = Me.Skid1.Form.RecordsetClone
With rs
.MoveFirst
Do While Not .EOF
.Edit
![Release Code] = Me.code_updater.Value
.Update
.MoveNext
Loop
End With
Set rs = Nothing
End Sub
J'ai essayé ceci, mais il semblait seulement de mettre à jour certains des enregistrements vides (très étrange), je suis assez sûr de ses proches mais pas tout à fait.
Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Dim fld As Field
Set rs = Me.Skid1.Form.RecordsetClone
With rs
.MoveFirst
Do While Not .EOF
For Each fld In .Fields
If IsNull(fld.Value) Then
.Edit
![Release Code] = Me.code_updater.Value
.Update
End If
.MoveNext
Next
Loop
End With
Set rs = Nothing
End Sub
- Vraiment votre meilleur pari est de parcourir le code. Cliquez dans la marge contre sur des lignes de code et vous aurez une ligne jaune. Maintenant exécuter votre code et il s'arrête à la ligne jaune. Vous pouvez survoler les variables et leurs valeurs. Appuyez sur F8 pour exécuter la ligne suivante. De cette façon, vous pouvez prendre l'aide de votre code et de voir ce qu'il fait, et vous aurez une plus grande certitude quant à ce qui se passe. En d'autres termes "semble être la seule à mettre à jour les enregistrements en blanc" n'est pas assez pour nous d'aller sur - vous besoin de faire un peu plus d'enquête.
Vous devez vous connecter pour publier un commentaire.
Cela fait-il une différence? il vérifie les champs vides ainsi que les champs NULL - oui, ils sont deux choses différentes!
fld.Value = ""
et de se débarrasser de laIsNull(fld.Value) Or
mais le code s'arrete là.If fld.Value = "" then
Je soupçonne que vous voulez
Je vous suggère de modifier votre table et assurez-vous qu'il n'acceptera pas de chaînes de longueur nulle par réglage de l'Autoriser une Longueur de Zéro propriété pour les types de données texte.