PB de programmation VB Access

PB de programmation VB Access - VB/VBA/VBS - Programmation

Marsh Posté le 06-09-2007 à 17:54:29    

Bonjour,
 
Je suis un débutant en programmation VBA ACCES 2003 et je suis entrain de développer une base de données et je cherche à transformer une ligne de commande tapée dans "Propriété – Contenu" d'une liste déroulante en VBA
 
Cette ligne de commande a pour effet de prendre le contenu d'un champ d'une requête de grouper les données et de les trier pour alimenter une liste déroulante.
 
Ligne de commande tapée dans la propriété "Contenu" de ma liste déroulante de mon  formulaire :
 
SELECT [Table1].série FROM [Table1] GROUP BY [Table1].série ORDER BY [Table].série
 
Ceci marche très bien dans le cas ou [Table1] est une table unique.
 
Mais dans mon cas [Table1] est une variable public VBA en STRING qui contient le nom d'une requête.
 
Je pense qu'il faut transformer cette ligne de commande en code VBA pour pouvoir utiliser ma variable public
 
J'ai trouvé les équivalences en VBA des propriétés "Origine source" et "Contenu"
 
    Forms!timbre!Série.RowSourceType = "Table/Query"
    Forms!timbre!Série.RowSource = ???????

 
Mais je ne sais pas comment faire pour transformer ma ligne de commande pour l'utiliser ci-dessus.
 
Pour info, j'utilise déjà le code qui marche pour déterminer la requête que le formulaire doit utiliser.
 
    Forms!timbre.RecordSource = Table1
 
Pourriez vous m'aider a résoudre mon problème?
 
Je vous remercie d'avance pour votre aide.

Reply

Marsh Posté le 06-09-2007 à 17:54:29   

Reply

Marsh Posté le 06-09-2007 à 20:46:39    

remets la meme requete mais avec des [série], tu as oublié le 1 dans ton order by, et utilité du group by ?

Reply

Marsh Posté le 06-09-2007 à 21:11:43    

merci de ton aide!
mais je la remets ou la même requête avec des [], dans propriété? je l'ai fait et il ne connait pas la variable.
j'ai bien précisé que  [Table1] été une variable public en VBA (issue d'une selection par calcul VBA) !! donc dans propriété il ne la connait pas! je pense toujours qu'il faut un code VBA qui remplace ma ligne de commande.
Pour info, ORDER BY equivaut a un regroupement comme dans une requête, pour eviter les doublons dans la liste
 
Merci a ceux qui pourront m'aider pour rédiger mon code VBA de remplacement.

Reply

Marsh Posté le 06-09-2007 à 21:28:54    

bon alors si tu veux virer les doublons, fais moi plaisir et utilise distinct a ce moment la ^^
tu mets la requete dans rowsource, pas le recordset. :)

Reply

Marsh Posté le 06-09-2007 à 21:38:05    

comme ca alors dans le prog VBA?
 
Forms!timbre!Série.RowSourceType = "Table/Query"
Forms!timbre!Série.RowSource = SELECT DISTINCT [Table1].[série] FROM [Table1]
 
Ca ne marche pas il me dit "erreur de synthaxe"!

Reply

Marsh Posté le 06-09-2007 à 21:39:32    

entre double quote " " stp :)
edit : la requete hein ;)


Message édité par jpcheck le 06-09-2007 à 21:39:54
Reply

Marsh Posté le 06-09-2007 à 21:45:57    

ok j'ai plus cette erreur!
 
mais ma variable publique [Table1] qui contient le nom de la requête n'est pas reconnue comme nom de requête ou de table donc il ne me reconnait le champ attaché!
 
voila commen je l'ai écrit :
 
Forms!timbre!Série.RowSourceType = "Table/Query"
Forms!timbre!Série.RowSource = "SELECT DISTINCT [Table1].[série] FROM [Table1]"
 
tu as une idée?

Reply

Marsh Posté le 06-09-2007 à 21:51:48    

un pitit ";" non ?
j'ai pas les softs chez moi, je teste kedal XD

Reply

Marsh Posté le 06-09-2007 à 22:10:56    

j'ai essayé les ";" les "!" les "," avec ou sans crochet pour la variable,
 
il ne me prend pas la variable comme une table ou requête
ma variable TABLE1 est déclaré comme ca :
PUBLIC TABLE1 AS STRING
 
sauf erreur string = texte peut on faire une déclaration pour dire que la variable est une table ou une requête?
 
j'ai vue dans l'aide déclaration :
AS TABCONTROL
AS TABLEDEF
AS TABLEDEFATIBUTEENNUM
AS TABLEDEFS

Reply

Marsh Posté le 06-09-2007 à 22:15:12    

tabledef me semble pas mal, mais fais un f1 pour voir les infos ^^

Reply

Marsh Posté le 06-09-2007 à 22:15:12   

Reply

Marsh Posté le 06-09-2007 à 22:27:35    

c'est plus pour une création de table que pour déclarer une table!
bon @+ et merci je vais au dodo!!
 
si tu as idée n'ésite pas!!
 
vraiment merci pour ton aide précieuse!
 
PS: je me suis trompé ORDER BY c'est pour trier dans l'ordre alphabétique, c'est GROUP BY qui évite les doublons, désolé ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed