cs_snowsurfer69
Messages postés35Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention23 juin 2004
-
17 juin 2004 à 11:25
cs_snowsurfer69
Messages postés35Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention23 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)
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDerniè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
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDerniè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)
cs_snowsurfer69
Messages postés35Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention23 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)