Les requète sql sous access...Pfff

cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004 - 17 juin 2004 à 11:25
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004 - 22 juin 2004 à 15:48
salut a tous!!!

voila mon problème c'est que je n'arrive pas a executer une simple requète sql dans mon code VBA (sous access 2002 et ds le bouton d'1 formulaire)


SQL = "select * from `" & listbox1.Value & "` "
DoCmd.RunSQL SQL



la variable "listbox1" appartient a une zone de liste contenant les noms de mes tables!!!

en faite cette requète permetra d'afficher la table de son choix!!!

seulement voila a l'execution G l'erreur :

" une action executerSQL nécéssite un argument consistant en une instruction SQL"

alor voila; si qqn a une solution chui preneur!!! :-p

tks
++

15 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 juin 2004 à 11:55
MaTable = "Users"

Rq = "SELECT * FROM " & MaTable & ""

It@li@
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
17 juin 2004 à 15:47
pour un select, utilise un reccordset

dim rst as recoordset
set rst = currentdb.openreccordset(select * from table")

while not rst.eof
msgbox rst![champ1]
rst.movenext
wend
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
18 juin 2004 à 09:23
salut dragon!!

merci pr tn aide sa me parait ètre une bonne idée seulement voila : a l'execution j'ai l'erreur : "incompatibilitée de types"

et la j'avou que je comprend ps trp
donc si tu peu m'aider....

O fait mn code je l'ai mis ds la zone :"bouton droit sur mn bouton; générateur de code"

nan paske C la 1° foi que je fais du VBA!!
d'habitude chui +to sur VC++6!!

donc voila !! :) :big)

++
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
18 juin 2004 à 13:16
ça plante où ??? fait en pas à pas pour voir quel ligne exactment ça plante
0

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

Posez votre question
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
18 juin 2004 à 14:41
Private Sub Commande4_Click()

Dim rst As Recordset

Set rst = CurrentDb.openrecordset("SELECT * from `" & listbox1.Value & "`")// C a cette ligne que ça plante! on dirait
// qu'y connait ps le type

While Not rst.EOF
MsgBox rst![champ1]
rst.MoveNext
Wend

End Sub
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 juin 2004 à 15:25
regardes ma premiere reponse t'as requete SQL est fausse !

It@li@
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
18 juin 2004 à 15:41
comment ça???

Dim SQL As String

SQL = "SELECT * FROM `" & listbox1.Value & "`"
DoCmd.RunSQL SQL


j'voi pas s'ki cloche :dissapprove)

j'ai fais un truc du mème style avec 1 "create table..." et ça marche très bien
(c'est dailleur pour ça que je comprend pas)
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 juin 2004 à 16:03
Essayes plutôt avec des cotes comme ceci :

Dim SQL As String

SQL = "SELECT * FROM " & Ta Valeur & ""
DoCmd.RunSQL SQL

Sachant qu'un ListBax n'a pas de propriété Value

It@li@
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
18 juin 2004 à 16:13
nan décidément chui maudit : %-6

y me met : "une action "executer SQL " nécéssite un argument consistant en une requète SQL"

donc voila...... j'me sent 1 peu.........comment dire......................DANS LA M***E!!!!!!!!!!!
lol

help pliz!!!
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
21 juin 2004 à 09:28
Heu d'après ce que j'ai vu tu as dû de servir de mysql comme base de données car tu mets des ' pour les nom de table mais je me souviens bien il ne faut pas en mettre pour Access. Il est un peu capricieux

Toi tu fais ca :

Dim SQL As String

SQL = "SELECT * FROM `" & listbox1.Value & "`"
DoCmd.RunSQL SQL

alors essaye comme ca :

Dim SQL As String
Dim maTable As String
Dim rs As Object

maTable= listbox1.Value

SQL = "SELECT * FROM " & maTable
Set rs = CurrentDb.OpenRecordset(SQL)

Voilà et puis après tu a le résultat de ta requête.

Je sais pas si ca va marcher mais ca coute rien d'essayer

Voila, Bon courage

:)
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
22 juin 2004 à 08:56
salut keiko!!

