cs_Oxydation
Messages postés10Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 4 mars 2010
-
3 mars 2010 à 10:43
cs_Oxydation
Messages postés10Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 4 mars 2010
-
3 mars 2010 à 15:26
Bonjour à tous,
Je code en VBA excel, j'ai une base de données sous SQL server2005 connectée a distance. Le formulaire que j'utilise contient des textBox et un bouton "valider", ce bouton lorsque je clique dessus envoie les données inscrites dans les textbox dans une table nommée "Pieces", tout fonctionne correcement sauf pour une colonne, mon problème est que cette colonne doit contenir un ID (identifiant provenant d'une autre table nommée Users), j'ai donc une variable SQL_ligne qui doit recevoir le résultat de la requete :
----------------------------------------------------------------------
Set rs = New ADODB.Recordset
Dim SQL_ligne As String
SQL_ligne "SELECT ID FROM Users WHERE LOGIN '" & Label115.Caption & "' "
----------------------------------------------------------------------
Le label 115 contient "mip" , ce qui correspond a la colonne LOGIN de ma table Users.
Dans ma requete Insert into j'ai ceci : rs.Open "Insert Into Pieces(ID) Values ('" & SQL_ligne & "')", cN
Or quand je clique sur mon bouton valider, toutes les données des textBox s'inscrivent correctement dans ma table Piece SAUF la colonne ID qui reçoit exactement ceci "SELECT ID FROM Users WHERE LOGIN = '" & Label115.Caption & "' "
Or je voudrais que la colonne ID reçoive le résultat de la requete et je n'y parviens pas.
J'espere être compréhensible, merci d'avance pour votre aide.
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 3 mars 2010 à 14:49
En supposant que la valeur que tu recherches est contenu dans le champ ID de la table gmt_users:
ta_variable = rs.Fields("ID").value
Pour la petite histoire, cela n'a rien à voir avec VBA, c'est de l'ADO, la requête elle-même étant du SQL. Il est important de faire la part des choses pour bien s'y retrouver même si ce n'est pas toujours facile au début.
cs_Oxydation
Messages postés10Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 4 mars 2010 3 mars 2010 à 14:43
Merci pour ta réponse j'y vois déjà plus clair, en revanche et j'en suis désolé je ne vois pas commment stocker la valeur du résultat de la requete dans une variable, c'est mon principal probléme ici, après avoir executé la requete :
rs.open "SELECT ID FROM gmt_users WHERE LOGIN '" & Label115.Caption & "' "
Je ne sais pas comment mettre le résultat dans ma variable :(
Désolé mes connaissances en Vba sont limitées, surtout au niveau des requêtes SQL je viens de commencer.
cs_Oxydation
Messages postés10Date d'inscriptionmardi 23 février 2010StatutMembreDernière intervention 4 mars 2010 3 mars 2010 à 15:26
J'ai testé le code que tu m'a donné et... cela fonctionne parfaitement !
Et merci pour la petite histoire en effet j'ai un peu de mal à me faire au SQL dans le Vba (de plus je n'apprécie pas particuliérement ce langage mais c'est dans le cadre de mon projet de stage).
En tout cas merci beaucoup pour ton aide et tes explications précises je comprend déjà un peu mieux le fonctionnement.