[access] Mettre des champs à jour à partir de variables

Mettre des champs à jour à partir de variables [access] - VB/VBA/VBS - Programmation

Marsh Posté le 23-04-2009 à 18:03:44    

Bonjour à tous et à toutes
 
Je me mets petit à petit à Acess et VBA
 
Voici mon souci
 
J'ai une table Matériels avec différents champs : MatNom, MatNbre, MatLong, MatLarg, etc .....
 
Je veux remplir certains champs de cette table à partir d'un "catalogue de matériels"
 
Voici comment je m'y prends
 
Depuis mon formulaire "matériels", j'appelle un autre formulaire "Catalogue".
 
Je navigue dans mon catalogue et une fois le matériel du catalogue trouvé, je clique sur un bouton pour définir un certain nombre de variables (Nom, longeur, largeur par exemple)
 
Ca j'y arrive, car le code ci dessous me renvoie bien la valeur correpondant à l'enregistrement sélectionné (j'ai pôur le moment définit qu'une seule valeur mais il y en aura une quinzaine à terme)
 
Private Sub Commande10_Click()
Dim strLong As String
strLong = CataLong
MsgBox "longeur =" & strLong
 
End Sub
 
 
Ce sur quoi je bute c'est l'intégration de cette variable strLong dans le champ MATLong duquel je suis parti au début .....
 
Si quelqu'un a une piste à me donner, je suis preneur
 
Merci d'avance
 
Daniel

Reply

Marsh Posté le 23-04-2009 à 18:03:44   

Reply

Marsh Posté le 23-04-2009 à 22:29:28    

Faut écrire une requête:

 
Code :
  1. sql="INSERT INTO Matériels (MATLONG) VALUES ('" & strLong & "');"
 

puis ensuite faire tourner la requête

 
Code :
  1. with docmd
  2.   .setwarning false 'supprimer le message d'avertissement
  3.   .runsql(sql)
  4.   .setwarning true 'remet les messages d'avertissement
  5. end with
 

je ne suis pas sûr de la syntaxe de ces dernières lignes, je les cite de tête, il faudra que tu regarde probablement dans l'aide (F1) sur les commande setwarning et runsql

 

A noter la syntaxe de la requête insertion, où tu peux renseigner plusieurs champs d'un coup

 
Code :
  1. sql="INSERT INTO Table (Champ1, Champ2, Champ3, etc) VALUES (Valeur1, valeur2, valeur3, etc);"
 

Ne pas oublier les ' pour encadrer les valeurs de chaine de caractère. Par exemple, dans l'exemple ci dessus, si la valeur de MATlong est égal à 10 (et que c'est une chaine de caractère), la variable sql sera égale à :

Code :
  1. INSERT INTO Matériels (MATLONG) VALUES ('10');
 

Edit : tu peux aussi le faire avec DAO, mais c'est un peu plus compliqué parce qu'il faut déclarer plus de variables. En contrepartie, c'est plus rapide d'exécution.


Message édité par otobox le 23-04-2009 à 22:31:26

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed