Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2367 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb dans acces 2003

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb dans acces 2003

n°1609866
speynaud
Posté le 09-09-2007 à 20:25:10  profilanswer
 

bonjour,
 
je ne sais pas comment utiliser une variable qui contient le nom d'une requête pour dire en VBA de prendre un champ dans cette requête!
 
je m'explique normalement en VBA (sauf erreur de ma part) on fait [nom de la requête].[Nom du champ]
moi mon problème c'est que "nom de la requête" est une variable public et si je mets ma variable comme ca :
[variable pub].[Nom du champ] il me dit qu'il ne connait pas la requête!
hors le nom de ma requête est bine le bon ,j'ai vérifié.
 
"Variable pub" = string
 
j'ai essayé avec crochets, des doubles coches, des coches, des virgules, des points virgule! je me doute qu'il doit y avoir une combine, mais je ne connais pas!
 
merci d'avance pour ceux qui pourront m'aider!

mood
Publicité
Posté le 09-09-2007 à 20:25:10  profilanswer
 

n°1609892
olivthill
Posté le 09-09-2007 à 23:51:15  profilanswer
 

Il y a plusieurs moyens pour faire des requêtes en VBA Access.
 
Par exemple, j'utilise ceci :

SQL_ligne = "SELECT mon_champ1 FROM ma_table" & _
            " WHERE mon_champ2 = " & "'" & mon_critere1 & "';"
Set bds = CurrentDb
Set rst = bds.OpenRecordset(SQL_ligne)
If (rst.EOF) Then
   rst.Close
   MsgBox ("Enregistement non trouvé." & Chr$(13) & "Requete: " & SQL_ligne)
   Exit Sub
End If
If Not IsNull(rst![mon_champ1]) Then MsgBox (rst.mon_champ1)
rst.Close

N.B. rst![mon_champ1] est équivalent à rst.mon_champ1
 
Cette requête est sensé ne retrouner qu'une seule ligne.
Si je souhaite récupérer plusieurs lignes, j'utilise

...
   Set rst = bds.OpenRecordset(SQL_ligne)
   Do While (Not rst.EOF)
      MsgBox (rst.mon_champ1)
   Loop

n°1611146
speynaud
Posté le 12-09-2007 à 18:10:43  profilanswer
 

ok merci de l'info je vais essayer cela.
si je comprend bien :
SQL_ligne est ta variable ou tu mets le nom de ta requete
 
tu ouvre ta requete  avec openrecorset et tu la met dans RST
 
et tu l'utilise comme ca :(rst![nom du champ])!
 
corrige moi si je n'ai pas compris (je un débutant en VBA)
 
merci encore

n°1611240
tegu
Posté le 13-09-2007 à 09:32:29  profilanswer
 

Oui tu as compris. rst est un objet Recordset.  
C'est la méthode courante d'accès aux données et tu peux trouver beaucoup d'exemples sur le net et ce forum.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb dans acces 2003

 

Sujets relatifs
acces restreint par mail et mot de passe : pb dans mon code! help!Problème droits d'accès répertoire en C#
[ACCESS] accès à distance à une bdd (noob inside)problème d'accès variable entre deux threads
Erreur suite à un accès à 3e tablesite à accès limité.
accès & download sur ftpAcces : Group By 15Min
[SQL Server 2005] Accès au donnée par requete SQL en VBAccès à la BDD
Plus de sujets relatifs à : Pb dans acces 2003


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR