OVH Cloud OVH Cloud

TransferSpreadSheet et ADODB.Command en VB6 ?

3 réponses
Avatar
sergiobzh
Bonjour,

(est-ce le bon groupe pour cette question ?)

je suis dans une appli VB6 o=F9 je travaille sur une DB Access avec
ADODB.

Je cherche =E0 importer une feuille excel dans Access.

En VBA sous Access, il suffirait de faire :
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, nsh,
ficXLS, True, ""

Mais je suis en VB6. J'utilise ADODB.Command :

Set cmdAMOA =3D New ADODB.Command

cmdAMOA.ActiveConnection =3D cnx_AMOA
cmdAMOA.CommandText =3D "TransferSpreadsheet"
cmdAMOA.CommandType =3D adCmdStoredProc
paramAMOA3.Value =3D nsh

Set paramAMOA1 =3D cmdAMOA.CreateParameter("paramAMOA1", _
adInteger, adParamInput, , acImport)
cmdAMOA.Parameters.Append paramAMOA1
Set paramAMOA2 =3D cmdAMOA.CreateParameter("paramAMOA2", _
adInteger, adParamInput, , acSpreadsheetTypeExcel8)
cmdAMOA.Parameters.Append paramAMOA2
Set paramAMOA3 =3D cmdAMOA.CreateParameter("paramAMOA3", _
adVarChar, adParamInput, 255, nsh)
cmdAMOA.Parameters.Append paramAMOA3
Set paramAMOA4 =3D cmdAMOA.CreateParameter("paramAMOA4",_
adVarChar, adParamInput, 255, ficXLS)
cmdAMOA.Parameters.Append paramAMOA4
Set paramAMOA5 =3D cmdAMOA.CreateParameter("paramAMOA5", _
adBoolean, adParamInput, , True)
cmdAMOA.Parameters.Append paramAMOA5


R=E9sultat : le ADODB.Execute donne

Le moteur Mictrosoft Jet ne peut pas trouver la table ou la requ=EAte
source
'transferSpreadSheet'. Assurez-vous qu'elle existe ou qu'elle est
correctement orthographi=E9e.

J'ai =E9galement essay=E9 DoCmd.TransferSpreadSheet : m=EAme r=E9sultat.

Qui a une id=E9e sur le pb ?=20

merci.
Sergio

3 réponses

Avatar
MG
DoCmd.TransferSpreadsheet
n'est pas une commande VB6, ni une procédure stockée, mais une commande
ACCESS. Vous ne pouvez l'utiliser qu'à partir d'Access.




a écrit dans le message de news:

Bonjour,

(est-ce le bon groupe pour cette question ?)

je suis dans une appli VB6 où je travaille sur une DB Access avec
ADODB.

Je cherche à importer une feuille excel dans Access.

En VBA sous Access, il suffirait de faire :
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, nsh,
ficXLS, True, ""

Mais je suis en VB6. J'utilise ADODB.Command :

Set cmdAMOA = New ADODB.Command

cmdAMOA.ActiveConnection = cnx_AMOA
cmdAMOA.CommandText = "TransferSpreadsheet"
cmdAMOA.CommandType = adCmdStoredProc
paramAMOA3.Value = nsh

Set paramAMOA1 = cmdAMOA.CreateParameter("paramAMOA1", _
adInteger, adParamInput, , acImport)
cmdAMOA.Parameters.Append paramAMOA1
Set paramAMOA2 = cmdAMOA.CreateParameter("paramAMOA2", _
adInteger, adParamInput, , acSpreadsheetTypeExcel8)
cmdAMOA.Parameters.Append paramAMOA2
Set paramAMOA3 = cmdAMOA.CreateParameter("paramAMOA3", _
adVarChar, adParamInput, 255, nsh)
cmdAMOA.Parameters.Append paramAMOA3
Set paramAMOA4 = cmdAMOA.CreateParameter("paramAMOA4",_
adVarChar, adParamInput, 255, ficXLS)
cmdAMOA.Parameters.Append paramAMOA4
Set paramAMOA5 = cmdAMOA.CreateParameter("paramAMOA5", _
adBoolean, adParamInput, , True)
cmdAMOA.Parameters.Append paramAMOA5


Résultat : le ADODB.Execute donne

Le moteur Mictrosoft Jet ne peut pas trouver la table ou la requête
source
'transferSpreadSheet'. Assurez-vous qu'elle existe ou qu'elle est
correctement orthographiée.

J'ai également essayé DoCmd.TransferSpreadSheet : même résultat.

Qui a une idée sur le pb ?

merci.
Sergio
Avatar
sergiobzh
Merci. Au moins c'est clair, il va falloir revoir complètement la
méthode !
Sergio



DoCmd.TransferSpreadsheet
n'est pas une commande VB6, ni une procédure stockée, mais une comman de
ACCESS. Vous ne pouvez l'utiliser qu'à partir d'Access.




a écrit dans le message de news:

Bonjour,

(est-ce le bon groupe pour cette question ?)

je suis dans une appli VB6 où je travaille sur une DB Access avec
ADODB.

Je cherche à importer une feuille excel dans Access.

En VBA sous Access, il suffirait de faire :
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, nsh,
ficXLS, True, ""

Mais je suis en VB6. J'utilise ADODB.Command :

Set cmdAMOA = New ADODB.Command

cmdAMOA.ActiveConnection = cnx_AMOA
cmdAMOA.CommandText = "TransferSpreadsheet"
cmdAMOA.CommandType = adCmdStoredProc
paramAMOA3.Value = nsh

Set paramAMOA1 = cmdAMOA.CreateParameter("paramAMOA1", _
adInteger, adParamInput, , acImport)
cmdAMOA.Parameters.Append paramAMOA1
Set paramAMOA2 = cmdAMOA.CreateParameter("paramAMOA2", _
adInteger, adParamInput, , acSpreadsheetTypeExcel8)
cmdAMOA.Parameters.Append paramAMOA2
Set paramAMOA3 = cmdAMOA.CreateParameter("paramAMOA3", _
adVarChar, adParamInput, 255, nsh)
cmdAMOA.Parameters.Append paramAMOA3
Set paramAMOA4 = cmdAMOA.CreateParameter("paramAMOA4",_
adVarChar, adParamInput, 255, ficXLS)
cmdAMOA.Parameters.Append paramAMOA4
Set paramAMOA5 = cmdAMOA.CreateParameter("paramAMOA5", _
adBoolean, adParamInput, , True)
cmdAMOA.Parameters.Append paramAMOA5


Résultat : le ADODB.Execute donne

Le moteur Mictrosoft Jet ne peut pas trouver la table ou la requête
source
'transferSpreadSheet'. Assurez-vous qu'elle existe ou qu'elle est
correctement orthographiée.

J'ai également essayé DoCmd.TransferSpreadSheet : même résultat.

Qui a une idée sur le pb ?

merci.
Sergio


Avatar
sergiobzh
re-bonjour,
je réactive ce fil car étant plus ou moins débutant sous Access,
j'ai un peu de mal.

En fait je voudrai maintenant exécuter le code suivant , que j'ai mis
dans un module Access2000 :

Public Sub ImportFromXL(ByVal TName As String, ByVal ficXLS As
String)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8,
TName, ficXLS...
End Sub

Comment faire pour appeler ce code depyuis VB6 ? J'ai cherché sur le
Net mais j'ai l'impression que les procédures de modules ne
s'appellent pas depuis VB6 ?
Donc si quelqu'un a une solution ...

merci d'avance !