Avatar billede 123456789 Nybegynder
24. maj 2001 - 10:52 Der er 3 kommentarer og
2 løsninger

Aktivere macro i access fra VB

Hej
Jeg har fin forbindelse til min access db fra vb (vba), og kan både skrive og læse i databasen.
MEN jeg har programmeret en macro i access som jeg gerne vil kalde/aktivere fra vb. Kender nogen koden for det i vb.
Avatar billede jespernaur Nybegynder
24. maj 2001 - 11:46 #1
Du må kunne bruge Run funktionen i Access application objektet. Citat fra online help:

You can use the Run method to carry out a specified Microsoft Access or user-defined Function or Sub procedure. This method is useful when you are controlling Microsoft Access from another application through Automation, formerly called OLE Automation. For example, you can use the Run method from an ActiveX component to carry out a Sub procedure that is defined within a Microsoft Access database.

Syntax

application.Run procedure[, arg1, arg2, ..., arg30]

The Run method has the following arguments.

Argument    Description
application    The Application object.
procedure    The name of the Function or Sub procedure to be run. If you are calling a procedure in another database use the project name and the procedure name separated by a dot in the form:\"projectname.procedurename\"If you execute Visual Basic code containing the Run method in a library database, Microsoft Access looks for the procedure first in the library database, then in the current database.
arg1, arg2, ...    Optional. The arguments for the specified Function or Sub procedure. You can supply a maximum of thirty arguments.

Mvh
Jesper Naur
Avatar billede 123456789 Nybegynder
24. maj 2001 - 14:21 #2
Tjaaaaaaaaaaa
Jeg har prøvet det du foreslår, men uden held.
Min kode lyder:

Sub Form_deactivate()

Dim db as database
Set db = opendatabase(\"c:\\test.mdb\")
\'(kode for at aktivere macro???)
\'(har prøvet: db.execute (\"hent_data\")
\' navn på macro er \"hent_data\"
\'funktionen run findes ikke efter db.

End sub


Er der andre der har forslag??
VH

Avatar billede terry Ekspert
24. maj 2001 - 16:12 #3
Dim acc as Object
Dim


Set acc = CreateObject(\"Access.application)

acc.OpenCurrentDatabase filepath:=\"Your database\"

acc.DoCmd.RunMacro \"Your macro\"
acc.quit

set acc = Nothing

or something like that....


Avatar billede jespernaur Nybegynder
24. maj 2001 - 17:22 #4
Det fremgår ikke rigtigt hvor din kode bliver udført - er det et frit-i-luften-svævende
Visual Basic program, kører det som Visual Basic for Applications inden i fx
et af de andre Office-programmer (Word, Excel, Powerpoint el lign), eller bliver
det udført inden i Access (det sidste ville være det nemmeste, men så nemt er det
nok ikke).

Med den viste kode åbner du din database som et Database objekt, men du har
ikke nødvendigvis dermed adgang til alt, hvad Access tilbyder (heller ikke selvom
databasen oprindeligt er skabt som en Access-database).

Hvis du ønsker at udføre din Access-makro, er du nok nødt til at skaffe dig en
Access.Application til at gøre det i. Noget i retning af:

Dim accApp as New Access.Application
accApp.OpenCurrentDatabase(\"c:\\test.mdb\")
accApp.Run \"hent_data\", \"parametre\"

Måske får du alternativt brug for at se på accApp.DoCmd objektet til dette formål

Mvh
Jesper Naur
Avatar billede 123456789 Nybegynder
24. maj 2001 - 20:56 #5
Jeg programmerer en maskinstyring i et program kaldet RSview32, som er beregnet til at skabe kommunikation imellem en operatør og hans maskine.
I programmet er påhægtet VBA, og det er her programmeringen foregår.
Jeg fandt løsningen vha DoCmd.RunMacro \"Your macro\" forslaget.

Som i sikkert har luret, er jeg meget grøn på vb, men det er interessant program.
Jeg siger tak for hjælpen.

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester