Access et Requete SQL impossible ?

Résolu/Fermé
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 - 2 oct. 2007 à 10:01
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 - 2 oct. 2007 à 12:33
Bonjour à tous ,
Actuellement en train de creer un peit GPI je me permets de vous solliciter pour une question :
Structure :
Table (tbl_Pc) qui contient un champ Config de type Texte (Alleger, Complet, Administrateur,...)
Table (tbl_Config) qui contient les champs logiciels , version , liscence...
Dans mon formulaire qui affiche le contenu de la tbl_Pc je veut creer un champ nomé txt_ConfigOption qui me retourne les données de la tbl_config en fonction de Me.Config (config issue de la table_Pc)

Je fait :
sub AfficherOptionConfig()
if not me.config.value =""
Dim SQL_Rappel as string
SQL_Rappel = "Select Logiciel , Version from tbl_Config Where tbl_Config.Nom = '" & Me.Config & "';"
Me.txt_ConfigOption = DoCmd.RunSQL(SQL_Rappel)
Else 
Exit Sub
End Sub



Cependant j'ai une erreur il ne veut pas du DoCmd.RunSQL(SQL_Rappel)

Merci pour votre aide

10 réponses

turboscript Messages postés 243 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 16 mai 2013 29
2 oct. 2007 à 10:20
tu as me.config.value puis apres Me.Config, il faut respecter la casse et si tu veux une valeur en retour, il faut ecrire Me.Config.value, enfin je sais pas trop mais ça doit être ça
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
2 oct. 2007 à 10:22
Salut,

ça ne marchera pas comme ça. Pour un résultat de requête, il faut une liste déroulante (même limitée à une ligne), et surtout on n'exécute pas une requête dans un champ, mais on met la propriété du champ à la valeur de la requête (c'est access qui va la lancer à l'affichage du champ) :
me.ma_liste.rowsource = SQL_Rappel
Ca devrait aller mieux !

On peut aussi utiliser un dlookup (c'est plus facile, mais chacun fait comme il veut...)
0
turboscript Messages postés 243 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 16 mai 2013 29
2 oct. 2007 à 10:27
tu as raison blux, une requete SQL se colle dans un tableau , un row, une ligne d'enregistrement, soit ici deux valeurs ( Logiciel, Version) que tu essayes d'affecter dans une variable simple texte, donc ça ne peut pas marcher.
Il faut donc charger le tableau avec l'execution de la requete dans un row et ensuite le faire defiler pour en extraire l'enregistrement voulu, ici tu ne dois avoir qu'une seule ligne.
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 10:28
D'acc merci bien je vais exploiter vos pistes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 10:42
Je ne pense pas avoir tout saisi, revoici mon code :
Sub AfficherOptionConfig()
 DoCmd.SetWarnings False
 If Not Me.Config.Value = "" Then
   ' Me.lst_ConfigOption.Enabled
    Dim SQL_Rappel As String

    SQL_Rappel = "Select Logiciel, Version from tbl_Config Where tbl_Config.Nom ='" & Me.Config & "';"
    Me.lst_ConfigOption.RowSource = DoCmd.RunSQL(SQL_Rappel)
    
Else
    Exit Sub
End If
End Sub


Private Sub Config_Change()
    Call AfficherOptionConfig
End Sub

Private Sub Form_Load()
    Call AfficherOptionConfig
End Sub


Toutefois il me fait la meme erreur d'éxécution que tout à l'heure à savoir :
Erreur de compilation :
Fonction ou variable attendue sur : DoCmd.RunSQL(SQL_Rappel)
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
2 oct. 2007 à 10:44
Oui , c'est normal, regarde mon exemple, je n'ai pas mis de docmd...
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 10:47
Je croyai que le DoCmd était obligatoire . Mais non
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 10:46
Je rectifie Mon Post précédent , l'érreur était de ma part cela fonctionne correctement sauf que je n'ai que logiciel dans ma liste est-il possible d'avoir 2champs dans une même liste ?
Merci en tout cas pour votre aide !
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
2 oct. 2007 à 10:52
Il faut modifier ta zone de liste pour lui faire afficher 2 colonnes et indiquer leur largeur...

En mode création, onglet format

- champ 'nombre de colonnes'
- champ 'largeur colonnes' (en cm séparés par des ;), ex : 1,5;2, il est possible également de mettre 0 en taille pour ne pas afficher la colonne même si elle est présente dans la requête (1,5;0;3)
0
turboscript Messages postés 243 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 16 mai 2013 29
2 oct. 2007 à 10:52
oui mais cf mon avant dernier post tu dois creer une ligne d'enregistrement (row) qui est un tableau contenant autant de champs que tu veux, tu dois le faire défiler et en extraire les valeurs
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 10:58
Merci pour tout a vous deux et merci pour le detail des colonnes ca marche top top !
Merci
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
2 oct. 2007 à 12:33
Re,
Maintenant que mon code fonctionne j'aimerai creer plusieurs onglet, mais je ne comprend pas comment cela fonctionne j'ai essayer de manaiere implicte (pour moi ) à savoir:
J'ai creer un onglet et mis la zone de liste dedans,ohhhh ca marche cool
Je fait un deuxieme onglet et je veut mettre une autre zone de liste qui me donne les infos complémentaire de mes Pc et la c'est le drame car en fait je n'ai pas mis la 1ere zone de liste dans l'onglet mais par dessus du coup je me retrouve avec mes zone de liste dans tous mes onglets...
Je ne sais pas si sure cette explication j'ai été assez clair !
0