JLV1975
Messages postés55Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention15 septembre 2006
-
31 août 2005 à 12:22
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
7 sept. 2005 à 18:03
Tout est dit dant le titre.
Pour info j'utilise ce code trouvé sur ce site, mais il ne fonctionne que si access est installé:
Dim Db As New Access.Application
'Ouvrir la base de données
Db.OpenCurrentDatabase ("C:\base.mdb")
'Exécuter une macro
Db.DoCmd.RunMacro ("Macro1")
'Fermer la base de données
Db.CloseCurrentDatabase
'Libérer les ressources
Db.Quit
Set Db = Nothing
J-L
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 31 août 2005 à 13:33
Salut,
Je pense pas que ça soit possible, déjà ton code commence mal :
Dim Db As New Access.Application = Création d'une nouvelle instance d'access....
Si tu veux utiliser une base access (pas les macro), c'est faisable
avec un langage de prog (VB6, VB.NET, ...) qui exploite le moteur jet
inclu dans le MDAC 2.7. Ca te permet de faire des requêtes sur la base
de données.
Par contre, pour les macro, je suis quasi certain qu'il faut access.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 août 2005 à 14:39
salut,
message à tous, çà vous dirait pas de dire en quel language?
bref, sous VB6, voici une partie de code :
dim db As Database
Const PassBD As String = "MDP"
Dim rs As Recordset
Dim sql As String
dim NbUsers as integer
Set db = OpenDatabase(App.Path & "\bd1.mdb", True, False, ";pwd=" & PassBD)
'compte le nombre d'occurences et formate le tableau users
sql = "SELECT Count(users.USER) AS CompteDeUSER " & _
"FROM users"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
NbUsers = rs("CompteDeUSER")
Set rs = Nothing
fonctionne sur un poste n'ayant pas le PackOffice.....
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 août 2005 à 14:53
si tu veux executer une macro, c'est le VBA de access qui le gère. en l'occurrence, en effet, tu ne peux pas ouvrir un document .xls si tu n'a pas excel. pareil pour les macro donc...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 août 2005 à 15:11
logiquement, non. pas plus que d'ouvrir n'importe que fichier propriétaire sans son logiciel...
idée comme çà, mais me semblant irréalisable :
essayer de trouver en binaire cette macro (à partir de VB, dans la bd), la convertir en VBS, l'enregistrer et l'executer (ce vbs).
(aucune idée si un VBS conçernant access peut fonctionner sans access....)
lefoimpeur
Messages postés22Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention13 février 2006 7 sept. 2005 à 15:57
Moi j'ai un peu le même soucis.
Dans mon programme j'ai fais une fonction d'exportation et lorsque je
l'installe sur un poste qui ne possède pas access, j'ai le droit à
l'erreur suivante "erreur d'exécution '429' : Le composant ActiveX ne
peut créer l'objet".
Après analyse, j'ai trouvé que ca venait de la fonction OpenCurrentDatabase dans le code suivant:
Public Sub exporter()
Dim chemin As String
Dim cheminExport As String
Dim nom As String
Dim catalogBdd As ADOX.Catalog
Dim tblList As ADOX.Table
Dim ouvert As Boolean
Dim vide As Boolean
Dim exportation As Boolean
Dim db As Access.Application
'Initialisations
exportation = False
Set db = New Application
Set catalogBdd = New ADOX.Catalog
'Si la base de donnée est fermée on l'ouvre
If cnxBdd.State = adStateOpen Then
ouvert = True
Else
If ouvrirBdd Then
ouvert = True
Else
ouvert = False
End If
End If
If ouvert Then
'Récuperation du chemin et du nom de la base
chemin = lireChemin
nom = Mid(chemin, 1, Len(chemin) - 4)
'Ouverture pour l'exportation
db.OpenCurrentDatabase (chemin)
'Ouverture de la boite de dialogue pour choisir le chemin d'ou seront stockées
'les tables exportées
cheminExport = SelectFolder("Sélectionnez un
répertoire de destination pour exporter la base de données :",
frmPrincipal.hwnd)
If cheminExport <> "" Then
'On liste le nom de toutes les tables dans la base de données
'afin de voir si le nom passé en paramètre ne correspond pas à une table déjà existante
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 7 sept. 2005 à 16:31
arf, c'est une idée, je ne connais ni VBA, ni VBS.
donc comment procéder, peut-être en analysant une base avec un éditeur Hexa tel que WinHex, mais aucune idée. ni même si cela est réalisable...