déja merci pour le coup dee main (et aux autres aussi)

j'ai placé tn code ds le "sub" de mn boutton mais a l'execution il ne se passe rien!!

donc voila je ne sais pas trop quoi dire de plus!!

ça fait un moment que j'essaye mais ça ne fonctionne toujours pas donc je suis a l'écoute de toutes les aides!!

merci!!!
++
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
22 juin 2004 à 09:37
Ba je comprend pas je viens de tester ce que je t'ai filé, et ca marche sur mon appli. Alors je sais pas trop d'ou ca peut venir. Voila le code que j'ai exécuté sur mon appli, peut etre que ca peut d'aider :

Private Sub Liste_Table_AfterUpdate()
'mes variables
Dim SQL As String
Dim maTable As String
Dim rs As Object
Dim texte As String
Dim temp As String
Dim nbCol As Integer
Dim i As Integer

'je récupère le nom de la table que j'ai sélectionné dans la liste déroulante
maTable = Me.Liste_Table.Value

'je fais la requête
SQL = "SELECT * FROM " & maTable

'je l execute
Set rs = CurrentDb.OpenRecordset(SQL)

'je me place sur le premier enregistrement
rs.MoveFirst

'j'initialise une premiere partie de mes variables pour me balader dans le résultat de ma requête
nbCol = 0

'ca c' est la zone de texte ou j'affiche le contenu de la table
Me.texte.Value = ""

'et tant que j'ai des ligne à lire dans mon recordset
While rs.EOF = False
'je récupère le nombre de colonne de la ligne courante
nbCol = rs.Fields.Count
texte = ""
i = 0

'tant que je suis pas à la fin des colonnes
While i < nbCol
'si la colonne est null on met une chaine vide, sinon on met le contenu de la colonne
If IsNull(rs.Fields(i)) Then
temp = ""
Else
temp = rs.Fields(i)
End If
'et au l ajouter à la ligne courante
texte = texte + temp + " "
i = i + 1
Wend

'on ajoute alors cette ligne à celle qui sont déjà dans ma zone de texte
Me.texte.Value = Me.texte.Value + texte + Chr(13)

'on passe à la ligne suivante
rs.MoveNext
Wend
End Sub

Voila le code, moi dans le formulaire j'ai une liste déroulante qui s'appelle Liste_Table et une zone de texte nommée texte. Et quand je sélectionne un nom dans la liste déroulante ca affiche dans la zone de texte le contenu de la table.

Alors si ca marche pas je sais pas trop d'ou ca peut venir.
Essaye ce code là et si ca fait toujours rien alors mets des mesages pour voir ou le programme passe et passe pas. Et affiche la requête, tu verras bien d'où vient le problème.


:big) Ah l'informatique c'est bien quand même :big)
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
22 juin 2004 à 15:13
wè merci le code que tu m'as donné fonctionne mais ça ne m'affiche le dernierenregistrement de la table selectionnée!!!

en fait moi je veu juste une requète sql(ac access 2002) select*from[nom de ma table] qui s'execute avec 1 boutton!!

voila C tout!!

et meci pr tn aide(heeeeeeeeeeeeeelp %-6 !!!

++
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
22 juin 2004 à 15:19
Ba si la réponse te va. Mais il y a une question que je me pose : a quoi ca te sert d'executer une requete select??

Car en général si tu fais une requete select c'est que tu veux afficher quelque chose quelque part.

:big) Ah l'informatique c'est bien quant même :big)
0
cs_snowsurfer69 Messages postés 35 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 23 juin 2004
22 juin 2004 à 15:48
nonon ta solution ne résoud pas mon problème!!

en fait executer cette requète parametrée me sert a afficher des tables crées par l'utilisateur de la base (ki n'y connait ri1 en 1fo) et donc ki ne peut pas faire la Dmarche de placer 1 boutton dans un formulaire pour executer une nouvelle requète d'affichage de table qu'il a créée (par l'1termédiaire d'une sorte d'assistant de création de table et d'ajout de champ que j'ai créé avec des requètes parametrées)

donc voila!!!

merci si tu peu m'aider!! 8-)
allé; ++
0