Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2011, 22h52   #1
Invité régulier
 
Inscription : août 2008
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 25
Points : 7
Points : 7
Par défaut Requete pour nouveau Recordset

Bonjour,

J'ai beau lire attentivement le document de Tofalu sur la création de recordset, le mien refuse de s'ouvrir!

Le contexte: Je selectionne depuis un formulaire un certain nombre d'enregistrements et je voudrais remplir deux feuilles Excel avec les données completes relatives aux enregistrements selectionnés (toutes les données ne sont pas dans la requète selection initiale).

Après avoir ouvert la feuille Excel, je cherche donc a créer un nouveau recordset basé sur la table principale qui me ramènerait les données manquantes.

Voila le éléments du code: rst est le recordset correspondant au formulaire de selection, rstForm est celui que je veux créer.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim idFormRst As Integer
Dim n As Integer
Dim idFormRst, idParcRst As Integer
Dim rst As Recordset
Dim rstForm As Recordset
 
Set rst = Me.Recordset
 
If Not rst.EOF Then
        rst.MoveFirst
  While Not rst.EOF
        idFormRst = rst![idformfusion]
        idParcRst = rst![idparcfusion]
    If idFormRst <> 0 Then
        Set rstForm = CurrentDb.OpenRecordset(" SELECT * FROM T01_Formation WHERE T01_Formation.idformation = " & idFormRst & ";", dbOpenTable)
                n = rst.AbsolutePosition + 4
 
        appExcel.Worksheets("formations").Select
        appExcel.Cells(n, 1) = rstForm![idformation]
        appExcel.Cells(n, 2) = rstForm![Titre]
Arrivé à la ligne de Set rstForm un message apparait indicant que le moteur Jet n'a pu trouver l'objet 'SELECT * FROM TABLE WHERE TABLE.CHAMP = 37;'

J'ai essayé en définissant les objets rst en DAO.recorset, echec! Essais avec ou sans espaces dans la définition de requète, essais avec ou sans le ";" final, rien n'y fait et le libellé des tables et champs est fait avec un copier/collé pour éviter les erreurs de frappe!

Merci d'avance pour les idées.
pedro91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 12h06   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
bonjour,

ça pourrait être à cause du type de recordset choisi : dbOpenTable.
Essaie avec dbOpenDynaset.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/09/2011, 12h22   #3
Invité régulier
 
Inscription : août 2008
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 25
Points : 7
Points : 7
Par défaut Bravo et merci

Effectivement cela suffit pour que tout marche parfaitement!

Juste pour ma gouverne, et aussi parce que j'ai un autre rst a faire plus complexe (a partir d'une query) quelle est l'explication? Je travaillais pourtant la à partir d'une simple table?

En tout cas encore merci.
pedro91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 12h43   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Lorsque le type de recordset demandé est de type table (dbOpenTable), l'argument Nom de la méthode OpenRecordset est le nom d'une table.

Extrait de l'aide en ligne concernant l'argument Nom :
Citation:
Source des enregistrements du nouvel objet Recordset. Il peut s'agir du nom d'une table, du nom d'une requête ou d'une instruction SQL qui renvoie des enregistrements. Pour les objets Recordset de type table dans les bases de données du moteur de base de données Microsoft Access, la source ne peut représenter qu'un nom de table.
Voir aussi : 5.1.1. Les différents types de Recordset

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h56.


 
 
 
 
Partenaires

Hébergement Web