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

Messages postés
3
Date d'inscription
lundi 10 janvier 2011
Dernière intervention
10 janvier 2011
- 10 janv. 2011 à 12:11 - Dernière réponse :
Messages postés
3
Date d'inscription
lundi 10 janvier 2011
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
95
Date d'inscription
vendredi 7 février 2003
Dernière intervention
28 novembre 2017
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é 91 internautes ce mois-ci

Commenter la réponse de AlKatou
Messages postés
95
Date d'inscription
vendredi 7 février 2003
Dernière intervention
28 novembre 2017
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
Messages postés
3
Date d'inscription
lundi 10 janvier 2011
Dernière intervention
10 janvier 2011
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
Messages postés
3
Date d'inscription
lundi 10 janvier 2011
Dernière intervention
10 janvier 2011
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.