Requete Access tourne pas ss VBA

shadockgreg Messages postés 18 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 5 septembre 2006 - 4 sept. 2006 à 13:26
shadockgreg Messages postés 18 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 5 septembre 2006 - 5 sept. 2006 à 12:49
Bonjour,

Mon prb est assez classique sur Access mais m'ennuie bcp.
Dans Access, J'ai une requete qui utilise un parametre d'un formulaire.
La requete tourne sous Access, un peu longue mais elle tourne.

Le prb, c ke qd je lexecute depuis une procedure VBA dans Excel, jobtiens le message derreur suivant : Trop peu darguments. Attendu 1.
Mes autres procedures dimport utilisant des requetes ss parametre tournent parfaitement.

Ci-dessous, le code que jutilise. Merci bcp. Si vous avez des ameliorations pour le code, je prends aussi...
Sub PRI_CASH_P()
Worksheets("PRI_CASH_P").Select
Cells.Select
Selection.delete Shift:=xlUp
Query1 ("Cash Payroll - Prod YTD Numbers & Amounts")
End Sub<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 Sub Query1(Queryname)
Dim ThisWorkbook, ThisSheet As String
Dim Msg, Title As String
Dim Destination As Range

 ThisSheet = ActiveSheet.Name
ThisWorkbook = ActiveWorkbook.Name

Set MainBook = Workbooks("Branch_TB.xls")
DatetoInput = MainBook.Worksheets("Command").Range("A94").Value
Set Destination = Cells(1, 1)

 'Parameters to modifiy (if needed)
MyTable = "AllRetailLoans 06.2006.mdb"
MyTableLocation = "H:\Moi\Toi\Doc_Prep" & MyTable
Connexion = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & MyTableLocation & ";"

Destination.Select   
With ActiveSheet.QueryTables.Add(Connection:=Array(Connexion, "Mode=ReadWrite;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:DatabasePassword="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global BulkTransactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination:=Destination)

        .CommandType = xlCmdTable
        .CommandText = Array(Queryname)
        .Name = MyTable
        .SourceDataFile = MyTableLocation
        .REFRESH BackgroundQuery:=False
End Sub

6 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 sept. 2006 à 13:39
Bonjour,
Je pense que l' erreur est dans
Query1 ("Cash Payroll - Prod YTD Numbers & Amounts")
ce qui est certain c' est qu' il faut
- soit enlèver les parenthèses
  Query1 "Cash Payroll - Prod YTD Numbers & Amounts"

- soit faire un  appel avec Call
  Call Query1 ("Cash Payroll - Prod YTD Numbers & Amounts")

Il faudra voir aussi "Cash Payroll - Prod YTD Numbers & Amounts"
ça ne me dit rien le "&" à l' intérieur !
0
shadockgreg Messages postés 18 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 5 septembre 2006
4 sept. 2006 à 16:19
je vais essayer le call mais la parenthese nest pas responsable de lerreur. Lerreur vient VRAIMENT du parametre car une requete ss parametre ds Access et importee depuis Excel fonctionne ss probleme de la sorte.
0
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008
4 sept. 2006 à 18:31
salut,

juste comme ca en passant.... peut etre definir tes parametres..... non?

Dim MyTable as string
Dim MyTableLocation as string etc

carvals
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 sept. 2006 à 18:45
Salut carvals,
En fait dans le message d' erreur, il n' est pas question de Paramètre
"Trop peu darguments. Attendu 1",
Il s' agit plutôt d' argument et donc de Query1.
Dans ce cas il faut revoir L' appel à la procédure Query1.


Lorsque les arguments sont entre parenthèses il faut
référencer la procédure par le mot clé Call.
Ou bien supprimer les parenthèses.
0

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

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 sept. 2006 à 18:48
Autre cause possible; l' argument lui même :
"Cash Payroll - Prod YTD Numbers & Amounts"
0
shadockgreg Messages postés 18 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 12:49
C'est la requete le prb.... En fait, elle utilise une valeur qui se trouve dans un formulaire Access. Sous Access, ma requete fonctionne. La reference au formulaire Access est sans doute perdue lorsque je fait limport dans excel...
0
Rejoignez-nous