Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 07/10/2008, 15h25   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2006
Messages: 61
Par défaut OpenQuery, Select/Case, et paramètres

Bonjour,

Je souhaiterais combiner les 3 :
- avoir dans un formulaire un groupe d'option (1,2,3)
- avoir une requête paramétrée (respectivement en valeur 1 et 2; 0;1,2et0)
- le tout executable en VBA. Le nom de la requête est un recordset.

ce qui me donne :

Code :
 
Select Case ChoixTypeEcriture
 
Case 1
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or 2"
Case 2
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
Case 3
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
 
End Select
 
je sèche !

merci beaucoup
zouhenlai est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 15h40   #2 (permalink)
Membre expérimenté
 
Date d'inscription: août 2006
Messages: 597
Par défaut

On peut faire simple avec

Code :
 
 sql = "SELECT ......  WHERE  TypeEcriture = " & ChoixTypeEcriture
 DoCmd.RunSQL s
 
par exemple
helas est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 15h43   #3 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 915
Envoyer un message via MSN à jpcheck
Par défaut

salut,
ou alors garder cette méthodo mais en écrivant convenablement la partie critère :
Code :
Select Case ChoixTypeEcriture
 
Case 1
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or TypeEcriture = 2"
Case 2
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
Case 3
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
 
End Select
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 15h46   #4 (permalink)
Membre expérimenté
 
Date d'inscription: août 2006
Messages: 597
Par défaut

d'autant plus que runsql ne fonctionne qu'avec des requêtes actions
helas est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 16h09   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2006
Messages: 61
Par défaut

Citation:
Envoyé par jpcheck Voir le message
salut,
ou alors garder cette méthodo mais en écrivant convenablement la partie critère :
Code :
Select Case ChoixTypeEcriture
 
Case 1
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or TypeEcriture = 2"
Case 2
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
Case 3
    DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
 
End Select
Salut,

Ca ne marche pas

"Nombre d'arguments incorrects ou affectation de propriété incorrecte"

Je précise que c'est une requête ajout, et que derrière il y a deux requetes sélection dont un possède ce fameux champ "typeEcriture", champ qui est bien sûr récupéré au niveau de la requête ajout

je vais devenir chèvre...
zouhenlai est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 16h46   #6 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 915
Envoyer un message via MSN à jpcheck
Par défaut

ok,
et si tu nous donnais le code sql de la requete que tu comptes ouvrir stp ?

Ca fait un peu jeu de devinettes sinon
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 16h48   #7 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2006
Messages: 61
Par défaut

Citation:
Envoyé par jpcheck Voir le message
ok,
et si tu nous donnais le code sql de la requete que tu comptes ouvrir stp ?

Ca fait un peu jeu de devinettes sinon
oui Chef !

Code :
 
INSERT INTO DONNEES_CG ( oidPIECE, [date], comptegen, montant, société, référence, referenceOrigine, typeEcriture )
SELECT SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code AS codeE, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture
FROM SOCIETEX_dbo_TETABLISSEMENT INNER JOIN SOCIETEX_VUE_COMPTEGEN ON SOCIETEX_dbo_TETABLISSEMENT.oid = SOCIETEX_VUE_COMPTEGEN.oidEtablissement
GROUP BY SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture;
 
l'est-y pas joli mon sql ?
zouhenlai est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 16h58   #8 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 915
Envoyer un message via MSN à jpcheck
Par défaut

ok,
donc là tu demandes à ouvrir une requête action

pourquoi ne pas passer par une chaine de caractères ?

Code :
Dim strSQL As String
Dim Criteria As String
 
Select Case ChoixTypeEcriture
 
Case 1
    Criteria = "TypeEcriture = 1 Or TypeEcriture = 2"
Case 2
     Criteria = "TypeEcriture = 0"
Case 3
    Criteria = "1"
 
End Select
 
strSQL = "INSERT INTO DONNEES_CG ( oidPIECE, [date], comptegen, montant, société, référence, referenceOrigine, typeEcriture ) "  & _
"SELECT SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, " & _ 
"SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code " & _ 
"AS codeE, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture " & _
"FROM SOCIETEX_dbo_TETABLISSEMENT INNER JOIN SOCIETEX_VUE_COMPTEGEN ON SOCIETEX_dbo_TETABLISSEMENT.oid = SOCIETEX_VUE_COMPTEGEN.oidEtablissement " & _
" WHERE " & Criteria & " " & _
"GROUP BY SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, " & _
"SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code, SOCIETEX_VUE_COMPTEGEN.reference, " & _
"SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture;"
 
CurrentDb.Execute strSQL
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 17h41   #9 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2006
Messages: 61
Par défaut

merci PiouPiou, je vais essayer de comprendre ce que tu m'as écrit
zouhenlai est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide