Erreur 3061, trop peu de paramètres. 1 attendu
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je rencontre l"'erreur d'exécution 3061: trop peu de paramètres.1 attendu."
Mon code sert à mettre le contenu d'une requête dans un Excel à partir d'une ligne donner. Après plusieurs recherches pour comprendre cette erreur et différents test, je n'ai pas réussi à corriger le problème. Ma requête me sort bien les matériels demander.
J'ai tester une notre variante pour contourner le problème (la première ligner Set rec qui est en commentaire) et la je me retrouve avec "l'erreur d'exécution 3450, erreur de syntaxe dans la requête. La clause de la requête est incomplète." J'ai essayé de corriger sa en modifiant certains éléments de la ligne mais rien n'y fait.
Je commence à être à cours d'idée. Si à une solution je suis preneur, merci d'avance.
Voici le code :
Private Sub Commande120_Click() Dim xlApp As Excel.Application Dim wbk As Excel.Workbook Dim sht As Excel.Worksheet Dim I As Long, J As Long Dim rec As Recordset 'Set rec = CurrentDb.OpenRecordset("SELECT '[Tracabilite].[Clé_outil], [Tracabilite].[NomOperateur], [Tracabilite].[Support], [Tracabilite].[WPWO], [Tracabilite].[Observation]' FROM 'Tracabilite' WHERE '(Tracabilite.Clé_outil)' Like '[Formulaires]![Menu principal Traca]![Texte124]';", dbOpenSnapshot) Set rec = CurrentDb.OpenRecordset("ImpTraca", dbOpenSnapshot) ' Créer un objet Excel Set xlApp = CreateObject("Excel.Application") With xlApp ' Rendre Excel visible .Visible = True ' Créer un nouveau classeur Set wbk = .Workbooks.Open("U:\Prive\ESTA\COMMUN\SuivMat\A400M\Suivi Outillage A400M\Programme\TracabiliteTGM.xlsx") ' Instancier la feuille active dans le classeur Set sht = wbk.ActiveSheet ' Ecrire quelques valeurs With sht .Range("B2").Value = Me.Modifiable118.Column(0) .Range("B3").Value = Me.Modifiable118.Column(3) .Range("E3").Value = Me.Modifiable118.Column(2) .Range("B4").Value = Me.Modifiable119.Column(0) .Range("E4").Value = Me.Texte123.Value End With I = 6 Do While Not rec.EOF For J = 0 To rec.Fields.Count - 1 If rec.Fields(J).Type = dbText Then sht.Cells(I, J + 1) = "'" & rec.Fields(J) Else sht.Cells(I, J + 1) = rec.Fields(J) End If Next J I = I + 1 rec.MoveNext Loop ' ' Sauvegarder et fermer le classeur ' wbk.SaveAs "C:Mes documentstest.xls" ' wbk.Close ' ' Quitter Excel ' .Quit End With ' Libérer les variables objet rec.Close Set sht = Nothing Set wbk = Nothing Set xlApp = Nothing Set rec = Nothing End Sub
- Erreur 3061, trop peu de paramètres. 1 attendu
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Paramètres de confidentialité - Guide
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
4 réponses
bonjour,
Si tu as une erreur 3061 en ligne 17, essaie d'exécuter la requête en dehors du VBA, cela te donnera une explication plus claire.
C'est quoi, ImpTraca?
ImpTraca est le nom de ma requête.
J'ai essayé différentes façons pour placer mes marqueurs en ligne 17 mais la même erreur persiste. Quand je lance ma requête seul, il m'affiche le même problème
Ma requête seul s'exécute nickel avec sa :
SELECT Tracabilite.NTraca, Tracabilite.Clé_outil, Tracabilite.NomOperateur, Tracabilite.Support, Tracabilite.WPWO, Tracabilite.Observation FROM Tracabilite WHERE (((Tracabilite.Clé_outil) Like [Formulaires]![Menu principal Traca]![Texte124]));
Mais quand je copie colle ma requête dans ma ligne 17, j'ai l'erreur 3061 qui apparaît. Pourtant ma requête seul fait le taff nickel
Ma requête en #3 est ma requête que j'avais au début et qui me créer l'erreur 3061. J'ai donc essayé de l'adapter en ligne 17 pour contourner mon erreur mais du coup j'ai l'erreur 3450 qui se manifeste. J'ai essayé le maximum d'orthographe mais rien y fait.
Montre le code VBA que tu testes avec la requête brute, sans manipulation.
As-tu testé hors VBA la requête que tu présentes au début:
SELECT '[Tracabilite].[Clé_outil], [Tracabilite].[NomOperateur], [Tracabilite].[Support], [Tracabilite].[WPWO], [Tracabilite].[Observation]' FROM 'Tracabilite' WHERE '(Tracabilite.Clé_outil)' Like '[Formulaires]![Menu principal Traca]![Texte124]';
A force de tout changer tout le temps, difficile pour nous de suivre ce que tu fais et ce que tu testes. Essaie de t'organiser, et de nous présenter des faits, avec ce que tu testes et le résultat que tu obtiens.
Mon code vba est celui que j'ai donné au début, sans la ligne 17. Ce code est censé me récupérer le contenu de ma requête ImpTraca qui est celle donnée en #3. La requête seul me sort bien se que je lui demande. Mais quand je mui demande de me la sortir via mon code vba en #1, j'ai l'erreur 3061 qui apparaît.
J'ai donc cherché à quoi elle correspondait, et j'ai remarqué que certaines personnes avaient le même soucis. J'ai donc essayé d'adapter par rapport à ma requête avec se que les personnes ont réussi à faire sur différents forums. Sa ma donc donné la ligne 17. J'ai essayé avec et sans les apostrophes, en découpant la requête avec des &. Mais rien n'y fait. Le seul avantage c'est que l'erreur 3061 à disparue mais l'erreur 3450 est apparu. J'ai donc une erreur de syntaxe dans ma requête. J'ai copié collé celle-ci dans un onglet sql pour voir si il me préciser l'endroit de l'erreur mais là aussi il ma afficher l'erreur 3450 sans me préciser l'endroit où se trouve l'erreur.
Tu nous a montré une requête SQL en #3, en indiquant qu'elle s'exécute nickel. Tu ne nous a pas montré de code VBA avec cette même requête.
Tu mentionnes en #10 une requête SQL qui donne l'erreur 3450, et tu ne nous la montres pas.
Quand tu testes en VBA, le formulaire "Menu principal Traca" est bien ouvert et accessible? As-tu testé sans la clause WHERE, comme suggéré en #5?
Il me semble que ton utilisation des apostrophes est incorrecte en ligne 17.