La méthode Open de l'objet Recordset a echoué .... selon la requete appliquée ! [Résolu]

elfabrizio 3 Messages postés lundi 10 janvier 2011Date d'inscription 10 janvier 2011 Dernière intervention - 10 janv. 2011 à 12:11 - Dernière réponse : elfabrizio 3 Messages postés lundi 10 janvier 2011Date d'inscription 10 janvier 2011 Dernière intervention
- 10 janv. 2011 à 14:49
Bonjour à tous,

J'essaye de creer une requete vba sous excel pour extraire les données de tables Access.
table 1 = liste de personnes
table 2 = liste de leur date d'absence et leur motif (Congé ou RTT)
Dans Excell, je souhaite la liste des personnes avec leur dates d'absences et motifs (1 absence par ligne)

Le problème est que ma requette renvoie le message suivant : La méthode Open de l'objet Recordset a echoué.Pourtant lorque je simplifie ma chsql avec une seule table (celle des personnes), ca marche !! Pouvez vous m'aider ??

Voici mon code :
Private Sub btn_affiche_Click()

On Error GoTo erreur

Dim chemin As String, chsql As String, i As Integer
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim essai As String

'CONNEXION A LA BASE
chemin = feuil_parametres.Range("b1").Value
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin

'RECUPERATION DES DONNEES
Set rs = New ADODB.Recordset

la chsql qui ne marche pas :
chsql = "SELECT employe.id_employe, employe.nom, employe.prenom, position.jour_debut, position.jour_fin"
chsql chsql & " FROM employe INNER JOIN [position] ON employe.id_employe position.id_employe;"[u]

la chsql qui marche :/u
chsql = "SELECT employe.nom, employe.prenom, employe.date_entree FROM employe

rs.Open chsql, cn

'CHARGEMENT

Feuil_absences.Activate
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents

i = 4
Do While Not rs.EOF
Feuil_absences.Range("b" & i).Value = rs!employe.nom
i = i + 1
rs.MoveNext
Loop

rs.Close
Set rs = Nothing

Feuil_absences.Copy

Exit Sub
erreur:
MsgBox Err.Description

End Sub
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
AlKatou 95 Messages postés vendredi 7 février 2003Date d'inscription 28 novembre 2017 Dernière intervention - 10 janv. 2011 à 13:14
3
Merci
voici ta requête modifiée


chsql = "SELECT employe.id_employe, employe.nom, employe.prenom, [position].jour_debut, [position].jour_fin"
chsql chsql & " FROM employe INNER JOIN [position] ON employe.id_employe [position].id_employe;"

pour l'alias de table, ce n'est pas une obligation.

alka

Merci AlKatou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de AlKatou
AlKatou 95 Messages postés vendredi 7 février 2003Date d'inscription 28 novembre 2017 Dernière intervention - 10 janv. 2011 à 12:50
0
Merci
salut,

dans ta requête mets bien les crochets de la table Position dans ton select et la condition de sélection sinon affecte un alias.

bonne continuation

alka
Commenter la réponse de AlKatou
elfabrizio 3 Messages postés lundi 10 janvier 2011Date d'inscription 10 janvier 2011 Dernière intervention - 10 janv. 2011 à 13:01
0
Merci
Ok merci de ta réponse.

Pour ne pas me tromper, peux tu me dire où faut il mettre les crochets et l'alias ?
Commenter la réponse de elfabrizio
elfabrizio 3 Messages postés lundi 10 janvier 2011Date d'inscription 10 janvier 2011 Dernière intervention - 10 janv. 2011 à 14:49
0
Merci
Super ! ca marche ! merci alka
Commenter la réponse de elfabrizio

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.