|
|
|
|
Bonjour,
Voilà mon problème : Je cherche à créer une requête qui me permette de mettre à jour les champs d'une table MAIS à la condition que dans mon formulaire, les zone destinées à mettre à jour la table com:prennent une chaine de texte. En résumé, certaines zones de texte de mon formulaire seront remplies et je souhaite que ma requête ne mette à jour (à l'aide d'un seul bouton "valider modifications") que les champs concernés.
Mon formulaire est en fait un formulaire de modification de fiche "Client" (coordonnées, profil, etc.).
Lorsque j'ouvre mon formulaire, une table temporaire est créée. Celle-ci regroupe les champs de ma table principale (Table Clients). J'ai souhaité créer cette table temporaire afin d'éviter les messages d'erreur du type "La Base Client est déjà utilisée par un autre utilisateur ou un application" (lorsque j'exécute une requête de mise à jour, et même si je suis en mode partagé). Ces données temporaires, qui s'affichent dans mon formulaire, sont uniquement destinées à la consultation (pour me permettre de connaître les éléments à modifier, etc.).
Puis, sur mon formulaire, se trouvent différentes zones de texte destinées à apporter les futures modifications (comme "Nouveau Nom Client", "Nouveau prénom client", "Nouvelle adresse client", etc.).
Enfin, mon formulaire comprend un bouton "VALIDER LES MODIFICATIONS". Et c'est là que commence mon problème ! Je n'arrive pas à trouver la solution pour que, lorsque je clic sur le bouton VALIDER, seuls les éléments comprenant une chaîne de texte soient mis à jour dans ma BASE CLIENTS (et non pas dans ma table temporaire).
Qui peut donc m'apporter la solution à ce problème qui me prend un temps monstre !
Merci à l'avance à vous autres,
Bien cordialement,
Patrice
Configuration: Windows XP Internet Explorer 7.0
Salut!
Dim chSQL as String 'variable qui va te permettre de stocker ta ligne SQL
Set db = CurrentDb()
chSQL = "UPDATE [ici tu mets ta requete SQL avec les champs qui t'interesse]..."
Set MyQuery= db.OpenRecordset(chSQL, dbOpenSnapshot) 'Creation de la requete
Les différents champs de ta requetes seront accessibles par la fonction MyQuery(i)de type Field, i étant le numéro du champs. Si mes souvenirs sont justes, par exemple, pour obtenir le type de données dans le champs 1 utilise le code suivant MsgBox MyQuery(1).Type Si tu ne maitrise pas le SQL, je te conseille vivement de créer ta requête via l'interface 'Nouvelle requetes' d'Access, puis de passer l'affichage en mode SQL. Il ne te reste plus qu'a mettre des variables où tu veux dans ton code VB... a+ |
Salut PBGunner,
|
Salut,
|
Salut,
|