sergeith
Messages postés3Date d'inscriptionjeudi 4 juin 2009StatutMembreDernière intervention 3 août 2009
-
4 juin 2009 à 10:54
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
4 juin 2009 à 13:56
Bonjour
j'ai beau regarder tous les sujets du net à propos de cette erreur : "Aucune valeur donnée pour un ou plusieurs des parametres requis"
je n'arrive pas à la résoudre.
je tente une connexion à un classeur fermé excel qui contient deux feuilles : Temp et Tempsecteur
chacune des deux feuilles contient des données avec les colonnes suivantes
texte_SQL = "SELECT * FROM
[Temp$],[Tempsecteur$] Where [Temp$].[Num commune] =
[Tempsecteur$].[Code_commune] " and [Temp$].[Code rue] =
[Tempsecteur$].[Code_rue] "
Set Rst = New ADODB.Recordset
Set Rst = cn.Execute(texte_SQL) 'Ligne ou l'erreur apparaît
Je ne sait pas d'où vient le problème... Certaines colonnes possède des espaces
(je précise que ce n'est pas moi qui ai créé la base de donnée d'où
proviennent ces tables), c'est pour cela que j'ai tout mis entre
crochet. Mais même si je tente de renommer les colonnes avant ma
requête afin qu'il n'y ai plus d'espace, la même erreur arrive
sergeith
Messages postés3Date d'inscriptionjeudi 4 juin 2009StatutMembreDernière intervention 3 août 2009 4 juin 2009 à 11:01
Salut, ouai effectivement mon copié collé est raté, j'avais mis cette guillemet pour couper en deux ma requete (je voulais tester pas à pas ce qui pouvait planter...
comme tu t'en doute ma requête ressemble plus à cela :
texte_SQL = "SELECT * FROM [Temp$],[Tempsecteur$] Where [Temp$].[Num
commune] [Tempsecteur$].[Code_commune] and [Temp$].[Code rue] [Tempsecteur$].[Code_rue] "
hellangel777
Messages postés267Date d'inscriptionjeudi 5 février 2009StatutMembreDernière intervention26 novembre 20131 4 juin 2009 à 12:33
Re :
Essaye ce code... Je n'ai pas testé !
Par contre je suis pas spécialiste en sql mais quel est l'interet des dollars dans tes noms?
Dim dbs As Database,
Dim rst As Recordset
Set rst = dbs.OpenRecordset("SELECT * FROM [Temp$] " _
",[Tempsecteur$] Where [Temp$].[Num commune] = [Tempsecteur$].[Code_commune] " _
"and [Temp$].[Code rue] = [Tempsecteur$].[Code_rue];")
HellAngel777<hr />Les machines ne font pas d'erreurs
Heureusement nous sommes humains
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 4 juin 2009 à 12:41
salut,
[../auteur/SERGEITH/1703606.aspx sergeith]
-> en faisant juste
texte_SQL = "SELECT [Code_commune] FROM [Tempsecteur$]"
tu aurais vu que le problème ici est le nom des colonnes qui n'est apparemment pas récupérable
voici une manière pour une lecture facile, qui fonctionne
'Table TEMP
Const aNumCommune As String = "F1"
Const aNumClient As String = "F2"
Const aCodeRue As String = "F3"
'Table
TEMPSECTEUR
Const bTestRed As String = "F1"
Const bCodeEntier As String = "F2"
Const bCodeCommune As String = "F3"
Const bCodeRue As String = "F4"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 4 juin 2009 à 12:42
Salut
Es-tu sûr que la connexion à la DB soit réussie ?
Que vaut cn.State après le .Open ?
Des "$" dans le nom des tables : J'aurai jamais osé.
Au lieu d'utiliser
Set Rst = cn.Execute
essaye cette syntaxe
Rst.Open texte_SQL, cn
En général, Execute n'est utilisé que pour les requètes ne devant récupérer aucune données (Delete ou Insert par exemple)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)