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

Résolu
elfabrizio Messages postés 3 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 10 janvier 2011 - 10 janv. 2011 à 12:11
elfabrizio Messages postés 3 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 10 janvier 2011 - 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

4 réponses

AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017
10 janv. 2011 à 13:14
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
3
AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017
10 janv. 2011 à 12:50
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
0
elfabrizio Messages postés 3 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 10 janvier 2011
10 janv. 2011 à 13:01
Ok merci de ta réponse.

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