[VBA-Access (2002)] [Résolu] Requête VBA sur une table jointe

Requête VBA sur une table jointe [VBA-Access (2002)] [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 03-01-2006 à 19:23:27    

Bonjour à tous,
 
J'ai un soucis pour faire une simple requête sur une table de ma base de données Access 2002 en VBA.
 
J'ai essayé plusieurs trucs. J'ai un bon gros bouquin sur Access 2000 et 2002, et je mets les scripts VBA suivant :
 

Code :
  1. Dim cnnLocal As New ADODB.Connection
  2. Dim rstCurr As New ADODB.Recordset
  3. Set cnnLocal = CurrentProject.Connection
  4. rstCurr.Open "SELECT * FROM image", cnnLocal, adOpenStatic, adLockPessimistic


 
Et on me dis qu'il y a une erreur dans la clause FROM... alors que ma table image existe...
 
J'ai essayé avec un ; à la fin de la requête et ca marche pas...
 
Je ne vois pas, si qqun voit...


Message édité par Manu la Science le 03-01-2006 à 21:38:15

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 03-01-2006 à 19:23:27   

Reply

Marsh Posté le 03-01-2006 à 21:06:06    

Une précision...
 
J'ai essayé sur une autre table nommée personne, et le script marche...
 
La table image a un champs correspondant à la clé primaire de la table image. Le problème doit certainement provenir de cet état de fait.
 
Par contre, je ne sais pas du tout comment faire pour contrer cela...
 
Je retourneà mes tests et si quelqu'un a une idée, je suis preneur.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 03-01-2006 à 21:35:24    

J'ai trouvé...
 
Faire une requête sur une table ayant une clé primaire d'une autre table nécessite de le "mentionner" dans la requête SQL.
 
J'ai résolu mon problème avec le code suivant :

Code :
  1. Dim cnnLocal As New ADODB.Connection
  2. Dim rstCurr As New ADODB.Recordset
  3. Set cnnLocal = CurrentProject.Connection
  4. rstCurr.Open "SELECT * FROM personne INNER JOIN [image] ON personne.id_personne = image.id_personne", cnnLocal, adOpenStatic, adLockPessimistic


 
La table image possède un champ recueillant la clé primaire de la table personne. Il faut donc utiliser ... INNER JOIN [...] ON ... = ...
 
J'aurai appris un truc tout seul ce soir...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Sujets relatifs:

Leave a Replay

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